log.info
[Main-Project] Spring Boot + S3 이용한 파일 업로드
CodeStates/Project 2023. 3. 16. 21:30

우리 프로젝트는 유저의 취향을 공유하는 애플리케이션을 구현하는 것으로, 음식에 대한 취향을 공유할 때 사진을 업로드할 수 있어야 한다. 백엔드 팀원들끼리 회의를 하면서 이 기능에 대한 구현을 내가 맡기로 했다. 왜 S3 버킷을 사용했나요? 기능 구현을 맡고 어떻게 구현해야 하는지에 대해 감이 잘 잡히지 않았다. 그래서 멘토님에게 질문을 하여 다음과 같은 답변을 받았다. 1. 이미지를 base64로 인코딩하여 DB에 저장 2. 이미지 자체를 EC2 디렉토리에 저장 후 경로를 DB에 저장 3. 이미지 자체를 S3에 저장 후 경로를 DB에 저장 여기서 중요한 점은 업로드 방법보다는 이미지를 리사이징하여 용량을 줄이는 것이라 하셨다. 개인적으로 이미지를 인코딩하는 방법은 비효율적(용량측면에서)이라 생각해서 세 ..

article thumbnail
[Main-Project] Github Actions 이용하여 배포 자동화
CodeStates/Project 2023. 3. 15. 13:05

프리프로젝트에서는 Github Actions를 사용할 수 있는 권한이 주어지지 않아 수동 배포를 했는데, 메인 프로젝트에서는 코드스테이츠에서 Github Actions를 사용할 수 있는 권한을 부여해줘서 Github Actions를 이용한 배포 자동화를 구현해보았다. 왜 Github Actions를 사용했나요? 배포 자동화 방법에는 여러가지가 있지만 1. 프로젝트에서 버전 관리를 Github으로 하고 있음 2. 부트캠스 코스에서 Github Actions에 대해 학습함 위 두 가지를 이유로 Github Actions를 사용하기로 했다. 또한, 최근 많은 기업들의 기술블로그에서 Github Actions를 어떻게 사용하고 있는지에 대한 내용을 확인할 수 있었다. 더보기 https://fe-developer..

[Main-Project] JWT와 Redis를 이용하여 로그아웃/토큰재발행 기능 구현
CodeStates/Project 2023. 3. 14. 09:51

JWT + Redis 왜 Redis를 사용해야 하는가 코드스테이츠 메인 프로젝트에서 로그인/로그아웃 기능 구현을 맡았다. 로그인/로그아웃을 기능을 구현하는 것에는 여러가지 방법이 있는데 그 중 JWT를 이용해서 기능 구현을 했다. 왜 JWT를 사용했는지에 대한 내용 따로 블로깅했다. https://eunaya.tistory.com/50 [Main-Project] JWT 이용하여 로그인 기능 구현 이번 프로젝트에서 로그인 기능 구현을 맡게 되어 JWT를 이용하여 기능을 구현해보았다. 왜 JWT를 사용해야 하는가? 로그인 파트를 맡아 처음 구현하려고 했을 때, 세션 방식과 토큰 방식 중 어떤 eunaya.tistory.com 로그인 기능을 구현하는 것에는 큰 어려움이 없었는데 로그아웃 기능을 구현하려고 하니..

article thumbnail
JWT(JSON Web Token)
CodeStates/TIL 2023. 3. 14. 09:32

JWT(JSON Web Token) Json 포맷으로 사용자에 대한 속성을 저장하는 웹 토큰 구조 Header - 어떤 종류의 토큰인가? - 어떤 알고리즘으로 암호화 하는가? Payload - 유저의 정보 - 권한을 부여 받았는가? Signature - Header, Payload를 base64로 인코딩한 결과 인증 절차 장점 무상태성 & 확장성 서버는 클라이언트에 대한 정보를 저장할 필요x 토큰을 헤더에 추가함으로 인증절차 완료 안정성 암호화 한 토큰을 사용 암호화 키를 노출 할 필요 X 어디서나 생성 가능 토큰을 생성하는 서버가 꼭 토큰을 만들지 않아도 됨 권한 부여에 용이 토큰의 payload(내용물) 안에 어떤 정보에 접근 가능한지 정의

[Main-Project] JWT 이용하여 로그인 기능 구현
CodeStates/Project 2023. 3. 14. 09:15

이번 프로젝트에서 로그인 기능 구현을 맡게 되어 JWT를 이용하여 기능을 구현해보았다. 왜 JWT를 사용해야 하는가? 로그인 파트를 맡아 처음 구현하려고 했을 때, 세션 방식과 토큰 방식 중 어떤 방식을 사용해야 하는지 많이 고민했다. 둘 다 장단점이 있었지만 서버의 확장성 부분을 고려하여 토큰 기반 인증 방식을 사용하게 되었고, 그 중 가장 범용적으로 사용되는 JWT 를 사용했다. JWT를 간단하게 소개하자면 JSON 포맷의 토큰 정보를 인코딩 후, 인코딩된 토큰 정보를 secret key 로 서명한 메세지를 web token 으로 이용하는 방식이며 따로 블로깅했다. https://eunaya.tistory.com/51 JWT(JSON Web Token) eunaya.tistory.com 구현기 토큰 ..

[Pre-Project] 회고
CodeStates/Project 2023. 3. 2. 11:54

Pre-Project 기간 : 2023.02.13 ~ 2023.03.02 팀 빌딩 코드스테이츠에서 랜덤으로 배정해주었다. 이 과정에서 팀원 이탈이 생겨 1명 적게 배정된 팀도 있었는데, 위기 대처 능력(?) 키우기의 일종으로 보충은 없었다. Git 사용 당연히 팀 repository를 사용했기 때문에 git 사용이 필수였다. 지금까지 백업의 형태로만 git을 사용했었기 때문에 프로젝트 초기 하루동안은 협업을 위한 git 사용을 익혔다. 잘못하면 팀원들이 작업한 내용이 날아갈 수 있다는 이야기를 들으니 너무 신경이 쓰였는데, 나뿐만이 아니었는지 오후 라이브세션 시간에 질문이 쏟아져 교육엔지니어님께서 1시간 가량 더 수업을 해주셨다. 프로젝트 초기에는 너무 무서워서 push하고 pr할 때마다 부팀장님께 질문..

Section4 회고
CodeStates/회고 2023. 2. 10. 14:49

Section4 부족함을 조금씩 채워갔던 기간 약 한 달 동안 섹션3에서 부족했던 부분을 채워가려고 노력했다. 섹션 초반 방황의 시기도 있었지만 중반부 리액티브 프로그래밍부터는 멘탈을 잡고 학습에 몰두했다. 섹션3 당시에는 어려웠던 내용들이 노력하니 조금씩 내 것으로 되었고 노트북 앞에 앉아서 직접 코드를 작성하는 시간이 점점 재밌어졌다. 특히 Spring Data JPA는 다시 한번 학습하니 어렵다는 느낌보다는 신기하고 편리했다. 아쉬웠던 점이 있다면 목표와는 다르게 연휴나 주말을 학습시간으로 활용하지 못했던 것이 많이 아쉬움으로 남는다. 평일에 정규학습이 끝나고 개인학습을 하는 것은 이제 루틴이 되었는데, 주말에 노트북 앞에 앉는 것은 아직 어렵다🥲 섹션4 학습내용 회고 섹션 초기 Spring Sec..

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.
보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.
보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.

검색 태그