🚥[팀 프로젝트 & 활동]

[JWT를 활용한 일반 로그인 API 구현] 과정을 기록해보려고 한다. 프로젝트 개발 환경은 아래와 같다.Java: 17JDK: 17.0.6IDE: IntelliJ IDEA 2024.1Framework: Spring Boot 3.3.1 Spring Security의 구조(Filter)와 인증(Authentication) 구조에 대한 설명은 아래 글을 참고하자. [Spring Security] Spring Security의 구조(Filter) 이해하기[JWT를 활용한 로그인, 로그아웃, 회원탈퇴 API 구현 방법]에 대해 설명하기 전, 공식 문서를 보면서 Spring Security의 기본 개념(Filter)에 대해 학습해보려고 한다. API를 구현할 때 사용한 자바, 스프dev-meung.tistory...
[JWT를 활용한 일반 로그인 API 구현] 과정을 기록해보려고 한다. 프로젝트 개발 환경은 아래와 같다.Java: 17JDK: 17.0.6IDE: IntelliJ IDEA 2024.1Framework: Spring Boot 3.3.1 JWT에 대한 설명은 아래 글을 참고하자. [팀 프로젝트] 하루치(HARUCHI) - 쿠키(Cookie)와 세션(Session), 토큰(Token) 차이 & JWT(JSON Web Token)JWT를 활용한 인증 및 인가(로그인, 로그아웃, 회원탈퇴) 기능 구현 방법에 대해 작성하기 전, 기본 개념부터 정리해두려고 한다. 사실 완벽하게 이해하고 구현했다기보단 최소한의 필요한 게 뭔dev-meung.tistory.com Spring Security의 구조(Filter)와 인..
JWT를 활용한 인증 및 인가(로그인, 로그아웃, 회원탈퇴) 기능 구현 방법에 대해 작성하기 전, 기본 개념부터 정리해두려고 한다. 사실 완벽하게 이해하고 구현했다기보단 최소한의 필요한 게 뭔지 정도만 알고 구현했던 거라... 다른 프로젝트에서 기능(ADMIN, USER 구분 등)을 추가해야 된다거나 할 때 자신 있게 수정할 수 있을 때까지 이해하는 게 목표다. 🔥 HTTP 기본 개념서버와 클라이언트 사이의 모든 Request와 Response는 HTTP를 기반으로 동작한다. 1. 무상태 프로토콜 - Stateless서버가 클라이언트의 이전 상태를 보존하지 않는다.따라서 클라이언트는 요청 시 서버에 필요한 모든 정보를 제공해야만 응답을 받을 수 있다.서버는 상태를 보존할 필요가 없기 때문에 클라이언트 ..
🐛이슈- 발생한 오류 copy & paste- 오류가 발생한 상황 간략히 설명각자 API를 구현하던 중 팀원분이 [응답 통일 및 에러 핸들러]를 구현해서 PR을 올려주셨다. API 역할 분배할 때 되도록이면 엔티티별로 나눠놔서 내가 맡은 Transmission 부분을 끝내고 다음날 아침에 pull을 받았다. 충돌 좀 해결하고 Swagger로 테스트하려고 했는데, Swagger에 접속하면 Failed to load API definition.라는 문구와 함께 아래 화면이 뜨는 오류가 발생했다. 설명을 보면 API 정의해 둔 걸 로드하는 데 실패했다는 뜻이고, 응답 상태가 500이면 Server Error인 거라 localhost:8080/v3/api-docs 경로로 접속해 봤지만 에러에 대한 자세한 설명..
최근 교내 해커톤을 진행하던 중 CI/CD 파이프라인이 동작하지 않는 상황이 발생해서 관련 코드를 싹 다 지우고 EC2에 서버를 수동으로 배포했었다. 또 이런 일이 생길 수도 있을 것 같아서 구글링 하지 않아도 되도록 따로 정리해두려고 한다. 참고로 AWS에 대한 자세한 설명은 나중에 하고, VPC를 통해 EC2를 구축한 뒤 RDS DB 서버를 만들어서 접속하는 방법만 작성한다. 1. AWS EC2 서버 배포대략적으로 이해한 내용만 적어보면, AWS VPC는 사설 IP를 제공해 준다. 보통 10.0.0.0/16 같은 식으로 부여받고, 그 안에 서브넷(10.0.1.0/24, 10.0.2.0/24 등)을 나눠 EC2나 같은 RDS 인프라 자원을 배치할 수 있다.- public 서브넷은 외부와 통신할 때 In..
한양대학교 ERICA캠퍼스 소프트웨어융합대학과 교내 IT 동아리 연합이 주최한 해커톤 HY-THON에 참여했다. 왜 우리 학교에는 아이디어톤만 있고 해커톤은 없을까 생각하고 있었는데 마침 주최한다길래 바로 신청서를 제출했다. [HY-THON 소개]HY-THON은 멋쟁이사자처럼, UMC, 구름톤 유니브, HY-END가 가진 "지속 가능한 교내 해커톤 행사"라는 공통된 목표로부터 만들어지게 되었습니다. 또, 개발자의 수요가 늘어나면서 개발에 대한 관심이 높아졌지만 교내에는 개발 경험을 쌓거나 개발자 간의 네트워킹의 기회가 적기 때문에 이를 해소하고자 개최되었습니다.앞으로 HY-THON이 한양대학교 ERICA의 대표적인 교내 행사 중 하나로 자리 잡기를 희망하고 있습니다! 일주일 동안 6~7명끼리 팀을 이뤄 ..
6th UMC 프로젝트도 잘 마쳤으니 1박 2일 해커톤에 참여하더라도 충분히 뭐라도 할 수 있을 거라고(?) 생각해서 7th Ne(o)rdinary Hackathon[24.11.23 ~ 24.11.24]에 참가했다. 결론부터 말하자면... 아직 한참 부족하다. 🥲 프로젝트에 크게 기여하진 못 했지만 내가 뭘 했는지, 저번 해커톤과는 어떻게 다른지, 어떤 걸 배웠는지... 그런 것들을 전부 기록해두려고 한다. 이번엔 CMC분들도 함께 하는 프로젝트라 얻어갈 것도 많고, 아이디어 메이킹이나 프로젝트 개발도 신속하게 진행됐다. 아이디어 메이킹 나는 Web 개발자 3명과 Spring Boot 개발자 3명인 N팀에 배정됐다. 각 파트마다 CMC분들이 1명씩은 있어서 정말 든든했다. CMC분들은 해커톤에 거의 필..
첫 해커톤에서 CI/CD 파이프 라인을 구축하느라 애썼던 기억이 있어서 참고용으로 UMC 6th 워크북을 다시 보면서 정리해두려고 한다. AWS에 대한 자세한 내용은 나중에 따로 공부하면서 추가해야겠다. [해커톤] 6th UMC HACKATHON Seoul6th UMC HACKATHON Seoul7월 4일 낮부터 5일 낮까지 첫 해커톤에 참여했다. 신청은 6월 중순쯤 받았는데 워크북도 거의 끝나가고 있던 터라 7월쯤 되면 해커톤에 참여할 역량이 있을 거라고 생각했고, 선dev-meung.tistory.com CI/CDCI(Continuous Integration) - 지속적 통합CI는 코드가 수정될 때마다 지속적으로 편하게 통합되어 빌드, 테스트를 하는 과정을 말한다.UMC에선 테스트까진 다루지 않고 지..
프로젝트를 진행할 때, API 구현이 끝나면 로컬 환경에서 swagger로 테스트해 보고 git push 한 뒤 PR을 올리기로 했었다. PR이 승인되면 develop 브랜치에 머지하고, 배포(개발) 환경에서 잘 돌아가는지 확인하고 나서야 안심했던 기억이 있다. 로컬 환경에서 테스트할 때나 PR을 올리기 전 매번 application.yml을 수정해야 했는데, 이게 참 간단하면서도 번거로웠다. 아래에 application.yml의 일부를 가져와 봤다. spring.datasource.url(username, password) 부분에서 로컬 환경과 배포(개발) 환경의 값을 다르게 설정해야 정상적으로 테스트할 수 있다.spring: # 로컬 datasource: url: jdbc:mysql://loc..
🐛이슈- 발생한 오류 copy & paste- 오류가 발생한 상황 간략히 설명오늘 하루 예산을 조회하는 API와 오늘부터 말일까지의 날짜별 하루 예산을 조회하는 API에서 오류가 생겼었다.구체적인 오류8월 12일에 배포 서버의 swagger에서 테스트한 결과, 원래대로면 12일부터 31일까지의 하루 예산만 나와야 했지만, 10일과 11일의 하루 예산까지 조회되는 문제가 발생했다.로컬 서버의 swagger 테스트 결과는 정상적으로 나오는 것까지 확인했다.상황CICD 파이프라인이 돌아간 마지막 날짜는 8월 10일이었다. 날짜가 수상하게 들어맞는다는 생각이 들어서, DayBudgetService가 스프링 빈으로 등록될 때 or 배포가 진행될 때 날짜가 고정돼버려서 생긴 문제가 아닐지 의심하게 됐고, 해당 코..
dev-meung
'🚥[팀 프로젝트 & 활동]' 카테고리의 글 목록