개발 회고록 (5) 썸네일형 리스트형 항해 플러스 백엔드 회고 항해 플러스 백엔드 Chapter2 회고 기존 TDD 방식을 사용하지 않아 어려웠던 1, 2주 차를 넘어 3주 차부터 콘서트 프로젝트를 시작했다.항상 프로젝트를 시작하면서 느끼는 것은 나만의 클린 아키텍처의 기준을 만드는 것이 문제였다. 많은 청강을 들으면서 DIP와 구현 난이도를 조절하여 나만의 기준이 잔뜩 들어간 클린 레이어드 아키텍처의 구성을 만들었다. 개발자들이 생각하는 클린 아키텍처의 구성이 조금씩 다르지만 큰 흐름은 하나를 바라보고 있는 것으로 나의 클린 아키텍처의 구성이 다른 개발자에게 틀린 것이 아니라 다른 것이라고 생각하고 만들었다.항해를 시작하기 전 나는 단순 코드만을 짜면 되는 것 아닌가? 에서 진정한 엔지니어는 아트를 한다는 것을 요즘 많이 느끼고 있다. 도커를 입문하는 동시에 .. InteliJ Gradle 버전 오류 회고록 InteliJ Gradle 버전 오류 회고록 회사 PC로 만든 Project를 Git으로 올린 후 개인용 PC에서 추가 개발을 위해 Pull 이후 프로젝트를 즐어가본 결과 다음과 같은 오류가 발생했다.Dependency requires at least JVM runtime version 17. This build uses a Java 11 JVM 위 방법을 해결하기 위해 2가지 방법을 시도했다. 1. SDK 버전 변경File -> Project Structure에서 SDK의 버전을 11 -> 17로 변경 (실패 같은 오류 발생) 2. Gradle JVM Version 변경 Setting -> Build, Excution, Deployment -> GradleJvm 11 -> 17 버전으로 변경 결과.. spring boot와 react 연동 중 오류 회고 spring boot와 react 연동 중 오류 회고 spring boot와 react 연동을 위해 서버를 aws에 올려 프런트엔드에서 사용할 수 있도록 배포 작업을 진행했다. 첫 시작은 CORS에러가 나왔다. CORS에러는 요청자의 origin과 서버에서 넘겨주는 origin이 달라서 발생하는 오류인데 기존 local환경에서만 작업을 하다가 react를 사용하면 포트가 3000이 기본이지만 spring에서는 port가 8080이 기본인데 이런 부분 처리를 해주지 않아 오류가 발생한 거였다. 해결 방법은 request부분에서 들어오는 origin을 찾아 response값을 http://localhost/8080 -> http://localhost/3000으로 변경하는 로직을 추가하여 백이나 프런트에서 사.. Spring JPA 개발 회고록 Spring JPA 개발 회고록넘블에서 팀 프로젝트를 진행하면서 JPA를 쓰면서 겪었던 일화들(이론과 실전은 다르다는 것을 깨달았다.) 백엔드 첫 협업이기도 하고 Spring JPA를 예전에 써보고 오랜만에 다시 써보면서 User와 Board 엔티티를 만들고 조회를 하면서 겪었던 일이다. JPA를 쓰면 누구나 한 번쯤은 만나보는 순환 참조와 N + 1 문제를 겪어보고 이를 해결하는 내용이다. Spring MVC를 만들고 Service까지 단위 테스트를 진행했는데 여기까지는 문제가 발생하지 않아 개발이 잘 되어가는 줄 알고 진행하던 중 Controller test에서 순환 참조 문제가 발생한다는 것을 알게 되었다. 양방향 연관관계에서 User와 Board를 만들고 Board를 작성하면 User안 Boar.. react google로그인 auth/invalid-api-key 오류 해결 auth/invalid-api-key 오류 오류 발생 원인 3가지 .API key가 잘못되었을 때 .env 경로가 잘못되었을 때 firebaseConfig를 잘못 export 하고 import 했을 때 1. 해결방법 API key를 잘 확인해 보자 나와 같은 경우는 API key부분을 잘못 호출하여 발생하는 애러였다.ㅜㅜ (바보 같은 실수) .env에서 다음과 같이 정해 한 다음 다른 이름으로 사용을 했다. const FirebaseCredentials = { apiKey: publicRuntimeConfig.apiKey, authDomain: publicRuntimeConfig.authDomain, projectId: publicRuntimeConfig.projectId, }; 그 결과 auth/inv.. 이전 1 다음