Enum의 ordinal() 메서드
·
개발 아카이브/JAVA
Enum에 정규식과 마스킹 메소드를 정의했는데, 정규식은 패턴에 따라 부분집합인 정규식도 간혹 존재한다. 나는 Enum에 작은 부분집합을 오름차순으로 정렬하였다.패턴 검사할때도 Enum에 정의된 순서대로 검사가 되었으면 좋겠다고 생각했다. 각 Enum 요소에 Order 값을 추가해야하나 고민을 했는데, ordinal이라는 값이 있다는 것을 알게되어 활용했다.📚 Enum의 ordinal()1. Enum 정의 순서 = ordinal 값Java Enum은 정의된 순서대로 자동으로 0부터 시작하는 인덱스가 부여된다. 그 인덱스가 바로 ordinal이다.public enum BlackKeywordPattern { PHONE(...), // ordinal() = 0 EMAIL(...), ..
Spring 기본 - 게시판 만들기
·
개발 아카이브/JAVA
https://wooncloud.tistory.com/161 Spring 기본 시작 - 세팅부터 CRUD API 까지1. 자바 설치 (Java JDK 17 이상 설치)Java 8 (2014년 출시)여전히 많은 기업에서 레거시 시스템으로 사용 중람다 표현식, Stream API 등 중요한 기능이 도입된 버전장기적으로는 점차 마이그레이션하는 추wooncloud.tistory.comhttps://wooncloud.tistory.com/162 Spring 기본 - Service 계층이전 내용https://wooncloud.tistory.com/161 Spring 기본 시작 - 세팅부터 CRUD API 까지1. 자바 설치 (Java JDK 17 이상 설치)Java 8 (2014년 출시)여전히 많은 기업에서 레거시..
JAVA equals, hashCode 오버라이드시 instanceof와 getClass 차이
·
개발 아카이브/JAVA
인텔리제이에서 equals()나 hashCode()를 생성할때 instanceof와 getClass 중에 어느걸 사용할꺼냐 선택하는 경우가 있다. instanceof 방식상속 관계를 허용.부모 클래스와 자식 클래스 간의 비교가 가능.더 유연하지만 대칭성(symmetry) 원칙을 위반할 수 있다.@Overridepublic boolean equals(Object obj) { if (this == obj) return true; if (!(obj instanceof MyClass)) return false; MyClass myClass = (MyClass) obj; // 필드 비교 로직 return Objects.equals(name, myClass.name);} getClass(..
Spring 기본 - DTO (Data Transfer Object) 패턴
·
개발 아카이브/JAVA
https://wooncloud.tistory.com/161 Spring 기본 시작 - 세팅부터 CRUD API 까지1. 자바 설치 (Java JDK 17 이상 설치)Java 8 (2014년 출시)여전히 많은 기업에서 레거시 시스템으로 사용 중람다 표현식, Stream API 등 중요한 기능이 도입된 버전장기적으로는 점차 마이그레이션하는 추wooncloud.tistory.comhttps://wooncloud.tistory.com/162 Spring 기본 - Service 계층이전 내용https://wooncloud.tistory.com/161 Spring 기본 시작 - 세팅부터 CRUD API 까지1. 자바 설치 (Java JDK 17 이상 설치)Java 8 (2014년 출시)여전히 많은 기업에서 레거시..
Spring 기본 - Service 계층
·
개발 아카이브/JAVA
이전 내용https://wooncloud.tistory.com/161 Spring 기본 시작 - 세팅부터 CRUD API 까지1. 자바 설치 (Java JDK 17 이상 설치)Java 8 (2014년 출시)여전히 많은 기업에서 레거시 시스템으로 사용 중람다 표현식, Stream API 등 중요한 기능이 도입된 버전장기적으로는 점차 마이그레이션하는 추wooncloud.tistory.com Service 계층 추가왜 Service 계층이 필요할까?Controller: HTTP 요청/응답 처리만 한다.Service: 실질적인 비즈니스 로직 처리를 service에서 모두 함.Repository: 데이터베이스 접근만 한다.Service 패키지와 클래스 생성src/main/java/com/example/demo_a..
Spring 기본 시작 - 세팅부터 CRUD API 까지
·
개발 아카이브/JAVA
1. 자바 설치 (Java JDK 17 이상 설치)Java 8 (2014년 출시)여전히 많은 기업에서 레거시 시스템으로 사용 중람다 표현식, Stream API 등 중요한 기능이 도입된 버전장기적으로는 점차 마이그레이션하는 추세Java 11 (2018년 출시)현재 가장 널리 채택되고 있는 LTS(Long Term Support) 버전Oracle의 상업적 지원이 필요 없는 OpenJDK 기반으로 무료 사용 가능많은 새로운 프로젝트들이 Java 11을 기준으로 개발Java 17 (2021년 출시)최신 LTS 버전으로 채택률이 빠르게 증가하고 있음Spring Boot 3.0+ 등 주요 프레임워크들이 Java 17을 최소 요구사항으로 설정https://wooncloud.tistory.com/160 Java 17..
Java 17 다운로드 방법
·
개발 아카이브/JAVA
주요 Java 17 배포판1. Oracle JDK 17다운로드: https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html특징: Oracle의 공식 배포판라이선스: 개발/테스트는 무료, 상업적 사용 시 유료2. Eclipse Adoptium다운로드: https://adoptium.net/temurin/releases/?version=17특징: 커뮤니티 기반, 가장 인기 있는 오픈소스 배포판라이선스: 완전 무료 (OpenJDK 기반)3. Amazon Corretto 17다운로드: https://aws.amazon.com/corretto/특징: AWS에서 지원하는 무료 배포판라이선스: 완전 무료4. Microsoft Build o..
[Spring] @Autowired를 지혜롭게 하는 법.
·
개발 아카이브/JAVA
이 포스팅은 인프런의 김영한 님의 "스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술" 강의를 보다가 좋은 내용인 것 같아서 참고하여 포스팅했습니다. Autowired 하는 방법은 아마 대략적으로 3가지가 있을 것입니다. 그냥 멤버 필드에 @Autowired 하는 방법 생성자에 @Autowired 하는 방법 Setter에 @Autowired 하는 방법 이 3가지 방법 중, 어떤 방법이 좋은 방법일지, 이번 포스트로 다루어 보겠습니다. 시나리오 package com.min.edu.controller; import com.min.edu.service.MemberService; import org.springframework.stereotype.Controller; @Controller..
[Spring] 스케줄러 Cron 사용하기
·
개발 아카이브/JAVA
스프링 프로젝트를 개발하면서 시스템이 커지고 DB 또는 다양한 서비스를 위해 어떤 모듈들을 주기적으로 실행해야 할 때가 옵니다. 그럴 때 사용하는 것이 스케줄러입니다. 스프링에서 스케줄러 사용방법은 쉽습니다. servlet-context.xml에서 task namespace를 추가하고 bean을 참조하여 cron 표현식으로 언제 주기적으로 등록한 메서드를 실행할지 선언만 해주면 됩니다. 스프링 프로젝트를 구축하고 간단하게 따라해 봅시다. 1. servlet-context.xml에 scheduled-tasks 추가 servlet-context.xml에 namespace에서 task를 추가합니다. 그럼