[TIL](2024)09.19 ~ 09.20
·
Java & Spring/TIL
09월 19일 (목)- 오늘 한 일팀 프로젝트 발제 및 팀 회의, 배달 어플 만들기배달 어플 내 메뉴 생성 구현 담당09월 20일 (금)- 오늘 한 일메뉴 구현 CRUD 구현- 회고메뉴가 가게부분과 연관관계가 걸려있어 상상?하면서 구현해야해서 조금 어려웠다.
43일차 - 알고리즘 코드카타
·
Java & Spring/코딩테스트
- 회고83. 귤 고르기 : https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr import java.util.*;class Solution { public int solution(int k, int[] tangerine) { Map map = new HashMap(); for (int i : tangerine) { if(!map.containsKey(i)){ map.put..
47일차 - Controller 테스트
·
Java & Spring/Spring
1. 가짜 인증 처리(MockSpringSecurityFilter)코드 보기import jakarta.servlet.*;import jakarta.servlet.http.HttpServletRequest;import org.springframework.security.core.Authentication;import org.springframework.security.core.context.SecurityContextHolder;import java.io.IOException;public class MockSpringSecurityFilter implements Filter { @Override public void init(FilterConfig filterConfig) {} @Overr..
42일차 - 알고리즘 코드카타
·
Java & Spring/코딩테스트
- 회고82. 멀리 뛰기 : https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr - 풀이 과정class Solution { public long solution(int n) { long answer = 0; long[] arr = new long[3]; arr[0] = 1; arr[1] = 2; if(n == 1){ return 1; }e..
46일차 - 테스트 코드 애노테이션
·
Java & Spring/Spring
□ Before & After 테스트@BeforeEach : 각각의 테스트 코드가 실행되기 전@AfterEach : 각각의 테스트 코드가 실행된 후@BeforeAll : 모든 테스트 코드가 실행되기 전@AfterAll : 모든 테스트 코드가 실행된 후코드 보기public class BeforeAfterTest { @BeforeEach void setUp() { System.out.println("각각의 테스트 코드가 실행되기 전에 수행"); } @AfterEach void tearDown() { System.out.println("각각의 테스트 코드가 실행된 후에 수행\n"); } @BeforeAll static void beforeAl..
[TIL](2024)09.09 ~ 09.13
·
Java & Spring/TIL
09월 09일 (월)- 오늘 한 일JWT 학습, 구현 및 실행해보기09월 10일 (화)- 오늘 한 일프로그래머스 코딩테스트 1문제 진행 및 회고테스트 코드 학습09월 11일 (수)- 오늘 한 일Controller 테스트 학습09월 12일 (목)- 오늘 한 일테스트 코드 개인 과제 진행프로그래머스 코딩테스트 1문제 진행 및 회고- 회고개인 과제를 진행하면서 역시나 JWT부분에서 막히는게 많았다. JWT복습을 진행해야겠다.09월 13일 (금)- 오늘 한 일테스트 코드 개인 과제 마무리(필수)
JWT 구현 및 사용
·
Java & Spring/Spring
1. build.gradle 의존성 추가implementation 'io.jsonwebtoken:jjwt-api:0.11.2'runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.2'runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.2' // JSON 처리 2. application.properties, secret key 추가jwt.secret.key=7Iqk7YyM66W07YOA7L2U65Sp7YG065+9U3ByaW5n6rCV7J2Y7Yqc7YSw7LWc7JuQ67mI7J6F64uI64ukLg== - JWT 토큰 생성3. JwtUtil 생성코드 보기import io.jsonwebtoken.Claims;import io.jsonwebtoken..
39일차 - 알고리즘 코드카타
·
Java & Spring/코딩테스트
- 회고81. N개의 최소공배수 : https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 풀이 과정class Solution { public int solution(int[] arr) { for (int i = 0; i 최소 공배수 = 두 수의 곱 / 최대 공약수최대 공약수를 구하는 재귀함수 정의만약 a,b,c의 최소 공배수를 구한다면 a,b에대한 최소 공배수를 구하고 그 공배수와 c의 최소공배수를 구하면 된다.for문으로 순회하며 ..
Self-invocation(자기 호출)
·
Java & Spring/트러블슈팅
Self-invocation(자기 호출)이란? Self-invocation(자기 호출)은 클래스 내의 메서드가 동일 클래스의 다른 메서드를 호출하는 상황에서 발생Spring 프레임워크에서 @Transactional 어노테이션을 사용할 때, 이 self-invocation은 문제가 발생할 수 있다.그 이유는 Spring의 트랜잭션 관리가 AOP(Aspect-Oriented Programming) 기반의 프록시(Proxy)를 사용하기 때문이다. Self-invocation이 왜 문제가 되는가?프록시는 트랜잭션 시작, 커밋 또는 롤백을 처리하는데, 자기 호출이 발생할 경우 프록시가 아닌 실제 객체가 메서드를 호출하게된다.이로 인해 트랜잭션 관리가 적용되지 않고, 예상대로 트랜잭션이 시작되지 않거나 커밋되지 ..
37일차 - Spring강의(JPA Audting)
·
Java & Spring/Spring
JPA Auding : 시간에 대해서 자동으로 값을 넣어주는 기능@Getter@MappedSuperclass@EntityListeners(AuditingEntityListener.class)public abstract class Timestamped { @CreatedDate @Column(updatable = false) @Temporal(TemporalType.TIMESTAMP) private LocalDateTime createdAt; @LastModifiedDate @Column @Temporal(TemporalType.TIMESTAMP) private LocalDateTime modifiedAt;}@MappedSuperclassJPA Entity 클래스..