전체 글 63

[프로그래머스] 방금 그 곡 Java

입력 파싱, m을 musicinfo의 melody에서 찾기 -> 이렇게 하면 불필요하게 한 번 더 돌아야 한다. musicinfo의 melody를 m에서 찾기. import java.util.Arrays; class Solution { public static String solution(String m, String[] musicinfos) { String answer = ""; // 0. 파싱하기 // musicinfos를 시작 시간, 끝나는 시간 / 노래 제목 / 멜로디 int len = musicinfos.length; int[] time = new int[len]; String[] title = new String[len]; String[] melody = new String[len]; for(..

Algorithm 2023.08.01

[프로그래머스] 캐시

https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코딩테스트 연습 > 2018 KAKAO BLIND RECRUITMENT > [1차] 캐시 후기 네 시간 동안 이 문제를 붙잡고 있었는데 결국은 ArrayList으로 간단하게 해결했다. 문제를 어렵게 푸는 경향이 있는 것 같다. 왜인지 1차인데 어렵다 했다. LRU를 이중 연결 리스트로 구현한다는 접근 방식에서 삽질을 했던 것 같다. ArrayList의 remove의 쓰임을 새롭게 알게 됐다. 처음..

Algorithm 2023.07.18

EC2 서버에 올라간 Spring Boot와 React 연동 시 CORS 설정

CodeStates Project team 3 Backend 에러 및 해결 에러 EC2 서버에 올라간 Spring Boot와 React 연동 시 CORS 설정 해결 React에서 package.json에 프록시 설정 npm i http-proxy-middleware 로 라이브러리 설치 setProxy.js 에 코드 추가 "proxy": "[]", const { createProxyMiddleware } = require("http-proxy-middleware"); module.exports = function (app) { app.use( createProxyMiddleware("/api/v1", { target: "http://localhost:8082", changeOrigin: true, }) )..

Project 2023.07.13

[코드스테이츠] Day07 BE

To do aws 프리티어 계정 가입 - RESTful하게 개발 - CSR : client 측에서 rendering하는 것. Spring Security 크게 두 가지 역할을 수행/자동화 해준다. 인증(Authentication) - 로그인 인가(Authorization) - 네이버 카페(인증된 ‘나’라는 객체가 행동할 수 있는 권한을 체크한다.) Business Logic에만 집중할 수 있도록 함. Security 동작 원리 filter : 특정 신호에서 원하지 않는 신호를 차단하거나 원하는 신호만을 통과하게 하는 과정. step 1. step 1.3. Filter step 1.5. Dispatcher Servlet step 2. presentation layer client : front 단에서 만든..

TIL 2023.07.05

[코드스테이츠] Day06 BE

학습 목표 Blog API 개발 H2(DB) - in memory Spring data JPA 실습 안내 새 프로젝트를 만들고, Blog API, JPA를 실습한다.(H2 DB 사용) 1차시(실습) 새 프로젝트 만들기(dependencies 추가) 2차시(개념) JPA Java Persistence(DB와 관련) API DB 통신을 할 때 DB에서는 query 방식을 권장한다. ORM(Object Relational Mapping) Framework Spring Boot로 만든 Application ↔ DB와 통신 directly하게 통신하지 않고 Hibernate를 통해서 JDBC를 해석한다. e.g. MySQL을 PostgreSQL[포스트그레스큐엘]로 바꿀 때 유지보수성 향상. JPA는 원론적인 기술..

TIL 2023.07.03

[코드스테이츠] Day05 BE

학습 목표 Business Layer Persistence Layer AOP 실습 Member 도메인에 대한 CRUD 조건 1 : DB가 아닌 List를 사용 조건 2 : Grade enum 대신 String을 사용 Postman으로 동작을 확인한다. bootJar로 빌드하고 수동 실행하여 정상적인 서비스 동작을 확인한다. Docker 이미지로 만들고 어제 만든 도커 허브 저장소에 0.0.2 버전으로 push한다. push한 0.0.2 버전을 pull하여 내 도커에 내려받고 컨테이너 방식으로 동작시킨 후 정산 서비스 동작을 확인한다. 개인 github에 Commit & Push하고 Readme 파일에 도커 허브 주소를 기입한다. 과제 (실습 안내 a~f 과정) 끝내지 못한 실습 완성 + 새 프로젝트 만들..

TIL 2023.06.30

[프로그래머스] Java 요격 시스템

https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 관련 개념 그리디, 스케줄링 문제 접근 target[i][1] 기준으로 정렬 [[1,4],[3,7] [4,5],[4,8] [5,12],[10,14],[11,13]] 첫 번째 set target[1][] = [1,4] target[i][1] = 4 이상이면 멈춰야 한다. set1 : [1,{4}],[3,7] -> set1의 첫 번째 항목의 index 1의 값이 기준이다. 이후 항목의 index 0..

Algorithm 2023.06.30

[코드스테이츠] Day04 BE

학습 목표 Presentation layer를 이해할 수 있다. HTTP의 4가지 메소드를 이해할 수 있다. 싱글톤을 이해할 수 있다. Docker를 이해하고 활용할 수 있다. 실습 구성 Presentation → Business → Persistence 레이어드 아키텍처 방식으로 Member CRUD 구현하기 DB는 사용하지 않는다. (List 메모리로 활용) Docker image 만들고 도커 허브에 배포 도커 허브에서 이미지 다운로드하여 확인 과제 실습 못한 부분 완성 1차시 복습 - applicationContext에서 꺼내서 씀. - singleton 개념과 매핑. - Configuration은 singleton 방식으로 운용된다. - 컨테이너 기반으로 묶음 단위로 운용한다. step1 step..

TIL 2023.06.29

[코드스테이츠] Day03 BE

interface 나는 누군가의 자식이며, 사회적인 역할로서 학생이기도 하다. class A extends Parents implements Police, Customer // 상속은 하나만 가능하다. 참고 https://velog.io/@hkoo9329/자바-extends-implements-차이 예시 1 삼성 냉장고, 에어컨, TV 기능 : 전원 켜짐/꺼짐, 채널 변경, 음량 조절 냉장고 : 켜짐, 꺼짐 에어컨 : turn on, turn off TV : power on, power off // 다형성 RemoteController rc1 = new 냉장고(); RemoteController rc2 = new 에어컨(); RemoteController rc3 = new TV(); 다형성은 추상화를 하..

TIL 2023.06.29