-
Spring Boot: 모듈 정보Spring Boot 🍃 2023. 11. 30. 00:01
Developer Tools Spring Boot DevTools 개발자의 생산성을 높여주는 모듈로, 코드 변경 시 자동으로 애플리케이션을 재시작하거나 리로드하는 기능을 제공한다. 또한 브라우저에서 캐시되지 않은 정적 자원을 제공하는 등의 기능도 포함하고 있다. 자세한 정보 : mgyo.tistory.com Lombok 자바 코드를 작성할 때 반복적으로 작성해야 하는 getter, setter, toString, equals, hashCode 등의 메소드를 자동으로 생성해주는 라이브러리. 코드의 가독성과 생산성을 높일 수 있다. 자세한 정보 : dololak.tistory.com Slf4j Lombok에서 지원하는 라이브러리! 로그를 사용하기 쉽게 해준다. Web Spring Web 스프링 부트 애플리케..
-
유즈케이스 Use Case프로젝트 관련 2023. 11. 30. 00:01
보고 배운 사이트 1 : suresofttech 보고 배운 사이트 2 : namu.wiki 유즈 케이스란 시스템의 동작을 사용자의 입장에서 생각하고 표현한 시나리오이다. 주로 UML 다이어그램으로 표현하며, 시스템에 대한 요구사항을 알아내는 과정으로, 소프트웨어 개발 프로세스 중 개발을 위한 소프트웨어의 기능을 개략적으로 설명할 수 있는 방법이기도 하다. UML 다이어그램 그리는 곳 : https://app.diagrams.net 연관 관계는 실선 포함(include)관계, 확장(extend)관계는 점선+화살표 방향 표시
-
Git Flow 전략 세우기프로젝트 관련 2023. 11. 30. 00:01
branch 간의 문제 없이 배포까지 안정적으로 할 수 있도록 branch를 관리하는 전략이다. Git Branch를 운영하는 방법론 보통은 소규모 프로젝트 = Github Flow 대규모 프로젝트 = Git FLow Git Flow Main (= master) 안정된 버전의 코드를 담고 있으며, 실제로 배포되는 코드이다. develop 개발 중인 코드를 담고 있으며, 다음 버전의 프로덕션 코드를 준비한다. main branch를 기반으로 개발이 시작됨 feature 새로운 기능을 개발하기 위한 branch로, develop에서 시작하고 종료된다. release 버전 릴리즈를 준비하기 위한 branch로, develop에서 시작하고, main에 병합된다. qa, bugfix 등을 해서 내보내기 직전의 상..
-
1. ubuntu 서버에 docker container 형태로 jenkins 설치하기Jenkins 2023. 11. 29. 19:18
참고 : https://blog.opendocs.co.kr/?p=704 설치 환경 server hosing - ubuntu 22.04 docker 24.0.7 domain https://jenkins.zhyun.kim 1. Ubuntu Jenkins 관리 계정 생성 계정 아이디 : jenkins group : sudo, docker ## 1. 계정 생성 adduser jenkins ## 2. 그룹에 계정 추가 # docker 그룹과 sudo 그룹에 추가 # group을 여러개 지정할 경우 공백 없이 콤마를 붙여 작성 usermod -aG sudo,docker jenkins ## 3. 생성한 계정 정보 확인 id jenkins 생성한 아이디로 다시 로그인 login docker 버전 확인 docker -v..
-
서블릿 ServletServlet 2023. 11. 29. 06:22
Servlet을 발전시킨 것이 Spring이다. Spring은 Servlet을 이용한다! 가볍게 알아두면 좋은 내용 정리 ✏️ Servlet과 Spring Controller 비교 1. Annotation Servlet : @WebServlet Spring Controller : @Controller + @RequestMapping @WebServlet은 @Controller와 @RequestMapping을 합쳐놓은 것이다. Servlet은 HttpServlet 클래스를 상속받아야 한다. 클래스 상속은 단 하나만 받을 수 있기 때문에, Spring Controller에서는 이를 개선하여 상속 없이 @Controller 선언만으로 사용할 수 있게 되었다. 2. 경로 Mapping Setvlet은 경로 Ma..
-
HTTPWeb 2023. 11. 29. 06:22
Hyper Text Transfer Protocol 하이퍼 텍스트 전송 규약 Hyper : 건너편의, 초월, 과도한 Hyper Text : 파생 텍스트 링크에 따라 차례가 바뀌는 임의적이면서 나열형인 구조를 갖춘 텍스트 참고 : ko.wikipedia.org HTTP 3가지 특징 1. 단순하고 읽기 쉽다. 텍스트 기반의 프로토콜을 사용하기 때문이다. HTTTP 메세지를 보면 사람이 알아보기 쉬운 텍스트로 작성되어있는데 하이퍼텍스트 프로토콜 규칙을 지켜야 하기 때문이다. 2. Stateless 상태를 유지하지 않는다. 클라이언트의 정보를 저장하지 않음 같은 클라이언트에서 요청을 여러번 보내도 서버는 매번 다른 클라이언트의 요청으로 받아들인다. 이를 보안하기 위해 나온것이 쿠키와 세션이다. 쿠키와 세션을 이..
-
OkHttp3 라이브러리 사용 with 비동기Language/Java 2023. 11. 29. 06:22
서울시 공공 API를 한번에 약 2만개 가량 받아와서 db에 저장할 일이 있었는데, 이때 일반적으로 사용하는 동기 방식으로는 시간이 너무 오래걸렸었다.(6초~10초 정도..??) 그래서 비동기를 적용해 응답시간을 절반이상 줄일 수 있었는데, 이때 사용해본 비동기 요청 작업에 대해 정리하면서 다시 한번 학습 !! 그전에 OkHttp3 라이브러리에 대해서 먼저 간단히 정리 📝 0. OkHttp3 사용 방법 1. OkHttp 클라이언트 객체 생성 OkHttpClient client = new OkHttpClient.Builder() .build(); 2. Request 객체 생성 OkHttp는 클라이언트(내 pc. 서버에서 값을 받아 사용할 pc)에서 API 서버로 값을 요청한 후에 응답오는 값을 받아서 사용..
-
Spring Boot: Object MapperSpring Boot 🍃 2023. 11. 29. 06:22
ObjectMapper의 기능 Text 형태의 JSON String을 Object 형태로 바꿔준다. 이때, Object에는 Default 생성자가 정의되어 있어야 한다. Object를 Text 형태의 JSON String으로 바꿔준다. 이때, Object에는 기본형 getter() 메소드가 정의되어 있어야 한다. 만약, 사용자 정의 메서드 중에 이름이 get으로 시작하는 것이 있다면 오류 발생! Controller에서 사용시 Spring이 알아서 해주는 경우가 많지만, 이를 이용하지 않고 직접 ObjectMapper를 클래스로 호출해서 사용하는 방법도 있다. 이 방법에 대한 간단한 예제는 아래와 같다. Object를 Text로 var om = new ObjectMapper(); try { var user..
-
Spring Boot: JSON 클래스 만들때 알아두면 좋을 설정Spring Boot 🍃 2023. 11. 29. 06:22
1. 해당 클래스의 모든 변수에 대해 네이밍 방식 변경 @JsonNaming(value = PropertyNamingStrategies.네이밍규칙.class) @JsonNaming(value = 여기 ) 외우면 당연히 더 좋겠지만 , 여기 라고 적은 부분에 커서를 두고 Ctrl + Space 누르면 제공되는 클래스 확인이 가능하다. 이렇게 확인하면 SnakeCase로 변경하는 것만 확인이 되는데 (나만 그럴지도..!!!) 더 많은 규칙을 사용하려면 PropertyNamingStrategies. + Ctrl + Space 입력 해서 보면 된다. PropertyNamingStrategies 클래스에서 다양한 형태의 네이밍 변환 클래스를 제공한다. PropertyNamingStrategies에서 제공되는 다양..