본문 바로가기

전체 글

(6)
이미지(파일) 업로드 개선 와이랭 프로젝트에서는 사용자가 커뮤니티 게시글을 작성할 때, 이미지를 첨부할 수 있도록 구현했다. 두 가지 방법 중 선택을 해야 했는데,사용자가 작성한 텍스트와 첨부한 이미지를 업로드 버튼 클릭 시 한 번에 서버로 전송-> 텍스트와 이미지의 메타데이터는 DB에 저장, 이미지는 S3로 전송이미지는 첨부하는 즉시 서버 -> S3로 전송,업로드 버튼 클릭 시 작성한 텍스트와 업로드가 확정된 이미지의 메타데이터를 서버로 전송-> 실제 게시글에 업로드되지 않은 이미지들은 스케줄러가 주기적으로 S3에서 삭제1번은 개발자 입장에서 편한 방법이다.개발자는 작성 도중 취소된 이미지들을 관리할 필요가 없다. 사용자가 업로드 버튼을 누르기 전까지는 아무것도 서버로 전송되지 않는다.최종 데이터만 저장되기 때문에 불필요한 데이..
배포 전략 코테이토에서 CI/CD 주제로 발표를 진행하며 여러 가지 배포 전략에도 관심을 갖게 되었다.BigBang 배포먼저 전통적인 Big-Bang Deployment는 가장 단순하지만 효과적인 방법으로, 한 번에 모든 서버를 내리고 업데이트 후 다시 올리는 방식이다. 따라서 성공만 한다면 가장 빠른 배포시간을 가질 수 있다. 하지만 서버를 내리는 과정에서 다운타임이 불가피하게 발생하고, 롤백이 어렵다는 단점이 있다. 전체 시스템을 레거시에서 현대적으로 리디자인하거나 마이그레이션 하는 대규모 업데이트, 혹은 내부 직원이 사용하는 ERP시스템의 경우에 적절한 배포 방식일 수 있지만, 실시간 트래픽이 많은 B2C서비스나 고가용성이 중요한 서비스에서는 적절한 방식이 아닐 수 있다. 따라서 개발자는 상황에 맞는 적절한 ..
학습은 수직적으로, 협업은 수평적으로 7개월 전 작년 9월, 앞으로의 진로를 개발자로 정하면서 앞만 보고 계속 달려왔다.그러던 중 코테이토에 들어와 지금 '어떠한 개발자가 될 것인가'에 대한 주제로 글을 써 보며 그간 걸어온 길을 멈춰서 돌아보고, 재정비할 수 있는 좋은 기회를 갖게 되어 정말 다행이라 생각한다! 7개월 간 공부하고 개발하며 '학습'과 '협업'에서 중요하게 느껴지는 것들이 있었고, 이에 따라 어떤 개발자가 되고 싶은지 간략하게 정리해 보았다. 6개월 후에 같은 주제로 다시 글을 쓸 것인데, 지금의 내 생각과 비교해 보는 것도 재밌을 거 같다! 학습아래 일화는 '학습'에 관하여 쪽팔림? 을 무릅쓰고 올리는 일화인데, 사실 이미 코테이토 면접에서 언급했던 일이기에.. 작년 9월~12월까지 교내 GDSC에서 백엔드 강의를 들으며 ..
[Java, Spring] 로그인 기능 구현해보기 (세션을 통한 인증) ▲2025.01.08 - [개발] - [Java, Spring] 로그인 기능 구현해보기 (쿠키를 통한 인증) [Java, Spring] 로그인 기능 구현해보기 (쿠키를 통한 인증)우리가 로그인을 얘기할 때 들어보는 쿠키, 세션, Jwt와 같은 도구들은 모두 Http 프로토콜의 stateless 특성에 기인한다. telnet, ssh와 같은 네트워크 프로토콜은 한번 접속을 하면 서버는 사용자가 누redcalender.tistory.com이전 포스팅에서 Http 프로토콜을 따르는 환경에서의 인증 과정과 쿠키를 사용한 간단한 인증 방식에 대해 알아보았다. 단순히 쿠키만을 사용해 인증을 진행할 때의 문제점에 대한 해결로 Session(세션) 로그인 방식과 Jwt를 이용한 로그인 방식을 언급했는데 오늘은 둘 중 ..
[Docker] SpringBoot, Mysql 도커로 띄우고 연동하기 https://aws.amazon.com/ko/compare/the-difference-between-docker-images-and-containers/Docker의 이미지와 컨테이너에 대한 개념을 정립할 수 있는 AWS의 글이다. Docker desktop을 설치하고, 배포를 위해 새로운 브랜치를 생성해준다.**가장 중요한 0순위**application.yml 파일의 민감한 정보들은 환경변수로 따로 저장해두자. 1. 프로젝트 루트 디렉토리에 .env 파일을 생성한다. 2.  .env 파일안에는 기존에 application.yml 파일 안에 있던 민감한 정보들 ( DB, JWT_SECRET_KEY 등 ) 을 환경변수로 저장해 두고, application.yml 파일을 다음과 같이 수정하자.이렇게 두면 ..
[Java, Spring] 로그인 기능 구현해보기 (쿠키를 통한 인증) 우리가 로그인을 얘기할 때 들어보는 쿠키, 세션, Jwt와 같은 도구들은 모두 Http 프로토콜의 stateless 특성에 기인한다. telnet, ssh와 같은 네트워크 프로토콜은 한번 접속을 하면 서버는 사용자가 누구인지 계속 알 수 있다. 다시 말해, state 한 상태를 유지한다.   반면 Http의 경우 서버에 접속을 해 데이터를 요청한 후 연결을 끊는다. 서버 입장에서는 들어오는 요청은 늘 새로운 요청이고, 클라이언트가 누구인지에는 관심을 두지 않는다. 즉, stateless 하다는 것이다.  따라서 사용자가 웹사이트 로그인 페이지에서 아이디와 비밀번호를 입력해 로그인한 뒤, 웹사이트의 다른 리소스에 접근하기 위해서는 서버에게 내가 누구인지 알리는 과정이 필요하다. 이를 인증 과정이라 부른다...