1. 테스트 데이터가 필요하게 된 계기 국비수업에서 팀원들과 상의하여 학습 목적으로 호텔 예약 웹 애플리케이션을 구현하기로 했다. 프로젝트 기간이 짧기 때문에 사업자가 업장을 등록하는 기능은 고려하지 않았다. 그래서 숙박업소 테스트 데이터를 가져오기로 했다. 공공데이터
저번 글에 이어서 Spring boot에 Docker-Compose를 적용하기로 했다. https://github.com/koonlx spring boot에 docker를 적용하게된 계기 spring boot docker 종속성 소개 docker-compose.yml
CommandLineRunnerApplicationRunner@PostConstruct@EventListener간단함과 명확성: CommandLineRunner는 구현이 간단하며, 코드의 의도가 명확하다. 애플리케이션 시작 시 실행해야 하는 초기화 작업이 있을 때 가장
1. JWT를 사용한 이유 1. Self-contained(자체적으로 포함된 정보) JWT는 토큰 안에 필요한 사용자 정보나 권한 정보(Claims)를 자체적으로 포함시킬 수 있다. 그래서 서버는 이 토큰을 별도로 조회하지 않고도 사용자에 대한 정보나 권한을 확인할 수

1. 배포 자동화를 구축한 이유 기간이 짧아서 개발에 집중할 수 있도록 개선 사항이 있을 시 빠르게 배포할 수 있도록 2. jenkins가 아닌 github action을 사용한 이유 github_action.yml, github secret 설정 AWS 설정 결과

우선 AWS의 클라우드 네트워크의 구조를 파악하는게 좋을거 같아서 간단한 비유를 준비했다. 1. AWS Structure VPC와 서브넷: 네트워크의 기본 구조 VPC: 자기자신의 가상 마을이라고 생각해라. 이 마을 안에는 여러 구역(서브넷)이 있을 수 있다. 서브넷
배포한 후 사이트에 접속하면 해당 경고 로그가 지속적으로 발생했다. CORS 에러 로그와 같이 발생해서 CORS 에러인 줄 알았지만 그게 아니라 Mixed Content Issue였다.배포 환경에서는 Nginx가 ssl 암호화 및 리버스 프록시 역할을 하기 때문에 사용
기존에 팀원이 구현한 실시간 채팅 기능이 배포한 환경에서 동작하지 않아서 해결방법을 모색하다가 도저히 고칠 수가 없어서 재구현하기로 했다.client에서 socket의 상태관리를 해야하는데 모든 페이지에서 socket이 연결하도록 하기 위해 미리 분리해둔 layout.
Spring Boot에서 Socket통신을 구현할 때 위 두 종속성을 자주 사용하는거 같아서 각 종속성의 역할을 알아보고자 한다.Messaging Stomp Websocket을 참고하면 이해가 더 잘 될 것이다.이 예약어는 implementation 'org.sprin
Problem 처음 프로젝트를 진행할 때 @Entity User Class에 UserDetails, OAuth2User를 같이 구현했다. 동작하는데는 문제가 없긴했지만 하나의 파일에 여러가지를 한꺼번에 구현하다보니 필요하지도 않은 주석을 사용해야하기도 했고, 조금 헷갈