분류 전체보기(250)
-
[JPA] 변경감지(dirty checking)
Intro 해당 포스팅에서는 JPA가 제공하는 변경감지 기능을 가볍게 다룹니다. "JPA의 영속성 컨텍스트는 객체의 동등성 뿐만아니라 동일성도 보장한다" 는 내용이 포스팅의 핵심이므로 해당 내용을 잘 아시는 분은 넘어가셔도 좋을 것 같습니다!(지적 환영) Problem 팀원분이 JMeter를 이용해 성능 테스트를 진행하던 중, 병목 현상이 발생하는 부분을 발견하였습니다. https://github.com/prgrms-web-devcourse/Team-DarkNight-Kkini-BE/pull/223 [#221] Store내 병목 현상을 유발하는 코드 제거 by JoosungKwon · Pull Request #223 · prgrms-web-devcourse/Team-Dar 🌱 작업 사항 refactor(..
2023.05.18 -
WebSocket & STOMP 그룹 채팅방 구현하기
프로젝트에서 WebSocket과 STOMP 프로토콜을 이용해 그룹채팅방 기능을 구현했습니다. 스프린트 초반에는 댓글과 Polling 기법을 이용해 유저 간 소통하도록 하였습니다. 하지만 Polling 기법의 단점과 애플리케이션 특성을 고려하였을 때 실시간 채팅이 필요하다고 생각되어 고도화를 진행했습니다. Polling 클라이언트가 일정한 주기마다 서버로 요청을 보내는 방식입니다. 서버 데이터의 변경 여부와 상관없이 주기적으로 요청을 보내므로, 불필요한 요청에 따른 네트워크 부하가 늘어납니다. 또한 요청 인터벌을 너무 길게 잡을 경우 실시간성이 떨어지며, 짧게 잡을 경우 서버에 부하가 올라가는 trade off가 존재합니다. 실시간성이 중요하지 않거나 일정한 주기로 갱신되는 데이터를 조회할 때는 사용할 수..
2023.05.16 -
프로그래머스 데브코스 백엔드 3기 후기(2)
[10/15 ~ 3/15] 프로그래머스 데브코스 백엔드 3기 과정을 수료했습니다. 5개월 기간 동안 경험한 것들을 간단하게 남깁니다. 이번 포스팅에서는 데브코스 생활에 대해 다룹니다. 선발 과정은 포스팅을 참고해주세요 데브코스는 Pre팀 기간 + New 팀 기간 + 최종 프로젝트로 나뉩니다. 각 기간동안의 활동을 매우 간략히 정리합니다. 상세 커리큘럼은 링크를 참고해주세요. Pre 팀 기간(2 주) 데브코스 개강 후 2주 동안은 Pre팀에 소속됩니다. 데브코스에 적응하는 시간을 갖고, Notion과 Slack 등 툴에 익숙해지는 시간입니다. 동시에 수업에서는 Java와 MySQL(DB)를 각각 한 주씩 학습하는 기간이기도 합니다. Java를 학습하고 나니, Java를 이용한 계산기 과제가 출제되었습니다...
2023.04.15 -
Let's Encrypt 인증서와 Nginx로 https 설정하기
데브코스에서 진행한 팀 프로젝트에 SSL 인증서를 발급하여 https로 보안을 강화했습니다. HTTP HTTP(HyperText Transfer Protocol)는 하이퍼 텍스트 전송 프로토콜로 간단히 말해서 인터넷을 작동시키는 역할을 하며, 웹 서버 및 웹 브라우저 상호 간의 데이터 전송을 위한 Application 계층의 프로토콜입니다. HTTPS HTTPS(Hypertext Transfer Protocol Secure)는 하이퍼 텍스트 전송 프로토콜 보안으로 표준 HTTP와 동일한 방식으로 작동합니다. 서버와 주고받는 데이터가 암호화되기 때문에 웹사이트에 추가적인 보호를 제공합니다. 즉, 개인 데이터를 훔치거나, 해킹하거나 볼 수 없도록 작동합니다. HTTP와 HTTPS 차이점 https는 SSL(..
2023.04.03 -
프로그래머스 데브코스 백엔드 3기 후기(1)
[10/15 ~ 3/15] 프로그래머스 데브코스 백엔드 3기 과정을 수료했습니다. 5개월 기간 동안 경험한 것들을 간단하게 남깁니다. 선발 과정을 적다가 길어져서 1, 2로 나누어 포스팅하며 이번 포스팅에서는 선발과정에 대해 다룹니다. 들어가며 필자는 비전공자 출신으로 작년 1월부터 웹 백엔드를 공부하기 시작했다. 데브코스를 지원할 당시에는 인프런에 있는 김영한님의 로드맵을 충실히 완주한 상태였고, 조막한 1인 토이프로젝트를 몇 개 해본 상태였다. 선발 과정 선발 과정은 크게 서류 심사 - 온라인 테스트 - 면접 순으로 진행되었다. 서류 심사 개발자를 지망하는 이유, 백엔드를 지망하는 이유, 데브코스를 지원한 이유, 그동안의 노력 등의 질문에 가감 없이 작성했다. 본인의 경험을 증명할 수 있는 기록(gi..
2023.04.01 -
Github Action, Nginx, Docker 무중단 배포하기(블루/그린)
어제 새벽에 kkini 프로젝트에 blue/green 방식으로 무중단 배포를 완료했습니다. Pull Request 1. 무중단 배포를 도입한 이유 이번 주 부터 kkini 프로젝트를 리팩토링해서, 빠른 시일내에 운영을 해보려고 합니다. 앞으로 변경이나 배포가 잦아질 것 같아서 downtime을 없애는 방향으로 개선하고자 무중단 배포를 도입했습니다. 기존에는 새로운 버전을 배포하기 위해서는 1) 실행중인 서버를 종료한다. 2) 새로운 서비스를 실행한다. 와 같은 과정을 거쳤으나 이 방식은 1번에서 서버가 종료되는 시점부터 2번 서버가 온전히 켜지는 시점까지 downtime이 발생하게 됩니다. 무중단 배포를 도입하면 이 downtime을 해결할 수 있습니다. 2. 왜 Nginx와 Blue/Green? 이미 ..
2023.03.30