Song[coding diary index]

Song 배열에 코딩 흔적 남겨두기

spring 5

[EP 1-5] 초보 ver. CICD 파이프라인 구축하기!(Github Action, Docker, Spring boot)

시작계기최근 AI가 나날이 발전함에 따라서 코드만 짜는 백엔드 개발자로는 살아남기 힘들다는 생각이 문득 들기 시작했다.그래서 '⚙️시스템 아키텍쳐⚙️적인 부분을 아는 백엔드 + Devops를 겸하는 개발자가 비로소 살아남을 수 있지 않을까...' 라는 생각에이렇게 일단 누구나 다 하는 CICD파이프라인을 구축해보고자 한다. 매번 쓰던 CICD를 사용했지만, 하도 쓸모없는 코드가 많아서 최적화시킬 겸 이렇게 글을 작성한다.내 글을 보고 보충하면 좋을 점과 피드백을 주는 것은 언제나 환영한다. 👨‍💻 사용한 기술Github Action -> 파이프라인 구축용Gradle -> Java 전용 빌드 파일 도구Docker -> 이미지 파일 빌드Docker Compose -> 다수의 컨테이너 한번에 띄우기GCP ..

spring 2025.04.04

[EP 1-4] Spring 소셜로그인(OAuth2) 써보기1: 소셜로그인 완벽 이해하기

시작하기 전...프로젝트에서 앱스토어와 플레이스토어 배포를 위해서 소셜로그인을 개발해야했다.(특히 Apple로그인은 안만들면 리젝당하니...)총 Google, Apple 2가지 소셜로그인을 구축하고, 자체 회원가입은 구현하지 않도록 했다.각 플로우차트를 설명하고, 이후 코드를 통해 설명하겠다. 이 글은 총 3편으로 1)이해, 2)SDK ver., 3)Backend ver.로 구성될 예정이다. 🍀내가 겪었던 모든 소셜로그인 삽질을 다른 사람들이 겪지 않기를 바라는 마음으로 이 글을 작성한다.🍀기본적인 소셜로그인 플로우들어가기 앞서, 소셜로그인 자체를 구현할 때 크게 거치는 과정이 존재한다. 인증 서버, 리소스 서버는 각각 소셜로그인을 제공하는 회사에서 운영하며, 대부분 아래 틀과 같은 플로우를 거친다...

spring 2025.03.13

[EP 1-3] spring jpa json serialize 문제 해결과정 (부제: JPA 지연 로딩)

문제 상황동아리 홈페이지 만들기를 하면서, 프론트에서 API테스트를 하다가 /profile/blog에서 문제가 발생했다.팀장이다보니 빠르게 버그수정을 위해서 팀원이 짠 코드를 빠르게 고치고자 직접 수정하려했다.(/profile/blog: 내 프로필에서 내가 작성한 블로그를 조회하는 기능)(Post(1) : Comments(N)(N:1관계) / Post(1) : tags(N)(N:1관계)임을 참고)/* 내 블로그 조회기능 @param: studentId(학번) @return: 내가 작성한 블로그 전체(pagination) - 학번으로 jpa를 통해서 유저 확인. - user pk를 통해서 내가 작성한 블로그를 가져옴.*/@Override public List showMyBlog(..

spring 2024.10.15

[EP 1-2] 비밀번호 암호화

spring 일기 2번째회원의 정보로는 아이디, 비밀번호, 이름 등등.. 다양한 정보를 가지고 있다.이 때 회원의 정보보호를 위해서, 필수적으로 비밀번호를 암호화해야한다는 사실! (다양한 법적 문제에 의해..)오늘은 암호화를 위해 공부한 내용을 작성해두고자 한다. User 회원가입의 설계1. User 1이 회원가입을 실행한다. (암호화 하기 이전에 동일 회원이 없는지 확인한다!)2. User 1이 설정한 비밀번호(평문)를 DB에 저장하기 전에 암호화를 진행한다. (어떠한 알고리즘에 의해서)3. 암호화된 비밀번호를 DB에 저장한다. 그러면 로그인을 할 때, 유저가 암호화된 비밀번호를 기억해야하나요? 당연히 아니다!이 때, 유저가 로그인을 실행할 경우마다 암호화를 진행하는데 여기서 암호화된 문장을 복호화할수..

spring 2023.11.17

[EP 1-1] Spring Entity Default 설정 방법

spring일기 1번째현재 동아리 홈페이지 제작, 그 중 회원 관리에 대한 역할을 맡은 상태.User의 회원등록 후, user에게 권한부여를 위해 레벨이 필요한 상황이다. 레벨은 3가지(일반, 동아리, 관리자)이고, 관리자가 user의 레벨을 조작시키고자 한다. 따로 user의 레벨에 대한 입력을 받지 않고, default값으로 "일반"을 부여하고자 하는데... null값이 그대로 적용되며 default로 설정되지 않고있다..   해결하기 전까지 수행한 방법을 기록하고자 한다. 1. @Column 어노테이션의 파라미터로, columnDefinition을 통해 직접 domain을 부여하고자 함. -> 실패 ( @Column(columnDefinition = 'varchar(3) default "일반"') ..

spring 2023.11.16
LIST