[Jasypt] application.properties 설정 암호화
Develop/SpringBoot2024. 1. 29. 16:44[Jasypt] application.properties 설정 암호화

들어가기에 앞서... 진행중인 프로젝트에서 실배포까지 할 예정이기 때문에 DB정보와 같은 알려지면 위험한 설정들을 gitignore를 활용하여 배포하지 않거나, 암호화하여 올릴 필요가 생겼습니다. Jasypt 라이브러리를 활용하면 Springboot 내에서 쉽게 암호화가 가능하다고 하여 실제 적용하는 과정에 대해서 기록합니다. 구축 환경 Springboot : 3.2.2 JDK : 17 Build Tool : gradle Editor : InteliJ dependency 의존성 추가 https://mvnrepository.com/] 위 사이트에서 Jasypt를 검색하여 최신버전인 3.0.5 의존성 추가 3.0.4가 사용이 많이 되어 적용과정에서 한번 사용해봤는데 의존성 주입이 안된다는 이상한 에러가 발생..

[채팅 서버] Springboot + STOMP를 활용한 채팅 구현
Develop/SpringBoot2024. 1. 26. 17:54[채팅 서버] Springboot + STOMP를 활용한 채팅 구현

이번에 진행하는 프로젝트에서 채팅 서버 관련 개발을 담당하게 되어 학습한 내용을 정리한 포스팅입니다. 개발 환경 SpringBoot : 3.2.2 JDK : 17 Dependency dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-websocket' implementation 'org.springframework.boot:spring-boot-devtools' testImplementation 'org.springframework.boot:spring-boot-starter-test' compileOn..

Develop/SpringBoot2024. 1. 24. 13:27[채팅 서버] STOMP, Message Broker

이번에 진행하는 프로젝트에서 채팅 서버 관련 개발을 담당하게 되어 학습한 내용을 정리한 포스팅입니다. 채팅 서버 관련 레퍼런스를 참조하며 클론코딩을 진행해보는 과정에서 아래와 같은 문제점을 발견했습니다. 단순 WebSocket만을 통해 채팅 서버를 구현하게 될 경우 해당 메시지가 어떤 요청인지 어떻게 처리해야 하는지에 따라 채팅룸과 세션을 일일이 구현해야함 메시지 발송을 관리하는 추가 코드 필요 이런 단점들을 STOMP 프로토콜을 활용하여 메시징을 효율적으로 처리하여 서버를 고도화할 필요가 있다고 생각했고 다음은 학습한 내용을 정리한 부분입니다. STOMP STOMP란? - Simple Text Oriented Messaging Protocol - 메시지 전송을 효율적으로 하기 위한 프로토콜 - 기본적으..

[Git] Gerrit을 통한 Commit 단위 코드리뷰
DevOps./Git2024. 1. 23. 17:50[Git] Gerrit을 통한 Commit 단위 코드리뷰

프로젝트를 진행하면서 Gerrit을 통한 코드리뷰를 해야하는 상황이 생겨 Gerrit이 무엇인지와 어떤식으로 활용을 해야할지 정리가 필요하다 생각해 포스팅함. Gerrit이란? 게릿(Gerrit)은 무료 웹 팀 코드 협업 도구. 소프트웨어 개발자가 팀에서 웹 브라우저를 사용해 소스 코드의 다른 사람의 수정 사항을 검토하거나 변경 사항을 승인 또는 거부할 수 있음. Gerrit은 코드 리뷰를 자동화와 동시에 강제성을 부여함으로써 기능개발을 완료한 Commit들에 대해 원격 저장소로 Push를 할 때 자동으로 지정된 리뷰어에게 알림이 전송되며, 리뷰어는 웹 브라우저를 통해 리뷰를 진행함. 이 때 코드 리뷰를 통해 부여된 점수가 일정 수준 이상이 될 때 실제 소스코드에 반영이 이루어짐. Feature Gerr..

CS/알고리즘2024. 1. 23. 16:46[PS] 백준 2504 : 괄호의 값(JAVA)

문제 https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X www.acmicpc.net 풀이 자료구조 스택을 활용하여 풀이 접근법 temp라는 임시 변수를 활용. 여는 괄호의 경우 Stack.Push() temp *= 2 혹은 temp *=3 → 여는 부분에서 곱하거나 더할 값을 temp변수에 누적 닫는 괄호의 경우 Stack.isEmpty() 체크 각각의 괄호에 따라 결과값에 temp값 누적 및 temp값 감소 temp /= 3 or temp /= 2 소스코드 impor..

[운영체제] Synchronization Tools(공룡책 스터디 정리)
CS/운영체제2024. 1. 16. 21:21[운영체제] Synchronization Tools(공룡책 스터디 정리)

본 포스팅은 인프런 공룡책 강의를 기반으로 한 스터디 개인 정리를 위한 포스팅입니다. 잘못된 부분이 있다면 언제든 지적해주시면 감사하겠습니다! 1. 프로세스 동기화 동시다발적으로 실행되는 프로세스와 쓰레드들은 서로 협력하면서 영향을 주고받게 되는데 이 과정에서 자원의 일관성을 보장해야 함. 프로세스 동기화란 ? 실행순서 제어 : 프로세스를 올바른 순서대로 실행하기 글 쓰는 프로세스가 먼저 실행된 후 읽는 프로세스가 실행되어야 정상적으로 데이터가 넘어가기 때문. 상호 배제 : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기 Bank account problem 프린터처럼 한 번에 하나의 프로세스만 접근해야 하는 자원 Producer & Consumer Problem 공유 자원과 임계 구역..

[Git] Github-Flow [깃 브랜치 전략]
DevOps./Git2024. 1. 16. 20:53[Git] Github-Flow [깃 브랜치 전략]

Github Flow Github Flow는 Git Flow가 Github에서는 사용하기 복잡하다고 하여 나온 전략 여러 전략 중 가장 간단한 전략 위 커밋 그래프처럼 단순한 형태를 띄기 때문에 사용법도 단순함. 하나의 기능 구현 Feature 브랜치가 완료될 때 마다 Pull Request를 진행하기 때문에 수시로 배포가 발생. → CI / CD 환경을 구축하여 자동화가 되어있는 환경에서 사용하기 적합함. 장점 - 위 이미지처럼 Git Flow에 비해 간단하고 직관적인 구조를 가지고 있음. - 단순한 구조 및 빠른 배포주기로 인해 소규모 및 단기간 프로젝트에서 사용하기 좋음. 단점 - Git Flow에 비해 브랜치를 세분화하지 않기 때문에 브랜치 네이밍 및 커밋 메시지에 신경 쓰지 않으면 전체적인 개발..

DevOps./Git2024. 1. 15. 22:01[Git] 원격 레포지토리 변경사항 로컬 브랜치로 가져오기

개별 브랜치 최신화를 해야하는 상황 작업을 할 때 브랜치의 수명은 되도록 짧게 가져가는게 좋지만, 개별 브랜치에서 기능을 완료하는데 해야 할 작업들이 많아서 오래 걸리는 경우들이 있음. 그러다 보면 master에 추가된 기능들이 필요한 경우가 종종 생기게 됨. 이러한 상황 속 문제없이 내 로컬 브랜치에 원격 master의 변동사항을 가져오는 방법에 대해 알아봄. git pull origin master 개별 브랜치에서 해당 명령어를 통해 불러올 경우 아마 가져와지지 않을 경우가 높음. 이유는 Git에서 제공하는 안전성 검사 때문에 로컬 브랜치의 작업내용이 손실될 수 있기 때문. ( git pull의 경우 변동 사항이 있는지 확인함과 동시에 최신 데이터를 복사하여 로컬 Git으로 가져오기 때문에 작업내용 ..

image