전체 글128 @Target @Target @Target 어노테이션은 Java 어노테이션을 어떤 요소(Element)에 적용할 수 있는지를 지정하는데 사용된다. @Target 어노테이션은 어떤 종류의 Java 요소에 어노테이션을 적용할 수 있는지를 나타내는 열거형 상수(ElementType) 배열을 값으로 가진다. 여기서 ElementType.TYPE은 어노테이션을 클래스, 인터페이스, 열거형(enum) 등의 타입 선언에 적용할 수 있음을 나타낸다. ElementType 종류 @Target 어노테이션은 다양한 ElementType 상수와 함께 사용될 수 있으며, 주요 ElementType 상수는 다음과 같다: ElementType.TYPE: 클래스, 인터페이스, 열거형(enum) 등의 타입 선언에 어노테이션을 적용할 수 있음을 나타.. Tech/Spring 2023. 9. 21. BindingResult vs Errors BindingResult와 Errors는 Spring Framework에서 사용되는 검증 결과를 담은 객체들로, 주로 웹 애플리케이션에서 폼 데이터 유효성을 검사하고 처리할 때 사용된다. 이 두 객체는 비슷한 역할을 하지만 약간의 차이가 있다. 1. BindingResult 주로 스프링 MVC 컨트롤러 메서드에서 데이터 바인딩 및 검증 결과를 수집하는 데 사용된다. 주로 폼 데이터를 엔티티 객체나 DTO 객체로 바인딩하고 검증할 때 활용된다. 특징 스프링 MVC 컨트롤러 메서드의 파라미터로 전달받는다. 주로 데이터 바인딩 및 유효성 검사 과정에서 발생하는 오류를 수집한다. 해당 컨트롤러 메서드에서 파라미터로 받은 BindingResult 객체를 통해 오류 정보를 확인하고 처리할 수 있다. BindingR.. Tech/Spring 2023. 9. 19. @EntityGraph @EntityGraph(attributePaths = {”"}) Spring Data JPA에서 사용하는 어노테이션은로 엔티티 그래프를 정의하는 데 사용된다. 엔티티 그래프는 데이터베이스에서 엔티티와 연관된 다른 엔티티를 로딩할 때 사용되며, 지연 로딩(Lazy Loading)을 효과적으로 방지하고 성능을 최적화하는 데 도움된다. @EntityGraph 어노테이션은 다양한 속성을 제공하며 그 중에 attributePaths는 로딩할 엔티티의 연관 속성을 지정하는 데 사용된다. 예시를 통해 알아보자. @Entity public class Customer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Str.. Tech/JPA 2023. 9. 17. Thymeleaf 문법 정리 1. Fragment(공동영역처리) - th:flagment, th:replace th:replace를 통해 fragments.html 템플릿 파일에서 commonHead라는 이름의 fragment를 찾는다. ::는 fragment 이름을 템플릿 파일 이름과 구분하기 위해 사용하는 구분자 commonHead 내용이 현재 페이지의 요소로 복사됨 공통 영역 처리 헤더, 네브바, 푸터 등 여러 페이지에서 반복되는 영역을 재사용 fragment 사용 방법 th:insert 태그 내로 조각을 삽입하는 방법 th:replace 해당 태그를 완전히 대체한 방법 Fragment에서 파라미터 사용도 가능함 상수 표현식과 |…| 변수 표현식 ${..}을 사용 COPYRIGHT@ dhk22 [참고] 2. 조건문 - th:i.. Tech/Spring 2023. 9. 13. Spring 이메일 인증 구현하기 프로젝트 진행하면서 회원가입과 비밀번호 찾기 기능에서 이메일 인증을 적용하기로 했다. 처음에는 MySQL을 사용해해서 엔티티를 만들고 해당 엔티티의 상태를 나타내는 필드를 Enum으로 만들어 사용했다. 하지만 팀 내 회의를 통해 만료 기간을 지정할 수 있는 Redis를 사용하기로 결정했다. 이 글에서는 두 가지 방법을 비교할 예정이다. 먼저 엔티티 클래스를 비교할 것이다. 1. Entity 비교 1) MySQL 사용 @Entity @Getter @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) public class EmailCode { @Id @Column(name = "email_code_id") @Gener.. Tech/Spring 2023. 9. 8. Google Maps API - Place Photo API 사용하기 Google Maps Platform 문서 | Places API | Google for Developers 구글 맵에서 제공하는 특정 장소의 사진을 사용하는 방식은 총 3가지 api를 사용해야한다. 1. Place Photos API Place Photos | Places API | Google for Developers 요구되는 파라미터로 photo_reference가 필요하다. “사진을 고유하게 식별하는 문자열 식별자입니다. 사진 참조는 Place Search 또는 Place Details 요청에서 반환됩니다.” 2. Place Search API (장소 찾기 API) 장소 찾기 | Places API | Google for Developers 이 API에서는 photo_reference를 응답으로.. OpenAPI 2023. 9. 6. @NotNull vs @NotBlank vs @NotEmpty 특징 1. @NotEmpty 일반적으로 문자열 또는 컬렉션이 Null이 아니며 비어이지 않은지 확인하는 데 사용됨 문자열 (String, StringBuilder), 컬렉션(List, Set), Map에 적용됨 @NotEmpty private String username; @NotEmpty private List emailAddresses; 2. @NotBlank 문자열이 Null이 아니고 비어있지 않으며 공백이 아닌 하나 이상 포함되어 있는지 확인하는 데 사용됨 문자열 객체에만 적용될 수 있음 문자열에 공백 외의 의미 있는 내용이 포함되어 있는지 확인함 @NotBlank private String fullName; 3. @NotNull 필드 또는 매개변수가 Null이 아닌지 확인하는 데 사용됨 모든 유형의 .. Tech/Spring 2023. 8. 31. 2023년 하반기 ICT 인턴십 지원 후기: 면접, 코딩테스트 결론부터 말하면 면접 전형 불합격했다...! 서류전형 합격해서 엄청 좋아했는데 이렇게 결과를 보니까 괜히 씁쓸하다. 자소서랑 포트폴리오도 열심히 쓰고 면접 준비도 열심히 했는데 이런 결과가 있어서 정말 아쉬웠다. 기대가 크면 실망도 큰 법인데 그럼에도 불구하고 기대를 많이 한 거 같다. 면접 질문 H사 (서울 종로구, 코테 x) 비대면 면접 - 자기소개 - 지원동기 - 회사에 바라는 점, 얻어가고 싶은 점 실무 경험을 쌓으며 기술적 역량을 기르고 싶다. 또한 실제로 사용자에게 서비스를 제공하며 사용자 중심 사고를 기르고 싶다. 이런 식으로 이야기 했다. - 프로젝트 하면서 힘들었던 점 갈등 소통 해결한 문제를 말했다. (기술적인 부분의 어려움 얘기를 원하신 듯하다. 나도 말하고 아차 싶었다. 그래서 다음.. 후기와 회고 2023. 7. 28. 이전 1 ··· 8 9 10 11 다음 728x90 반응형