| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 미니정리
- 프로그래머스
- 데이터베이스
- spring
- 자바
- 코드 테스트
- web
- 스프링
- 정리
- 디자인 패턴
- jsp
- 서버
- 코드테스트
- MySQL
- oracle
- 쿼리
- 프론트엔드
- SQL
- jpa
- JavaScript
- 오라클
- 프런트엔드
- 스프링부트
- java
- Next.js
- 자바스크립트
- 백엔드
- node.js
- 알고리즘
- BACK-END
- Today
- Total
목록분류 전체보기 (357)
참치코더의 꿈 메모장
롬복과 최신 트랜드 - 대부분의 필드가 다 불변이고 final 키워드를 사용하게 된다. - 필드 주입 처럼 생성자 주입을 사용할 수 있는 방법은 롬복(Lombok) 라이브러리를 사용하는 것이다. - 롬복 라이브러리가 제공하는 @RequiredArgsConstructor 기능을 사용하면 final이 붙은 필드를 모아서 생성자를 자동으로 만들어준다. - 최근에는 생성자를 딱 1개 두고, @Autowired를 생략하는 방법을 주로 사용한다. - 여기에 @RequiredArgsConstructor 함께 사용하면 기능은 다 제공하면서, 코드는 깔끔하게 사용할 수 있다. @Autowired 필드 명, @Qualifier, @Primary - 조회 대상 빈이 2개 이상일 때 해결 방법 1. @Autowire..
- 가로와 세로의 길이가 다른 여러개의 명함이 있을때 명함의 가로, 세로를 카드에 맞게 돌릴 수 있을때 최소 카드 명함 케이스의 크기를 구하는 문제이다. - for문으로 sizes의 크기만큼 돌리면서 각각 명함의 최소값과 최댓값을 구한다. - 이렇게 하면 각 row와 column에 짧은 쪽에서의 최댓값을 집어넣고, 긴쪽에서의 최댓값을 구해서 각각 row와 column에 집어넣게 되면 for문을 수행하면서 값을 구할 수 있게 된다. - 마지막으로 row와 column의 곱을 구한 후 리턴하면 정답임을 알 수 있다. https://school.programmers.co.kr/questions/89903 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 ..
- 각 배열의 원소 위치의 칼로리 만큼 음식의 양의 개수가 선언되어 있는 배열을 받아 왼쪽선수와 오른쪽 선수가 먹을 수 있게 음식을 배치시키고 가운데 물병을 놓은 문제이다. (food 배열의 0번째가 물병으로 간주) - 2명이서 경기를 하는 음식배치를 하는것이기 때문에 결국 물병을 기준으로 대칭을 이루게 된다. 따라서 물병을 마지막으로 한사람의 음식배치 패턴을 구하면 나머지 인원은 물병을 기준으로 대칭을 놔주면 되기 때문에 일단 1사람의 패턴을 구했다. - for문을 돌리고 2명이서 진행하기 때문에 2로 나눠서 음식을 배치 할 수 있을 경우에 해당 음식을 answer이라는 식탁에 1인분을 배치해 주었다. - for문이 종료가 되면 1인분 대결 식탁이 완성되고, 물병을 놓기전에 해당 문자열을 ..
옵션 처리 - 주입할 스프링 빈이 없어도 동작해야 할 때가 있다. - @Autowired(required) 옵션의 기본값이 true로 되어 있어서 자동 주입 대상이 없으면 오류가 발생한다. 자동 주입 대상을 옵션으로 처리하는 방법 3가지 ** @Nullable, Optional은 스프링 전반에 걸쳐서 지원된다. 생성자 자동 주입에서 특정 필드에서 검사할때 사용해도 된다. 생성자 주입을 꼭 사용해야 하는 이유 1. 불변 - 대부분의 의존관계 주입은 한번 일어나면 애플리케이션 종료시점까지 의존관계를 변경할 일이 없다. - 수정자 주입을 사용하면, setX 메서드를 public으로 열어두어야 한다. - 생성자 주입은 객체를 생성할 때 1번만 호출되므로 불변하게 설계할 수 있다. 2. 누락 - 생성자 주입..
- 주어진 배열 d 에 있는 값 중 budget을 최대로 만족시키는 count의 값을 구하는 문제이다. - 그리디 알고리즘을 사용하면 된다(정렬후 작은 것부터 - 하면 최대값을 얻을 수 있다.)- Arrays.sort를 해서 일단 오름차순으로 배열을 정렬한다. - 그 이후 for each문을 사용해 배열의 값을 하나씩 받으면 갖고 있는 예산 보다 작거나 같을때 해당 부서의 물품을 구입을 해준다. 그리고 count를 해줘서 지원한 부서의 수를 구한다. - 이렇게 반복을 하다보면 예산이 부족해 지는 경우 자동으로 else문이 실행되고 count값을 얻을 수 있다. - 이렇게 나온 결과값인 count를 리턴하면 정답을 출력 할 수 있다. ^^ https://school.programmers.co.kr/qu..
생성자 주입 - 생성자를 통해서 의존 관계를 주입 받는 방법이다. - 생성자 호출시점에 딱 1번만 호출되는 것이 보장된다 - 불변, 필수 의존관계에 사용 - 생성자가 1개만 있으면 @Autowired를 생략해도 자동 주입 된다. 물론 스프링 빈에만 해당한다. 주입 시점 : 객체 생성 시점에 주입됨 불변성 : final 사용 가능, 이후 수정 불가 필수 의존성 : 강제할 수 있음 테스트 편의성 : 테스트 시 의존성 명확하게 주입 가능 스프링 공식 문서에서 가장 권장되는 방식 수정자 주입(setter 주입) - setter라 불리는 필드의 값을 변경하는 수정자 메서드를 통해서 의존관계를 주입하는 방법이다. (setter에 @Autowired 붙이면 생성자를 사용하지 않고 setter로 값을 주입시켜 준..
- number 배열에 있는 수 중에 3개를 더했을때 0이 나오는 경우의 수를 구하는 문제이다. - 3중 for문을 사용하여 3개의 값을 앞에서 하나씩 뽑고 계속해서 반복하면 모든 경우의 덧셈수를 얻을 수 있다. - 여기에 if문을 줘서 3개를 더했을때 0이 나오는 경우에만 answer에 값을 더하도록 하면 for문의 반복이 끝났을 때 최종 결과값을 얻을 수 있다. ^^
컴포넌트 스캔 정리 및 중요한 점 (스프링 프레임워크 관점) @ComponentScan - @ComponentScan은 @Component가 붙은 모든 클래스를 모두 스프링 빈으로 등록한다. - 이때 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다. 빈 이름 기본 전략 : MeberService -> memberService 빈 이름 직접 지정 : 만약 스프링 빈의 이름을 직접 지정하고 싶으면 @Component("memberService2")이런식으로 직접 부여하면 된다. @Autowired 의존 관계 자동 주입 - 생성자에 @Autowired를 지정하면, 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아서 주입한다. - 생성자에 파라미터가 많아도 다 찾아서 자동으로 주입..