- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 후기
- 팀네이버
- Kotlin
- infra
- JPA
- spring
- 팀네이버 공채
- JWT
- 젠킨스
- 프로젝트
- SPRING JWT
- 리뷰
- LazyInitialization
- 책
- SpringBoot
- websocket
- docker
- Project
- 브랜치전략
- chrome80
- jenkins
- EntityTransaction
- Java
- 캐싱전략
- 스프링
- redis
- 만들면서 배우는 클린 아키텍처
- Spring Security
- container
- network
목록전체 글 (43)
PPAK
두달 전부터 학부 학생회 중 하나인 개발부(구 시스템 도서 위원회) 에 속해 학부생들이 교내에서 겪는 문제를 찾고 해결하는 일에 참여하고 있다. 원래는 교내 실습실을 관리하는 업무를 주로 했지만, 방향을 조금 바꿔서 뜻이 맞는 학우들과 함께 부서를 발전시켜나가기로 했다. 해당 부서에서 내가 첫 번째로 한 일은 학부생들이 겪고 있는 문제를 조사하는 것이였다. 그러던 중 사실 고질적인 문제로 볼 수 있는 공지사항 열람의 불편함은 올해에도 어김없이 문제점으로 제기된다는 것을 확인했다. 문제 상황은 다음과 같다. 다른 학과의 상황은 잘 모르지만 컴퓨터학부 공지사항에는 학생들에게 도움이 되는 공지사항(공모전, 특강, 마일리지 관련) 꾸준히 올라오고 있다. 특정 장학금이나 특강에 관한 공지사항은 선착순 마감이 존재..
최근 한 달 동안 책 스터디를 운영하면서 친구들과 책을 읽고 한 주에 한번 모여 서로 정리한 내용을 공유하고 질문하는 시간을 가졌다. 이번 한달 동안 읽은 책은 자바 웹 프로그래밍 Next Step 과 리팩터링 2판 인데 이번 포스팅에서는 전자에 대해서 이야기해보려고 한다. 책읽기의 효용은 저마다 다를 수 있지만 나에게 책읽기는 생각정리에 특히 도움이 많이 되는 것 같다. 근 6달 동안 쉼없이 웹 프로젝트를 진행하다 보니 그 과정에서 겪은 경험을 되돌아보고, 조금은 산재된 지식들을 정리할 필요성이 느껴졌고, 최근 들어 내가 작성하고 있는 코드와 시스템 설계가 과연 효과적인가(혹은 올바른가) 에 대한 고민을 하면서 생긴 궁금증을 해소하기 위해 책을 읽어야 겠다는 생각을 했다. 그러던 도중 운이 좋게도 자바..
기존에 진행하던 프로젝트에서 Redis 를 사용해 캐싱과 이벤트를 공유하는 로직을 추가했다. 캐싱의 경우, 우선 시스템 내에서 자주 조회 되면서 시스템 내에 존재하는 데이터 간 연관 관계가 복잡하지 않은 (혹은 수정 가능성이 낮은) 데이터를 중심으로 수행했다. 따라서 인증 정보와 좋아요 기능을 위한 캐싱을 수행하기로 했고 아래 두 가지의 요구사항에 따라서 로직을 구성했다. 1. 인증 정보의 교환에서 세션 정보를 서버에 저장하지 않고 JWT 를 통해 인증/인가 진행. 잦은 Access Token 발급을 방지하기 위해 Refresh-Access 토큰 쌍을 일정 시간 동안 캐싱할 때 Redis 를 사용했다. 덕분에 여러 대의 서버에서 동일한 Redis 의 캐싱 정보를 사용할 수 있었고, 시스템 자원의 낭비를 ..
현재 기존에 진행하던 프로젝트에서 예측되는 문제를 찾고 기술적으로 보완하는 리팩토링 과정을 거치고 있다. 그 중 이웃사이 프로젝트의 긴급호출 기능의 요구사항은 아래와 같다. 1. 긴급 호출 요청 시 같은 단지 내 주민들에게 알림이 간다. 1-1. 긴급 요청 알림을 통해 요청자의 위치 정보를 파악할 수 있다. 2. 긴급 호출 요청은 단지 내 주민이 수락할 수 있다. 2-1. 수락 시 단지 내 주민들에게 수락 완료 알림이 간다. +(미정) 추후에 긴급 호출 요청 데이터를 분석하여 단지 내 발생하는 문제들의 통계를 낸다. 단순하다? 긴급 호출 기능은 굉장히 단순하다. 단순한 요청을 분석하여 같은 단지 내 주민들에게 알림을 보내주면 되기 때문이다. 때문에 기존의 아키텍처를 살펴보면 위와 같이 서버와 STOMP ..
기존에 진행하던 이웃사이 프로젝트에서 Jenkins 를 통한 CI/CD 를 구축했었다. 그 덕분에 개발 간에 팀원들은 단순히 깃허브에 코드를 올리는 것 만으로도 서로 작업한 내용을 원격서버에 반영되었고, 직접 배포를 하는 과정을 생략함으로써 전체적인 개발 피로를 줄일 수 있었다. 관련포스팅 [CI/CD] Git Webhook 을 통한 Jenkins-Spring Boot 빌드, 배포 자동화 이전 포스트 에서는 Docker 위에서 Jenkins 개발환경을 셋팅하였다. 본 포스트에서는 실제로 Jenkins project 를 생성하여 빌드 스크립트를 구축하고 Git Webhook 을 이용해 개발자가 빌드 버튼을 매번 누르 ppaksang.tistory.com 문제점 기존의 CI/CD 인프라를 살펴보면, 분명 J..