본문 바로가기
반응형

전체 글141

[이펙티브 자바] 생성자 대신 정적 팩터리 메서드 고려하라 2장 객체 생성과 파괴 아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라 예시) static을 통한 from 메서드를 통해 StudentDto를 생성하는 코드이다. public StudentDto(User student) { this.studentId = student.getId(); this.studentName = student.getName(); } public static StudentDto from(User student) { return new StudentDto(student); } 사용방법은 다음과 같다. StudentDto studentDto = StudentDto.from(student); 정적 팩터리 메서드를 적용하면 1. 메서드 이름을 통해 클래스 생성이 가능하다. 정해진 네이.. 2023. 12. 8.
@NoArgsConstructor(access = AccessLevel.PROTECTED) 쓰는 이유 엔터티 혹은 DTO 작성시 @NoArgsConstructor(access = AccessLevel.PROTECTED) 어노테이션을 많이 사용한다. @NoArgsConstructor에 AccessLevel설정으로 AccessLevel.PUBLIC, AccessLevel.PRIVATE, AccessLevel.PROTECTED가 있다. 왜 @NoArgsConstructor(access = AccessLevel.PROTECTED)를 많이 쓰는 것일까? 문제점부터 알아보자. 문제점 @NoArgsConstructor(access = AccessLevel.PUBLIC): 1. 기본 생성자를 사용하는 방식을 여러 곳에서 생성이 가능하다.(BAD) 2. 객체 데이터에 빈값이 들어가는 일관성에 문제가 생길 수 있다. @N.. 2023. 10. 11.
[프로그래머스 Java] 할인 행사 Lv.2 * 순서 - 문제 - 문제 설명 - 문제 목표 - 문제 풀이 - 최종 코드 - 포인트 - 다른 사람 코드 - 문제 - 문제 설명 원하는 제품, 원하는 제품의 개수가 있다. 마트에서 매일 한 제품을 할인하는데 하나씩만 구매할 수 있다. 10일 연속으로 할인 제품을 구매할 수 있는 날짜의 수를 구한다. 제품을 구매할 수 없으면 0을 return한다. - 문제 목표 10일 연속으로 할인 제품을 구매할 수 있는 날짜의 수를 구한다. - 문제 풀이 1. 원하는 제품과 원하는 제품의 수를 wMap에 저장한다. 2. 연속해서 할인 제품 구매할 수 있는 날짜를 세야하니 길이를 다음과 같이 정해서 for문을 돌린다. 3. 할인하는 제품과 개수를 dMap에 저장한다. 4. 할인하는 제품의 개수와 원하는 제품의 개수를 비교.. 2023. 9. 19.
[프로그래머스 Java] 예상대진표 Lv.2 * 순서 - 문제 - 문제 설명 - 문제 목표 - 문제 풀이 - 최종 코드 - 포인트 - 다른 사람 코드 - 문제 - 문제 설명 토너먼트 문제이다. 2명씩 짝을 지어 경기를 하며 참가자 번호가 계속 바뀐다. 선수 A, B는 계속 이긴다. - 문제 목표 선수 A, B가 서로 경기할 때의 라운드를 구하면 된다. - 문제 풀이 1. 1라운드부터 시작하지만 0라운드라고 했을 경우 +1씩 라운드가 같아질 때까지 구하면 된다. 2. 선수번호가 계속 바뀌므로 함수를 이용한다. 3. 짝수일 경우, 몫이 선수 번호가 된다. 4. 홀수일 경우, (몫 + 1) 이 선수 번호가 된다. - 최종 코드 public static int solution(int n, int a, int b) { int answer = 0; //1. .. 2023. 9. 19.
[프로그래머스 Java] 올바른 괄호 Lv.2 * 순서 - 문제 - 문제 설명 - 문제 목표 - 문제 풀이 - 최종 코드 - 포인트 - 다른 사람 코드 - 문제 - 문제 설명 '(' 문자와 ')' 문자로 이루어진 문자열 s가 주어진다. '(' 문자로 시작했으면 짝지어서 ')' 문자로 끝나면 true 반환, 그렇지 않으면 false를 반환한다. - 문제 목표 '(' 문자로 시작했으면 짝지어서 ')' 문자로 끝나는지 확인한다. - 문제 풀이 1. '(', ')' 올바른 짝인지 확인하기 위해 Stack을 이용한다. 2. '(' 문자면 Stack에 넣는다. 3. ')' 문자일 경우, Stack이 비어 있지 않으면 Stack 제일 위 문자열이 '('인지 확인한다. '('일 경우 Stack에서 꺼낸다. 4. ')'일 경우 Stack에 ')'을 넣는다. 5. '.. 2023. 9. 12.
[프로그래머스 Java] 최소값 만들기 Lv.2 * 순서 - 문제 - 문제 목표 - 문제 설명 - 문제 풀이 - 최종 코드 - 포인트 - 문제 - 문제 목표 각각의 숫자를 곱한 값을 더해서 최소값 만들기 - 문제 설명 두개의 배열이 주어진다. 각각의 배열에서 한 숫자씩 정해서 각각의 정한 숫자를 곱하고 곱한 값을 더한다. 모든 숫자를 곱하기 전까지 반복한다. - 문제 풀이 1. 배열값을 오름차순한다. 2. 배열 A에서 최소값과 배열 B에서 최대값을 곱하고 더한다. - 최종 코드 import java.util.Arrays; class Solution { public int solution(int []A, int []B) { int answer = 0; //1. 배열값을 오름차순한다. Arrays.sort(A); Arrays.sort(B); for(int.. 2023. 9. 11.
parser() is deprecated 해결방법 JWT를 이용한 메서드 작성중에 'parser() is deprecated'라는 더이상 사용하지 않는다고 나온다. 그리고 고치는 방법을 친절하게 알려주고 있다. parser() 대신 parserBuilder()를 쓰고 build()를 붙이라고 한다. 문제해결! 2023. 9. 9.
[Redis] Method annotated with @Bean is called directly. Use dependency injection instead. Redis 코드를 짜다가 에러가 났다. @RequiredArgsConstructor @Component @EnableRedisRepositories public class RedisRepositoryConfig { private final RedisProperties redisProperties; @Bean public RedisConnectionFactory redisConnectionFactory(){ return new LettuceConnectionFactory(redisProperties.getHost(), redisProperties.getPort()); } @Bean public RedisTemplate redisTemplate() { RedisTemplate redisTemplate = n.. 2023. 9. 9.

반응형
반응형