Spring 5

[SpringBoot] flyway와 DB migration 해야하는 이유

DB migration DB migration이 뭔지 몰랐다. 찾아보면 서로 다른 db의 데이터를 합치거나 다른 db로 이동하기 위함 이라곤 하는데, 쉽게 이해하자면 github에서 커밋을 추적하며 형상관리 하는 것을 db에서도 동일한 작업을 하는 것이다. 이전에 겪었던 문제들 초반에 프로젝트 설계를 했더라도 기능이 추가/삭제될 경우가 있는데, 그럴 때마다 필요에 따라 Entity를 수정하고 DB에 쿼리를 날려 수정/삭제를 했었다. 사소한 실수로 SQLSyntaxErrorException: Unknown column 에러가 발생했고 대부분의 이유는 Entity만 수정하고 쿼리는 실행하지 않은 경우로 사소한 실수를 줄일 수 있는 방법이 필요했다. 그 이외에도 여러 개발자가 협업하는 과정에서 github의 ..

Spring 2023.09.23

[Spring] EC2에 Prometheus & Grafana 적용

sudo systemctl status grafana-server - 그라파나 서버 상태 확인 sudo systemctl start grafana-server - 그라파나 시작 sudo systemctl stop grafana-server - 그라파나 종료 netstat -tulnp | grep 3000 - 현재 실행중인 3000포트 확인 sudo systemctl restart grafana-server - 그라파나 재시작 Gradle implementation 'io.micrometer:micrometer-registry-prometheus' 프로메테우스 다운 ec2 서버의 보안 설정에서 9090 포트를 열어주고 prometheus 다운 및 압축 해제 - https://prometheus.io/dow..

Spring 2023.07.18

Http, Https 프로토콜

1. keyStore 생성 터미널을 열고 아래의 코드 입력한다. 코드를 입력하면 비밀번호를 설정하고 순서에맞게 차례로 작성하면 된다.keytool -genkey -alias {생성할 키스토어 이름} -keyalg RSA -keystore {생성할 키스토어 파일이름}.jks 2. Key-Store에서 인증서 추출 아래의 코드 입력 이후 비밀번호 입력keytool -export -alias {생성된 키스토어 이름} -keystore {생성된 키스토어 파일이름(.jks까지 작성)} -rfc -file {생성할 인증서 파일이름}.cer 3. Trust-Store 생성 아래의 코드 입력 이후 비밀번호 입력keytool -import -alias {생성할 Store 이름} -file {생성된 인증서 파일명{.cer..

Spring 2023.07.11

Spring - MVC 패턴

Spring을 공부하면 꼭 알아야 하는 것이 MVC이다. 여기서 말하는 MVC란 M (Model) - 데이터와 비즈니스 로직을 담당하는 부분. 데이터베이스와 연동하여 데이터를 가져오고 저장. → Service와 같다. V (View) - 사용자에게 보여지는 UI(User Interface)를 담당하는 부분. HTML, CSS, JavaScript 등을 이용하여 화면 구성. C (Controller) - 모델과 뷰를 연결해주는 부분으로, 클라이언트의 요청을 받아 해당 요청에 맞는 로직을 처리하고, 결과를 뷰에 전달. 아래에서 게시판의 글 생성을 예로 코드를 만들어 보겠다. @RestController // json 형태로 객체 데이터 반환?, IOC 컨테이너에 등록. @RequiredArgsConstruc..

Spring 2023.03.08

Spring - 입문

사용자의 요청을 처리한 후, 지정된 뷰에 모델 객체를 넘겨준다. 클라이언트의 요청에 대해 어떤 처리를 할지 Service로 넘겨준다. Service에서 처리된 내용을 View로 넘겨준다. URL마다 처리해야 할 기능을 정해놓은 API를 모아놓은 클래스이다. 클라이언트가 API로 요청을 보내면, 서버에서 기능을 처리한 후 API를 통해 결과를 보내준다. 사용자와 상호작용을 처리하는 Presentation 계층에 속해 있다. #1 - Java 객체가 Controller 역할을 한다고 알려주는 어노테이션. #2 - 각각의 레이어는 자기와 인접한 레이어와 직접 소통 / ContentService 객체를 가지고 있기에 2-1와 같은 서비스 로직 호출 가능. #3 - 특정 요청에 호출될 메소드를 지정하는 어노테이션..

Spring 2023.02.24