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 클래스..
[TIL](2024)09.02 ~ 09.06
·
Java & Spring/TIL
09월 02일 (월)- 오늘 한 일Spring 숙련주차 팀 프로젝트 시작팀 프로젝트 회의팀 프로젝트 와이어프레임 작성하기댓글 CRUD 구현하기(1/4)-  회고API명세서, ERD, 와이어프레임을 작성하고 작업을 시작하니 틀이 잡힌 상태로 시작해 시작이 수월한 느낌이 들었다.09월 03일 (화)- 오늘 한 일댓글 CRUD구현 및 테스트 완료JWT를 활용하여 PUT, DELETE 재구현github commit & push-  회고이번 팀프로젝트를 진행하면서 CRUD구현이 능숙해졌다.아직 JWT부분이 잘 이해가 안간다.09월 04일 (수)- 오늘 한 일댓글 신고 기능 추가 구현Jpa Audting 학습-  회고신고 기능을 추가하면서 Transaction Invocation Error 발생 우선 클래스를 분리..
34일차 - 알고리즘 코드카타
·
Java & Spring/코딩테스트
- 회고80. 예상 대진표 : https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 풀이 과정코드 보기class Solution{ public int solution(int n, int a, int b){ int s = 1; int answer = 0; for(int i = 1; s != n; i++){ s = (int)Math.pow(2, i); if(a % 2 !=..