2024/12 15

구글로그인 검증.

이제 프론트에서 버튼 만들었다고 해서 백엔드랑 프론트에서 제대로 통신을 하는가? 에 대한 확인 절차가 필요했음.그래서 하는데 좀 문제가 많았는데 내가 작성을 하면서 했던게 아니라 지금부터는 작성하면서 진행하려고함.일단 제일 큰 문제는 이거였음.백엔드와 프론트를 완전히 분리했다.내가 작성한 시큐리티 설정들은 분리된 환경을 상정하지 않고 작성했다.때문에 HTML을 반환하려 하면서 프론트에서 제대로 동작을 하지 않는다.이게 지금 문제의 결론임.그래서 성공 처리 핸들러와 실패처리 핸들러 모두 수정했고, 기존 리디렉션 로직을 아예 없앴다.또, 반환하는 데이터는 오직 JSON만 반환하도록 변경해줬음.결론은 백엔드 시큐리티 핸들러들이 단순 JSON만 반환한다는거임.@Slf4j@Componentpublic class ..

git hub 소셜 로그인 구현

원래는 리액트랑 통신이 제대로 되는가 확인을 먼저 해보려고 했는데 그냥 팀원이 할게 없대서 구조 설명해주고 버튼 하나만 만들어놓으라고 부탁했음.그럼 나는 그냥 백엔드 로직만 만들면 되는거, 깃 허브 소셜 로그인은 어떻게 구현하는지는 깃 허브 페이지 들어가서 확인해봐야지.여기 세팅으로 들어가서, 좌측 맨 아래에 보면 Developer settings라고 있다.들어가서 OAuth Apps로 오면 생성하는거 있음.여기서 이렇게 프론트를 기준으로 설정해줬음.그럼 여기 클라이언트 아이디랑 비번 생성 가능함.생성하면 다신 볼 수 없으니 저장하라고 알려준다.여튼 이제 클라이언트 ID와 Secret을 알아냈으니 일단은 Yml 파일에서 설정해주자고, secret.yml을 만들었으니까 여기서 구글로그인 아래에 작성해주면 ..

Star Info API 정상 작동하지 않는 것 발견 (해결함)

이게 내 사이트 좀 만져보려다가 API가 이상한 것 같아서 아무거나 요청을 해봤는데만든적도 없는 인증 때문에 오류가 나는걸 발견함..저번 마이페이지랑 통신할 수 있게끔 Nginx 도메인 설정 및 https 설정하면서 생긴 문제 같아서 바로 터미널 열고 컨테이너부터 확인했다.어..아무 문제 없는 것 같은데?API Key 만료됐나? 싶어서 보니까로컬 환경에서도 잘 되고 아직 평가판 기간도 남아있는걸 확인했다.일단 짐작이 안되니까그냥 재부팅 해봤음.아 재부팅하니까 잘되네,,?ㅋㅋㅋㅋㅋ뭐지혹시 몰라서 다른 것도 요청해봤는데 잘 됨..뭐지 암튼 해결.재부팅으로 해결되는 것도 있네 쓸 거리 생겼다고 신남, 왜 안되지 하는 빡침이 공존했는데 두개 다 식어버렸다.

프로젝트 초기 설정, DB PostgreSql로 결정, 시큐리티 설정 및 구글로그인

우선 켜자마자 gitignore 설정이랑, yml파일들 분리 및 생성 했고, 필요 의존성들 죄다 추가해줌.dependencies { // Spring Boot implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-security") implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.jetbrains:annotations:24.0.1") // Lombok compileOnly("org..

프론트와 백엔드 서버 분리 관리

이번엔 진짜 팀 협업처럼 제대로 구성해서 제대로 일을 하겠다고 생각을 하고 있었다.그래서 저번 팀플 처럼 백엔드와 프론트를 자동빌드해서 한꺼번에 확인하면서 개발하며 느꼈던 불편함들은, 완전히 분리된 상태에서 개발 및 운영해보기로 결심했다.그래서 react가 붙은 쪽이 프론트고, 붙지 않은 쪽이 백엔드임.지금 react 프로젝트는 아직 생성 전이라 여기서 이제 생성해주면 된다.터미널에서 해당 디렉토리로 이동해주고,npx create-react-app .로 프로젝트 생성해주자고,에러가 많이 떴는데 프로젝트는 생성 됐음. 이건 버전 때문이라 프로젝트 열어서 버전 다운해주면 해결 될거다.오케이 일단 다 재설치 완료 했고, 포트 설정까지 해줬음.배포 생각해서 미리 만들어뒀고, 이제 깃 리포지토리 새로 생성해서 프..

새로운 팀 주제 선정

이제 학원 기간도 끝났고, 학원에서 마음 맞는 사람끼리 팀프로젝트를 진행해보기로 했다.그래서 이제 주제 선정할거임.주제 선정.다들 미리 생각해오기로 했었음.일단 내 의견하나는 음악을 들려주면 코드를 분석해서 알아내는 것.-> 내가 음악 전공자라 내가 작곡을 하면서 불편했던 것을 서비스로 녹여본 것.--> 여기서 확장프로그램으로 뻗자면 사용자가 웹 페이지 내에서 음악을 들으면 코드 분석을 해준다. 많이 이용하려면 웹사이트로 접속해서 구독을 해라 이런 느낌.그리고 다른 하나는 웹페이지에서 음악을 듣고 검색해주는 것, (이거 이미 있음.)윤정이 의견은 유튜브에서 외국 댓글을 필터링해서 한국 댓글만 볼 수 있게 하는 서비스.-> 이것도 타겟층이 확실하게 있을 것 같다.근데 있음... 은서는 만화를 이미지로 검색..

내 소개 사이트 제작중 생긴 문제 해결.nginx 도메인 설정, https 적용 후 재배포

아 지금 한참 만들고 있는데 이왕하는거 내가 만든 API 연결해서 뭐 하면 좋겠다 싶어서 달의 위상 요청 후에 반환하고 그 정보를 띄우기로 했음.그래서 로컬 환경에서는 잘 되는데,이게 배포 환경애서는 안되길래 어? 왜지? 싶어서 보니까.https랑 http랑 통신이 금지되어있어서 안되는거임 ㅋㅋ아 개..여튼 그래서 걍 지금 바로 서버 열어서 nginx 띄우고 설정 빠르게 해볼까 싶어서 블로그도 쓰는중.바로 접속해서 docker 확인하고,여기서 docker-compse에서 nginx 설정 해주고,Let's Encrypt에서 SSL인증서 발급 받아서 넣어줄거임.아 이거 하다가 막혔는데 도메인 구입해야되네?그럼 IP로 발급받을 수 있는 방법을 찾아야지.Self-Signed SSL이라는 방법이 있으니까 이렇게 ..

Coding History 2024.12.20

DB 효율 테스트 (JMeter)

이게 배포한 API가 MariaDB를 사용중인데 조금 더 효율적인 DB가 없을까 생각을 하게 됨.그래서 대규모 데이터셋에서의 읽기/쓰기 성능이 뛰어나다는 PostgreSQL을 적용해보고 테스트, 그리고 그래프로 표시를 해볼까? 싶어서 한번 해보기로 했음.MariaDB도 처음부터 쓴게 아니고 MySql을 사용했었는데 대규모 데이터셋은 MariaDB의 InnoDB가 트렌젝션을 안전하게 처리하고, 동시성 제어가 뛰어나다는 정보를 들어서 채용해서 사용중이였음.그래서 이미 DB를 한번 바꿔본 전적이 있는데 내가 이걸 서술을 했었는지 안했었는지 기억이 안남..여튼 지금은 MariaDB과 PostgreSQL의 비교를 해보고 유의미한 차이가 있다면 PostgreSQL로 갈아탈 수도? 있는 글을 작성할거임.일단은 내 프..

Coding History 2024.12.15

팀플) 자동배포(무중단) 이후 구글 로그인 정상화

결론부터 말하자면 고쳤다.문제의 원인그래서 원인이 뭐였냐?백엔드가 https를 못알아먹는다. -> 이에 대한 설정을 추가함.그래도 안된다. -> 강제로 설정할 수 있게끔함.간단하게 말하면 이렇게 고쳤음.제일 처음엔 구글콘솔에 등록 하지 않은 줄 알았다. 그래서 가보니까 되어있네?그럼 뭐가 문제일까 싶어서 로그인 창을 보니까 개발자가 볼 수 있게 문제가 뭔지 보여주는 곳에서400 에러를 명시해주고 로그인 버튼을 눌렀을 때 나온 url을 보여주는데 여기서 http:///google/login/url뭐 이런식으로 되어있었음. 그러니까 난 nginx 초기 설정을 할 때 https 에 대한 설정을 끝냈는데 이상하게 로그인 버튼을 클릭하면 그게 해체가 된거.그래서 원인은 url이 이상하다. 였다.그래서 우째 고침?..

팀플) 자동배포, 무중단 배포 구현

사실 컨테이너로 해보고 싶어서 어제 하루종일 붙들고 있다가 포기하고 서버 컴퓨터 다시 생성해서 다시 처음부터 했다.괜히 일 벌려서 일 다시 하게 생겼네.우선 컨테이너로 왜 하려고 했냐면 나는 모든게 다 한 네트워크 안에서 돌아가게 하는게 지금의 배포 구성보다 더 효율적이지 않을까? 라고 생각했고 관리도 용이할 거라는 생각때문에 기존에 있던 자동배포 로직 자체를 싸그리 다 고쳐봤는데 이게 자동으로 업로드까지는 되는데 nginx에 코드로 도메인이랑 설정들 넣는데에서 계속 문제가 발생했다.(여기 릴리즈 보면 총 54번 시도해본거다. 지금도 서버 키면서 중간중간 비는 시간에 이거 작성중)지금 이걸 막 작성하고 있는 시간이 일요일 오후 7시 쯤인데 어제 한 오후 3시? 부터 시작해서 아침 8시까지 붙잡고 있다가 ..