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이 왜 문제가 되는가?프록시는 트랜잭션 시작, 커밋 또는 롤백을 처리하는데, 자기 호출이 발생할 경우 프록시가 아닌 실제 객체가 메서드를 호출하게된다.이로 인해 트랜잭션 관리가 적용되지 않고, 예상대로 트랜잭션이 시작되지 않거나 커밋되지 ..
프록시(Proxy)란?
·
이론공부
프록시의 개념프록시는 실제 객체에 대한 접근을 제어하기 위해 사용되는 중간 객체로 이를 통해 클라이언트는 프록시 객체를 통해 실제 객체의 메서드를 호출하게 되며, 프록시는 요청을 처리하거나 추가적인 작업을 한 뒤 실제 객체에 전달한다.Spring에서의 프록시 사용Spring에서는 AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)를 사용하여 트랜잭션 처리, 보안, 로깅 등의 횡단 관심사를 처리하는데, 이때 프록시를 사용, @Transactional 어노테이션을 사용하면 Spring이 해당 메서드에 프록시 객체를 만들어서 트랜잭션을 관리프록시의 동작 방식클라이언트가 프록시 객체의 메서드를 호출.프록시는 요청을 가로채고, 메서드 호출 전에 추가 로직을 실행할 수 있음.예를 들어..
기술면접 준비(1)
·
이론공부
RESTful한 API설계의 장점개념 RESTful : REST원칙을 따르는 API 설계 방식으로, HTTP프로토콜을 기반으로 자원을 정의하고 그 자원에                대한 상태 정보를 주고받는 방식자원(Resource) : URI로 식별되는 개체표현(Repesentation) : 클라이언트가 자원에 접근할 때, 자원의 상태를 JSON, XML등의 형식으로 전송무상태성(StateLessness) : 서버는 각 요청을 독립적으로 처리, 클라이언트의 상태를 서버에 저장하지 않음캐시 가능(Casheable) : HTTP의 캐싱 메커니즘을 사용해 응답을 클라이언트 측에 저장 가능(성능최적화)계층화 구조(Layerd System) : 클리언트와 서버 사이에 프록시, 게이트웨이 등을 중간 계층으로 배치..
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 클래스..