spring
-
spring boot 프로젝트 git 업로드 시, API key 및 DB 접속정보 숨기기Spring Boot 🍃 2023. 12. 2. 00:01
보고 배운 블로그 : @minnseong 이번 실습에서 사용하는 open api key는 1분에 60번 초과 호출시 과금 된다고 하니 비공개로 숨기는편이 좋을것 같다 🙊 1. src/main/resource 위치에 properties 설정 파일 추가 application-관리할이름.properties 라는 이름으로 파일을 생성한 후, 파일 안에 Key=value 형태로 입력을 해준다. 2. application.properties 파일에 추가해준 설정 파일 include src/main/resource 위치에 기존에 있는 spring boot 설정 파일인 application.properties 파일을 열어서 1번에서 생성해준 application-관리할이름.properties파일을 include 시켜준..
-
PersistenceSpring Boot 🍃 2023. 12. 2. 00:01
Persistence : 영속성 이 용어는 data 영속성이 있다 없다 이런 식으로 보통 사용하는데, data를 생성했던 프로그램이 종료되더라도 data는 없어지지 않는 것을 의미한다. Persistence Framework 영속성을 갖는 data를 관리하는 프레임워크 종류 1. SQL Mapper SQL을 개발자가 직접 작성해줘야 한다. - JDBC Java Database Connectivity 2. ORM Object Relation Mapping Object와 DB 테이블을 매핑. 함수를 사용해서 동작을 호출하면, ORM 내부적으로 SQL을 만들어서 실행시켜주기 때문에, 개발자가 SQL을 작성할 필요가 없다. 단점으로는, 복잡한 쿼리를 자바 메서드만으로 해결하는 것이 불편할 때도 있다는 것! - ..
-
스프링 부트 핵심 가이드 1주차 : 개발 준비 학습책 공부/스프링 부트 핵심 가이드 2023. 12. 2. 00:01
📖 책 정보 날 위한 모바일 가이드 01장 스프링 부트란? 1. 스프링 프레임워크 2. 스프링 vs 스프링 부트 02장 개발에 앞서 알면 좋은 기초 지식 1. 서버 간 통신 2. 스프링 부트의 동작 방식 3. 레이어드 아키텍처 4. 디자인 패턴 5. REST API 01장 스프링 부트란? 스프링 프레임워크 스프링 vs 스프링 부트 키워드 스프링 엔터프라이즈급 개발 스프링 핵심 가치 IoC DI AOP aspect OOP 핵심기능 부가기능 스프링 부트 의존성 관리 Auto Configuration @Component bean @Component 시리즈 어노테이션 대표 5개 내장 WAS 모니터링 1. 스프링 프레임워크 스프링 프레임워크는 자바 기반의 애플리케이션 프레임워크로 , 엔터프라이즈급 애플리케이션을 ..
-
실습 내용과 함께 읽어보는 간략한 사용자 정의 Annotation 작성을 정리해보고 싶었는데Spring Boot 🍃 2023. 12. 2. 00:01
하루 지났다고 기억이 전혀 나질 않는다 한번 실습한거 안까먹고 영원히 기억하는 사람이었으면 얼마나 좋을까? ㅋㅋ 우선 파일 이름부터 나열! 그 전에 이 어노테이션을 정의 하게 된 이유와 사용 목적에 대해 알아보는게 좋을 것 같다. 그리고 다음엔 실습 후 바로 정리하기로 다짐..😠 이 어노테이션의 명칭은 AccountLock 이고 기능은 Account 계좌에 계좌 잔액 사용 / 사용 취소 요청 시 2중 3중 다중 접근 시도를 사전에 차단하는 Lock을 관리하는 기능이다. 왜 굳이 어노테이션을 만들어서 사용했을까? 일단, 어노테이션을 사용하면 코드의 가독성이 좋아진다. 메서드에 기능을 나열하지 않고 메서드 이름/ 클래스이름 근처에 어노테이션 호출만 해두면 되기 때문이다. 그리고 선언적 프로그래밍이 가능해진다..
-
lombok : @Builder , @SuperBuilderSpring Boot 🍃 2023. 12. 1. 00:01
강의 실습 중에 도메인 패키지의 엔티티 파일들에서 공통으로 사용되는 메타 필드를 하나의 파일로 분리해서 상속받아 사용하는 부분이 있었는데, 이 때 @Builder 어노테이션 사용 시 엔티티를 builder()로 호출해서 사용할 때 상속하는 엔티티의 필드를 사용할 수 없는 문제가 있었다. 검색해보니 @Builder는 해당 어노테이션이 붙은 클래스에 있는 필드만 사용할 수 있게 해주고, 해당 클래스의 부모 클래스의 필드는 무시된다고 한다. 부모 자식 클래스에 속한 모든 필드에 대해서 builder()를 적용하려면 @SuperBuilder 어노테이션 사용시 가능해진다고 한다. @Builder 각 필드에 대한 Setter 메서드를 포함하는 빌더 클래스를 생성하도록 Lombok에 알려주는 어노테이션이다. 이 어노..
-
Mockito : ArgumentCaptorSpring Boot 🍃 2023. 12. 1. 00:01
Mockito🍸의 mocking에 사용되는 클래스이다. 메서드 호출에 사용되는 인자에 대해서 검증하고 싶을 때, ArgumentCaptor 를 사용할 수 있다. 과제 프로젝트에 사용된 부분을 가져와서 본다면 // given ArgumentCaptor captor = ArgumentCaptor.forClass(Transaction.class); // when transactionService.saveFailedUseTransaction("1000000000", USE_AMOUNT); // then verify(transactionRepository, times(1)).save(captor.capture()); assertEquals(USE_AMOUNT, captor.getValue().getAmount()..
-
에러 기록 : ObjectMapper는 기본생성자를 요구에러기록 2023. 12. 1. 00:01
휴 스프링 쉽지 않다 Request processing failed HttpMessageConversionException Type definition error [simple type, class com.zhyun.account.dto.CreateAccount$Request] 😠 이 에러는 코드에 사용된 dto.CreateAccount$Request 클래스에 기본 생성자가 없어서 난 에러였다. 보고 배운곳 : 7357.tistory ObjectMapper가 @RequestBody를 바인딩할 때 기본 생성자를 사용하기 때문에, ObjectMapper를 사용할 때는 사용할 객체에 기본 생성자를 선언해주어야 한다. 나의 경우 @AllArgConstructor 어노테이션만 붙어있었기 때문에, 기본 생성자가 붙..
-
MockitoSpring Boot 🍃 2023. 12. 1. 00:01
컨셉이 정말 재밌는 프레임 워크다 😆 모킹?목킹?마킹? 맛있는 모킹 프레임워크! 사이트에 가보면 숙취 없는 맛이 정말 좋은 모킹 프레임워크라고 소개하고있다. 🙈🍸 근데 모킹이 뭐지; 모르는게 너무 많다 ㅋㅋ 🙈 모킹 Mocking 세상에 🙊 조롱이란 뜻이었다. 디비를 조롱하는건가.........??!?!? 놀라워서 앵무새한테 번역을 부탁해봤더니 흉내내는 이라는 뜻도 있었다. 여기서 사용된 모킹은 흉내내는 이라는 의미겠지! Mock Object 모의 객체 모의 객체 Mock Object란 주로 객체 지향 프로그래밍으로 개발한 프로그램을 테스트 할 경우 테스트를 수행 할 모듈과 연결되는 외부의 다른 서비스나 모듈들을 실제 사용하는 모듈을 사용하지 않고 실제의 모듈을 흉내내는 가짜 모듈을 작성하여 테스트의 효..
-
에러 기록 : Spring Boot 실행 중지 시 Embedded Redis Server 종료 안됨에러기록 2023. 11. 30. 00:01
🙄 여기서 핵심 문장만 보면 Caused by: java.lang.RuntimeException: Can't start redis server. Check logs for details. Redis process log: [22260] 09 May 03:22:37.692 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No such file or directory 요거다. 분명 처음 시도했을때는 잘 되었는데, 두번째 시도부터 이 에러가 났다. 서버를 왜 시작하지 못했을까? 인터넷 검색해보니 이렇게 -> rogal.tistory.com 같은 오류로 힘들었던 사람이 나타나서 우선은 금방 해결할 수 있었다. 스프링 종료 후 윈도우 시스템 작업관리자 ..
-
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 스프링 부트 애플리케..