사이드 프로젝트를 앱스토어에 배포하기로 결정하면서, 애플로그인 구현이 필요하게 되었다. 과정이 생각보다 까다로워서 다음에 구현할 일이 있을 때 삽질하지 않기 위해 기록해둔다. 애플 공식문서에 나와있는 글을 보면, 타사 또는 소셜 로그인 서비스를 사용하는 앱은 특정 기능이 있는 기타 로그인 서비스를 함께 제공해야 한다. (https://developer.apple.com/kr/app-store/review/guidelines/#login-services)뭔말인지 잘 이해 안되는데, 이런 저런 글들을 찾아보니 여튼 소셜 로그인 쓸거면 애플로그인 달아야되는듯 하다. 1. 애플 개발자 사이트에서 애플 로그인에 필요한 설정 하기https://developer.apple.com/account/resources/id..
사이드 프로젝트를 하면서, 카카오 로그인을 구현하게 되어 다음에 또 헤매지 않도록 정리해 둔다.spring security는 사용하지 않고, spring boot 기반으로 구현하였다. 아래는 카카오 개발자 공식 문서에 나와있는 oauth 기반 인증 과정이다.https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api과정을 간단하게 요약해보면,1. 카카오 인증서버로부터 인가 코드를 받는다.2. 받은 코드로 access, refresh Token을 받는다.3. 받은 토큰으로 카카오 유저 정보를 가져온다.4. 유저정보를 이용해 내 서비스에서 로그인/회원가입을 처리한다. (선택) Resource Server - OAuth 2.0 서비스를 제공하고 Resour..
failover 관련된 학습을 하면서 추가로 공부한 설정값이다. DNS는 도메인 이름과 매핑된 IP 주소를 저장해 놓고 요청이 오면 해당 도메인에 맞는 IP를 반환해 주는 역할을 한다. (CNAME으로 도메인과 도메인을 매핑해주기도 함) 그리고 어플리케이션에서는 도메인에 해당하는 IP를 가져오기 위해 DNS 에 요청을 보내고 이 과정을 dns lookup 이라고 한다.IP를 가져오는 과정은 비용이 많이 들기 때문에, JVM의 경우 가져온 IP를 캐싱하고 있는데, 이 캐싱 유지 시간을 DNS Cache TTL 이라고 한다.AWS 에서는 캐싱 시간을 5초 정도로 설정해 둘것을 권장하고 있다. (https://docs.aws.amazon.com/ko_kr/sdk-for-java/latest/developer-..
pnpm 을 사용하는데 8 버전대라서 9버전으로 업그레이드 해야하는 일이 있었다.간단하게 할 수 있을줄 알았는데, 구글링해서 찾은 이런저런 명령어를 다 따라 쳐봐도 삭제가 안되는 문제가 있었다. npm install -g pnpmnpm -g ls위 명령어를 사용해 pnpm 최신 버전이 설치되어있는걸 확인했다. 그런데도 pnpm -v로 확인하면 8버전대가 보이는 문제가 계속 발생했다.which pnpm으로 확인해보니 nvm에 있는 pnpm을 사용하고 있는게 문제였다. 기존에 nvm으로 노드 20.11 버전대를 사용하고 있었는데, 이 때 pnpm이 8버전대로 자동 설치되어 있고 이 pnpm에 환경변수?가 연결되어 있어 아무리 설치해도 8버전대가 보이는 것이었다. 노드 버전도 업그레이드 해야하기 때문에 노드 ..
@PostMapping public ResponseEntity saveGame(@Validated @RequestBody GameDto.Request gameDto) { gameService.saveGame(gameDto); return ResponseEntity.status(HttpStatus.CREATED).build(); }위와같이 컨트롤러를 구현한 뒤 postman을 사용해 post request를 요청해 주었는데, 자꾸 데이터가 null로 나오는 문제가 발생했다. 도대체 왜이러나 하면서 빼먹은 부분이 있는지 생각해봤다. 이유는 바로 DTO에 setter가 없었던 것이였다. 데이터를 setter를 이용해 객체를 넣기 때문에 setter가 없으면 값을 할당하지 못해 null이 나오는 것으로 생각..