분류 전체보기
-
[JAVA] 자바 basic 5 - 8 강 요약자바 2024. 11. 19. 11:22
5. 패키지 패키지 규칙1. 패키지의 이름과 위치는 폴더(디렉토리) 위치와 같아야 한다 (필수)2. 패키지 이름은 모두 소문자를 사용한다 (관례)3. 패키지 이름의 앞 부분에는 일반적으로 회사의 도메인 이름을 거꾸로 사용한다 (관례) - 이 부분은 필수는 아니다. 하지만 수많은 외부 라이브러리가 함께 사용되면 같은 패키지에 같은 클래스 이름이 존재할 수도 있다 이렇게 도메인 이름을 거꾸로 사용하면 이런 문제를 방지할 수 있다 - 내가 오픈소스나 라이브러리를 만들어서 외부에 제공한다면 꼭 지키는 것이 좋다 - 내가 만든 애플리케이션을 다른 곳에 공유하지 않고, 직접 배포한다면 보통 문제가 되지 않는다 패키지를 구성할 때 서로 관련된 클래스는 하나의 패키지에 모으고, 관련이 적은..
-
[JAVA] 자바 basic 1 - 4 강 요약자바 2024. 11. 19. 09:56
1. 클래스와 데이터 용어: 클래스, 객체, 인스턴스클래스는 설계도이고, 이 설계도를 기반으로 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라 한다- 클래스(Class)는 객체가 가져야 할 속성(변수)과 기능(메서드)을 정의한다- 객체(Object)는 클래스에서 정의한 속성과 기능을 가진 실체이며 서로 독립적인 상태를 가진다- 인스턴스(Instance)는 특정 클래스로부터 생성된 객체를 의미한다 (인스턴스는 주로 객체가 어떤 클래스에 속해 있는지 강조할 때 사용) 2. 기본형과 참조형 용어: 기본형, 참조형기본형(Primitive Type) : int , long, double, boolean처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입기본형은 자바가 기본으로 제공하는 데이터 타입이러..
-
[JAVA] 커스텀 어노테이션 @interface자바 2024. 11. 14. 12:56
@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)public @interface DataField {}@interface 어노테이션이 뭘까 찾아봤습니다 어노테이션의 종류Java의 어노테이션은 크게 built-in 어노테이션과 Meta 어노테이션이 존재합니다1. built-in 어노테이션 - Java 코드에 적용되는 어노테이션 @Overrie, @Deprecated, @SuppressWarnings 등2. meta 어노테이션 - 다른 어노테이션에 적용되기 위한 어노테이션 @Retention, @Documneted, @Target, @Inherited, @Repeatable 등 커스텀 어노테이션커스텀 어노테이션은 자바의 리플렉션을 활용하여 특정..
-
[JAVA] Class 클래스자바 2024. 11. 14. 12:42
DataField annotation = field.getAnnotation(DataField.class);새로운 프로젝트를 시작하며 소스를 보고 있던 중 "클래스명.class"을 보고 왜 굳이 .class를 붙였을까 고민하던 중JAVA의 Class 클래스가 생각났고 다시 정리를 해봤습니다. Class 클래스자바에서 ` Class` 클래스는 클래스의 정보(메타데이터)를 다루는데 사용됩니다.`Class` 클래스를 통해 개발자는 실행 중인 자바 애플리케이션 내에서 필요한 클래스의 속성과 메서드에 대한 정보를 조회하고 조작할 수 있습니다. Class 클래스 주요 기능1. 타입 정보 얻기 : 클래스의 이름, 슈퍼클래스, 인터페이스, 접근 제한자 등과 같은 정보를 조회2. 리플렉션 : 클래스에 정의된 메서드, ..
-
[Spring] 저장 @Transactional 선언적트랜잭션프로젝트 2024. 9. 1. 23:42
스프링에서 트랜잭션 처리 방법 중 한 가지는 어노테이션 방식으로@Transactional을 선언하여 사용하는 방법이며 선언적 트랜잭션이라고 부른다. @Service@RequiredArgsConstructorpublic class ExService { private final ExRepository exRepository; /** * Ex 조회 * * @param RetrieveExInDto InDto * @return RetrieveExOutDto OutDto */ public List retrieveEx(RetrieveExInDto inDto) { return exRepository.retrieveEx(inDto); } /*..
-
[Mybatis] 동적쿼리 foreach문 Null 체크프로젝트 2024. 9. 1. 18:29
부장님께서 말씀해 주신 두 번째는 mybatis > list로 파라미터가 넘어올 때 foreach문에서 null 체크하는 부분이었다. SELECT EX_CD AS CODE , EX_NM AS NAME , EX_CD||'.'||EX_NM AS VALUE FROM EX_TABLE WHERE 1 = 1 AND EX_CD IN #{item} ORDER BY 1 ASC/* ONLINE : [ex.repository].[ExRepository].[retrieveExList] */우선 이번 프로젝트를 진행하면서 Array/Lis..
-
[Java / Spring] @Valid & @Validated프로젝트 2024. 9. 1. 18:02
역삼에서 프로젝트를 마무리하면서 부장님께서 감사하게도 간단한 코드 리뷰를 해주셨다.그중 첫 번째 말씀하셨던 부분은 어노테이션 @valid 와 @validated서버 API를 구현하며 꼭 사용했던 어노테이션인데 두 개의 차이조차 인지하지 못하고 있었다는 점을 반성하며 정리해보려 한다. 1. @valid & @validated비슷해 보이는 두 개의 어노테이션 차이점은 뭘까 ? @valid - JSR 자바 표준 스펙- 컨트롤러 메서드의 유효성 검증- 유효성 검증 실패 시 MethodArgumentNotValidException 발생 @validated- 스프링 프레임워크가 제공하는 기능- AOP 기반으로 스프링 빈의 유효성을 검증하기 위해 사용되며 클래스에는 @validated, 메서드에는 @valid를..
-
[JAVA] Int & Integer 차이점 그리고 wrapper 클래스자바 2024. 8. 22. 16:02
실무를 하다보니 Integer와 Int의 차이점을 제대로 몰라 막힌적이 있었다. 어쨌든 업무를 빨리 끝내는게 우선이니 컴파일 오류가 나지 않도록 코드를 작성했고 이제서야 정리를 해본다. 기본형(Primitive Type)기본형은 객체가 아니기 때문에 다음과 같은 한계가 있다.1) 객체가 아님: 기본형 데이터는 객체가 아니기 때문에, 객체 지향 프로그래밍의 장점을 살릴 수 없다.2) null 값을 가질 수 없음: 기본형 데이터 타입은 null 값을 가질 수 없다. 때로는 데이터가 없음 이라는 상태를 나타내야 할 필요가 있는데, 기본형은 항상 값을 가지기 때문에 이런 표현을 할 수 없다. 래퍼 클래스 - 자바 래퍼 클래스 쉽게 이야기해서 래퍼 클래스는 기본형의 객체 버전이다.자바는 기본형에 대응하는 래..