Popular Posts
-
0. JWT + oAuth2 카카오 로그인 삽질일기 0. 들어가기 앞서 SpringBoot 3.2.4 + Spring Security 6.2.3뭘해도 deprecated가 뜬다. 해결하는데 한참걸렸다. 이거도 따로 작성왜 [삽질일기] 일까?JWT + oAuth2 를 활용한 소셜로그인 방식에는 두 가지 방식이 존재한다.1. oAuth2 Client 라이브러리를 활용한 방식2. 직접 provider (카카오)와 통신하며 인증코드를 통해 jwt까지 직접 생성하는 방식 "난 몰랐다."무슨 삽질을 했고, 하고 있느냐1. 최신버전쓰겠다 [해결]chatGPT가 말해주는방식 : 안됨여러 기술블로그에서 Security 6.x.x : 이것도 안됨해결하는데 한참걸렸다. 물론 위에서 말한대로 따로 작성.2. SecurityConfig [해결...한줄 알았으나 진행중]white..
-
"ec2 + pm2 + nginx"를 활용해서 node.js 배포하기 (4) 4. MongoDB활용을 위한 환경변수 설정문제가 발생했다.Nodejs 프로젝트를 그대로 Github에 올렸더니 하나의 메일을 받을 수 있었다.대충 해석하자면 "MongoDB URI가 유출됨"이다. 그렇다면 해결법은 ?임시적으로 내 레포지토리의 공개범위를 Private으로 바꿔버렸지만, 당연히 이건 해결책이 아니다.찾아보니 "환경변수"를 설정해서 주소를 숨길 수 있으며, Node.js에서는 "dotenv" 모듈을 활용해서 환경변수를 불러와서 사용할 수 있다고 한다. 해결 순서1. dotenv를 활용하는 방향으로 코드 수정2. 서버 컴퓨터 (ec2 ubuntu 인스턴스)의 프로젝트 루트 디렉토리에 .env 파일을 생성해서 환경변수 관리 1. dotenv를 활용 하는 방향으로 코드 수정 터미널에서 npm..
-
Java 기술 면접 대비 List
객체 지향 OOP (객체 지향 프로그래밍)의 특징캡슐화 : 데이터와 데이터를 조작하는 메소드를 하나로 묶고, 외부에서 접근할 수 없도록 보호상속 : 기존 클래스의 속성과 메소드를 이어받는 새로운 클래스를 생성다형성 : 하나의 메소드나 객체가 여러가지 형태를 가짐추상화 : 복잡한 시스템을 단순화하여 핵심 개념만 노출객체 지향 설계 5원칙 (SOLID)S(SRP) : 단일 책임 원칙하나의 클래스는 하나의 책임만 가져야 함 (책임 = 기능)클래스를 변경하는 이유는 단 하나여야 하고, 파급효과가 적어야 함O(OCP) : 개방-폐쇄 원칙확장에는 열려있으나 변경에는 닫혀있어야 함기존의 코드 변경없이 새로운 기능을 수정/추가 할 수 있게 설계 되어야 함다형성과 추상화 개념을 이용L(LSP) : 리스코프 치환 원칙하위..
Latest Posts
-
윈도우 11 + Excel 2013 호환성문제 해결 [ 해당 게시글은 문제를 해결한 AI의 세션을 그대로 사용해서 요약 및 작성됨 ] - 어머니로부터 회사에서 엑셀이 안열리고 맨날 복구뜨는데 복구하고나면 print 해야하는 쪽 설정이 다 깨진다고 살려달라는 요청 접수. 아들이 개발잔데 모른다할수도없고... 코덱스야 도와줘 ----------------- 아래는 AI가 작성 -----------------Excel 파일 복구 창이 계속 뜨는 원인과 해결 방법증상Excel 파일을 열 때 아래와 같은 복구 메시지가 반복해서 뜬다.읽을 수 없는 내용을 복구하거나 제거하여 파일을 열 수 있습니다.제거된 기능: /xl/worksheets/sheet?.xml 부분의 워크시트 속성처음에는 복구해서 열 수 있지만, 저장 후 다시 열면 같은 문제가 반복된다.원인파일 내부를.. -
헥사고날 아키텍처에서 도메인 중심적인 Update 수행 Update in Hexagonal Architecture헥사고날 아키텍쳐가 뭔지는 Skip 헥사고날 아키텍쳐로 프로젝트를 수행하던 도중, Update 관련 의문점이 발생했다.의문이 발생한 두개의 Case의 코드 먼저 보고가자Port Interface의 선언부와, DTO는 생략했다.기존 CodeCase 1: 약관 도메인 - 약관 수정약관을 서버에서 관리하는 것은 기획팀의 요청Application Module - AdminTermsService.javapublic void updateTerms(UpdateTermsRequest request) { Terms existingTerms = termsOutput.getTerms(request.termsId()); Terms updatedTerms = .. -
[TroubleShotting] AWS Secret Manager로 p8 키 파일 관리 AWS Secret Manager로 p8 키파일 관리하기까지의 삽질 기록진짜 쉽지않았다.... 끄적끄적끄적여보자..배경애플을 포함한 카카오/구글소셜로그인 기능을 전부 완성하고, 테스트도 다 하고 배포했는데 "애플"만 실패했다.원인 : .p8 키 파일이 프로젝트 resources에 포함되어있었고, 배포환경은 AWS ECS 였으며 접근할 수 없었다.해결방안 : AWS Secrets Manager를 활용하여 키파일 내용을 넣어 해결하고자 했다.진짜문제 : 근데 잘 안되더라....AWS Secrets Manager 도입 과정1. 의존성 추가implementation("software.amazon.awssdk:secretsmanager:2.30.36")implementation("software.amazon.aw..