일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- real time web
- html
- flask
- oauth
- Java
- Stream
- google oauth
- spring
- programmers
- 생명주기 콜백
- Project
- server send event
- hanghae99
- JPA
- Spring Security
- jenkins
- session
- 항해99
- WIL
- javascript
- bean
- Anolog
- web
- JWT
- jQuery
- cookie
- SseEmitter
- python
- Hibernate
- DI
- Today
- Total
목록항해99 (5)
끄적끄적 코딩일지
기본적인 MVP 개발은 모두 마쳤다. 문제 발생시 분석을 위한 Actuator, Promethus를 적용했고 Jenkins를 구현할때 민감한 정보가 담긴 설정파일이 올라가야 한다는 것에서 Submodule을 이용하여 설정파일을 분리시켰다. 그외 오류들을 수정했으며 약간의 사용자 피드백또한 받을 수 있었다. 카카오톡 로그인에서 크리티컬한 문제가 발생해서 (다른 사용자로 로그인이 되는 문제) 기술 매니져님과 예기를 했지만 원인을 찾지 못했다. 딱 한번 일어나서 원인을 찾기 힘들고 RestTemplate에서 무엇인가 꼬인게 아닐까라는 의심만 하고 있다. 기존에 메소드에서 new로 생성하던것을 bean으로 등록한후 지금까지 다시 문제가 발생하지 않았지만 원인을 정확히 찾아서 해결한것이 아니다 보니 조금 찜찜하기..
3주간 실전 프로젝트를 진행하면서 CRUD : QueryDSL,AOP, Redis 모니터링 : Actuator, Spring Admin, Prometheus, Grafana CI/CD : Jenkins, Nginx 등을 알게되었다. 앞으로 공부할것은 많은데 프로젝트를 진행하느라 블로그에 정리할 시간이 부족하다. 끝나고 2~3주일동안 블로그에 정리해야할것같다.
기본적인 CRUD를 마치고 내부기능을 강화하기 시작했다. Refresh Token을 적용하고 Spring Actuator를 써서 지표를 가져왔고 Prometheus, Grafana를 써서 데이터를 시각화 하였다. 하지만 Prometheus Query를 사용하기 어렵다는 단점이 있어서 해결 방안을 찾다가 Spring Admin을 발견하여 적용하였다.
본격적으로 실전프로젝트를 시작하고 1주차가 지났다. 생각보다 서버 개발은 빠르게 끝나서 내부 기능 강화에 집중을 하고 있다. AOP와 Redis를 써서 날씨, 시세등의 API 호출횟수를 최소화 하고 Front 에서 사용할 통계데이터를 만들기 위해 Join을 사용하거나 Sum,Year,Month,Group By를 써서 월별로 데이터를 정렬하기도 했다. 또한 QueryDSL을 써서 데이터를 조회하기도 하였다. 그리고 멘토링을 하면서 Setter를 지양해야하는 이유, 유지 보수가 편한 프로젝트 관리등의 이유를 알수 있었다
항해에서 Spring과 React와 연동하는 첫번째 프로젝트를 시작했다. 프론트와 백엔드 서버를 분할하여 하는것은 처음이라 조금 혼란스럽긴 하지만 CORS,Proxy 설정을 통해 연동하는 방법과 OAuth2를 사용한 로그인과 인증하는방법. 특히 OAuth2에서 내가 원하는 정보를 OAuth2User정보에 담고 @AuthenticationPrincipal으로 불러올 방법을 성공하기도 했다. 그리고 Scope, 트랜잭션, Bean 생명주기 콜백 등 Spring 기초 내용도 공부하였다. 마지막으로 SSeEitter를 사용한 실시간 데이터 표시까지..... 생각보다 한주만에 얻은것이 꽤 많다고 느꼈다.