본문 바로가기

SpringBoot23

왜 @Entity에는 @AllArgsConstructor와 @NoArgsConstructor가 필요한가?

안녕하세요. 이번 글에서는 @Entity객체에 왜 @AllArgsConstructor와 @NoArgsConstructor가 필요한지 알아보고자 합니다. 일단, 두 어노테이션은 객체의 생성자를 만들어줍니다. 생성자의 정의는 위키피디아에서 다음과 같이 정의되어 있습니다. 생성자(영어:constructor, 혹은 약자로 ctor)는 객체 지향 프로그래밍에서 객체의 초기화를 담당하는 서브루틴을 가리킨다. 생성자는 객체가 처음 생성될 때 호출되어 멤버 변수를 초기화하고, 필요에 따라 자원을 할당하기도 한다. 객체의 생성 시에 호출되기 때문에 생성자라는 이름이 붙었다. @AllArgsConstructor는 객체의 모든 필드를 가지는 생성자를 자동으로 만들어주는 lombok 어노테이션입니다. @NoArgsConstr.. 2020. 8. 8.

[면접]springboot 예상 질문

안녕하세요. 이번 글은 페이스북에서 좋은 글이 올라온 것 같아서 한번 정리해 보았습니다. Springboot 면접 질문 1. Spring Boot Common Interview Questions 스프링부트는 자바 개발을 위해 spring framework를 단순하게 사용하기 위한 것입니다. 기존의 Spring framework는 많은 설정과 몇몇 jar파일들 그리고 어려운 startup curve의 특징을 가지고 있었습니다. 개발자들이 고통스러운 원인이기도 했습니다. springboot는 이런 고통을 해소시켜 줍니다. 질문1. 스프링부트는 뭔가요?(질문가능성 : 하) Spring Boot는 개발의 simpify를 최우선으로 한 java framework입니다. Spring Boot는 Spring MVC .. 2020. 7. 30.

[Springboot 단위테스트]MockMvc Bean을 주입받지 못하는 에러

에러내용. org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.studyolle.settings.profileTest': Unsatisfied dependency expressed through field 'mockMvc'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.test.web.servlet.MockMvc' available: expected at least 1 bean which.. 2020. 7. 26.

[Springboot+Docker+AWSLightsail]애플리케이션 배포하기

안녕하세요. 이번 글은 제가 너무나 해보고 싶었던 Springboot+Docker+AWS조합으로 애플리케이션을 배포하는 공부를 해보려고 합니다. 유튜브 영상을 통해서 따라서 구현을 해보았고, 궁금한 점들은 Docker 공식문서와 AWS LightSail 문서를 참고했습니다. 사실, Docker를 굳이 쓸 필요는 없었습니다. 하나의 서버에 여러 개의 애플리케이션을 실행하거나 관리하는 규모가 큰 애플리케이션이 아니기 때문입니다. 여기서는 공부해 보고 싶어서 사용해 보았습니다. 1. [IntelliJ] Springboot에 docker 배포 설정하기 pom.xml에서 태그를 추가합니다. 이 태그에 추가한 이름이 Maven 패키징을 하고 떨어지는 jar파일의 이름이 됩니다. spring-docker-app 2... 2020. 7. 25.

JUnit4와 JUnit5의 차이점.

안녕하세요. 요즘 강의를 보면서 모르는 것과 공부하면서 생기는 의문점이 많이 생깁니다. 이번 글에서 알아볼 내용은 JUnit4와 JUnit5의 차이점 중 하나입니다. 각 테스트 코드마다 공통적으로 들어가는 코드를 미리 실행시켜주는 어노테이션과 테스트가 끝난 후에 공통적으로 실행시켜주는 어노테이션이 버전이 달라지면서 선언하는 어노테이션이 달라져서 이 차이점을 공부해 보았습니다. 결론. JUnit4 JUnit5 @Before @BeforeClass @After @BeforeEach @BeforeAll @AfterEach Public void ... 접근제어자 public기본으로 사용. void ... 접근제어자 Default로 사용. JUnit4 일단, JUnit4부터 알아보겠습니다. 참고 문서 @Befor.. 2020. 7. 19.

[SecurityTest]로그인 인증 테스트 방법

안녕하세요. Spring-Security를 사용해서 로그인 인증 기능에 대한 테스트 방법에 대해서 알아보고자 합니다. 테스트 환경 - JUnit4 - MockMvc를 빈으로 주입받아 mock 테스트를 했습니다. - 사전에 회원가입에 대한 테스트 코드가 필요합니다. 테스트코드에서 로그인 인증에 사용할 주요 메서드 import static org.springframework.security.test.web.servlet.response.SecurityMockMvcResultMatchers.authenticated; authenticated() authenticated()를 사용해서 테스트하면, Security를 통해서 로그인만 되면, 해당 테스트 코드는 통과됩니다. import static org.sprin.. 2020. 7. 19.

웹 상태코드 메시지

상태코드 : 302 하이퍼텍스트 전송 프로토콜 (HTTP)의 302 Found 리다이렉트 상태 응답 코드는 클라이언트가 요청한 리소스가 Location 헤더에 주어진 URL에 일시적으로 이동되었음을 가리킨다.[출처 : https://developer.mozilla.org/ko/docs/Web/HTTP/Status/302] 그래서. springboot 테스트에서는... redirect응답의 경우 status().isOk()는 200 상태코드를 증명하는 코드이고, status().is3xxRedirection()가 3xx 상태코드를 증명하는 코드입니다. redirect 관련 상태코드입니다. 상태코드 : 403 월드 와이드 웹에 쓰이는 HTTP 프로토콜에서 403 Forbidden은 서버가 허용하지 않는 웹 .. 2020. 7. 11.

[JUnit4-5]JUnit 버전에 따른 어노테이션 사용법

테스트 결과 JUnit4버전으로 테스트한 결과입니다. 에러 정상 작동 테스트 소스에서 어노테이션 설정을 잘못해서 에러가 발생했습니다. 그 이유를 분석해보려고 합니다. 오류가 생긴 이유 첫번째. 공식 문서를 확인한 결과 JUnit버전에 따른 사용 방법의 문제였습니다. https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing Spring Boot Features Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and wi.. 2020. 7. 11.

[JUnit]MVC 테스트 어노테이션 알아보기

@SpringBootTest 설명 springboot에서 제공하는 어노테이션입니다. SpringApplication의 테스트를 할 때 사용합니다. @SpringBootTest Option 1. MOCK(Default) @AutoConfigureMockMvc나 @AutoConfigureWebTestClient와 함께 사용할 수 있다고 합니다. mock web 환경이 제공되며, springboot 내장 톰켓 서버를 실행하지 않고 테스트를 할 수 있게됩니다. 2. RANDOM_PORT WebServerApplicationContext를 다운받아 실제 웹 환경을 제공하는 옵션입니다. 내장 톰켓 서버가 8080이 아닌 랜덤포트로 시작됩니다. 3. DEFINED_PORT WebServerApplicationCont.. 2020. 7. 5.

[JPA] 자바 영속성 어노테이션 알아보기

강의를 들으면서, JPA @Entity를 선언해준 클래스에서 ProfileImg라는 객체에 다음과 같은 어노테이션을 사용하는 것을 처음 본 저는, 이 어노테이션들에 대해서 조사를 해 보았습니다. 참고 : https://www.baeldung.com/jpa-basic-annotation#basic-vs-column 1. @Lob Large OBject의 줄임말인 어노테이션입니다. 필드에 특정 문자열 길이를 지정하지 않는다면 Default로 varchar(255)까지 저장할 수 있지만, 사진을 저장하는 칼럼으로 사용할 경우에는 더많은 자리수를 사용하기 때문에, @Lob 어노테이션으로 Large Object를 데이터베이스에 적절하게 저장합니다. 사용 예로, 사진을 DB에 저장할 경우 byte array로 변환.. 2020. 7. 5.