일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 cloud gateway
- tomcat
- 최종 합격
- 우아한테크코스
- 커넥션 풀
- MDC
- 톰캣
- 동시성문제
- Kotlin
- Transactio
- circuitbreaker
- 우아한 테크 코스
- 우테코 5기
- AOP
- HikariCP
- Elk
- 살아남았다.
- 오어스
- 트랜잭션
- resilience4j
- oauth
- Spring Batch
- spirng
- 테스트코드
- Thread
- Gateway
- DispatcherServlet
- JWT
- redis
- 우테코
- Today
- Total
목록전체 글 (51)
코딩은 내일부터
이번 프로젝트에서 JWT쪽을 맡게 됐다. 이번 포스팅에서는 JWT과 JWT을 적용하는 과정을 설명할 예정이다. JWT을 적용한 이유 이번 프로젝트에서 JWT를 적용한 이유는 JWT는 토큰 자체에 필요한 정보를 포함하고 있어 서버 측에서 별도의 상태를 유지하지 않아도 된다. (이로써 서버는 요청마다 토큰을 검증하고 사용자 신원을 확인할 수 있어 세션 관리나 DB의 부담을 줄일 수 다.(accessToken의 정보 만으로 사용자 인증을 할 수 있어서) JWT는 토큰은 매 요청마다 사용자 데이터베이스 등과의 통신 없이 빠르게 인증을 수행할 수 있다. 따라서 서버 부하를 줄여준다.(access가 만료되고 refachToken의 정보를 확인 할 때 DB에 접근하니까!) 이러한 이유로 JWT를 적용하기로 결정했다...
이번에 프로젝트를 시작하면서 어떤 자바 버전을 사용해야하는지 고민하고 제가 버전을 선택한 이유을 소개하려고 합니다! 선택 이유 1. LTS(Long Term Support) Java에는 다양한 버전이 존재한다. 그중 가장 많이 쓰이는 버전은 Java 8, 11, 17이다. 이 세 가지 버전이 많이 사용되는 많이 이유들이 있겠지만, 이 버전들이 LTS(Long Term Support) 버전이기 때문이다. LTS란 말 그대로 장기간에 걸쳐 지원을 해주겠다는 뜻이다.(버그 수정, 업데이트 등등..) 위에 표를 보면 java 8은 30년 12월 11은 26년 9월 17은 29년 9월입니다. 따라서, LTS 버전인 Java 8, 11, 17이 가장 많이 사용되고 있다. 이 표로 봤을때 8버전을 많이 사용하는 이유..
@Transactional Transaction이란? 하나의 작업 묶음을 의미하고, 이 작업 묶음에 대해 ACID를 보장하도록 한다. ACID 원자성 : 이 작업 묶음이 실패하면 모두 실패하거나, 성공하면 모두 성공해야 한다. 일관성 : 트랜잭션의 이전, 이후 데이터베이스의 상태는 이전과 같이 유효해야 한다. 고립성 : 모든 트랜잭션은 다른 트랜잭션으로부터 고립되어야 한다. 영속성 : 하나의 트랜잭션이 성공했다면 이후에 어떤 오류가 발생해도 해당 기록은 영구적이어야 한다. @Transactional 을 메서드에 붙이면 메서드를 Transaction으로 만들어주고, 클래스에 붙이면 모든 메서드를 Transaction으로 만들어준다. 왜 서비스의 메서드를 Transaction으로 관리할까? 서비스의 메서드도..
오늘은 Swager를 활용한 API문서를 관리하는 법을 배우겠습니다. 먼저 swagger를 사용하려면 의존성을 추가시켜야하는데 Springfox와 Springdoc 두가지가 있는데 Springfox와 springdoc는 둘 다 Swagger를 지원하기 위한 Spring 기반의 프로젝트입니다. Swagger는 API 문서를 자동으로 생성하고 표시하는 도구로 널리 사용되고 있습니다. 이 두 프로젝트는 Swagger를 통해 API 문서화를 쉽게 구현할 수 있도록 도와주는 역할을 합니다. 하지만 Springfox와 springdoc는 구현 방식과 사용법에서 일부 차이가 있습니다. Springfox: Springfox는 Swagger v2(Swagger UI 2.x)를 기반으로 한 라이브러리입니다. 기존의 Swa..
Self Hosted Runner를 활용해 CD를 하는 방법을 알려드리겠습니다. 먼저 지금 사용하고있는 ec2서버는 램 크기가 작기 때문에 Swap Memory를 사용해 하드디스크의 원하는 일정 용량을 램으로 바꿔줘서 사용해야합니다. 이때 너무 많은 메모리를 Swap Memory로 할당하게 되면 하드디스크가 부족하여 (ex.db에 데이터저장, 로그파일 저장 ... 등등) 서버가 다운될 수 있고, 너무 작은 메모리를 할당하게 되면 github action을 실행할때 부족한 램메모리 때문에 서버가 죽게됩니다. 다시 본론으로 넘어가면 먼저 스왑 메모리를 할당하는것은 하드디스크를 이용하기에 하드디스크의 용량을 확인 해봐야합니다. df -h 하드디스크 용량을 확인했다면, 그중 얼마정도의 swap 메모리로 설정할지..
이번 글에서는 2렙 중간동안 하면서 느낀점을 적어보았습니다. 노는 습관. 그냥놀기 그냥 공부하기 ( 휴식의 재발견 ) 평소에는 자고 싶을 때는 자고, 공부하고 싶을 때는 공부하는 나의 생활 패턴이 우테코에 입학하면서 바뀌게 되었다. 처음 우테코에 들어왔을 때, 낯선 키워드와 미션들이 나에게 여렵게 다가오며 바쁜 한 달을 보냈다. 그러던 중 우연히 참여한 스터디를 통해 휴식의 중요성을 깨닫게 되었다. 우테코 동기들과 함께 놀며 공부하는 시간은 커뮤니케이션과 정보 공유의 터전이었다. 서로의 학습 경험과 일상을 나누며 우테코 생활을 보다 효율적으로 만들 수 있었다. 함께 어떤 공부를 해야 하는지, 어떤 개념을 탐구해야 하는지를 함께 의논하고 결정하는 과정에서 나는 공부에 대한 방향성을 찾을 수 있었다. 이를 ..
스프링을 처음 사용하면서 스프링의 기능을 편리하게 쓸 수 있는 어노테이션들을 배웠다. 여러 용어들을 배우면서 @Repository어노테이션을 사용하면 프록시를 생성하고~ 예외를 처리해주고~ 이런 내용을 크루들에게 들었지만 어떻게 처리되는지 알지는 못했다. 폴로한테 달려가 예외를 어떻게 처리하는지를 듣고 그 내용을 바탕으로 글을 쓰겠다. 먼저 영속성(Persistence) 이란 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다. 이러한 영속성 때문에 DB라는 공간을 만들고 그 공간에 접근하는 기술을 JDBC라고 한다. (JDBC,JPA,... 등등 여러가지 있다.) 그런데 JDBC를 사용하면 모든 Exception은 SqlException이라는 예외로 처리된다. 이러한 SqlEx..
이번 자동차 미션을 하면서 배운 내용 2가지를 알려드리겠습니다 먼저 스프링을 처음하면서 허브(신)한테 배우게 된 내용은 의존성 주입이였다. 우리가 자바를 하면서 new키워드를 (생성자 주입, 필드주입, setter주입, 메서드 주입) 사용하여 의존성 주입을 해왔다. 반면 스프링은 @Autowired 어노테이션을 통해 의존성을 주입해준다. 스프링에서 의존성 주입은 총 4가지가 있다 1.생성자 주입 2.필드주입 3.setter주입 4.메서드 주입 코드를 통해 하나하나 알아보겠습니다. 1.생성자 주입 생성자를 통해 의존성을 주입해주는 방법으로 (생성자가 한개인 경우 @Autowired를 생략할 수 있다.!!) 장점으로는 필드에 final을 붙일 수 있다.(불변성을 보장한다.) 2.필드 주입 필드에서 바로 초기..