반응형

Programming 58

JPA Auditing

JPA Auditing DB에 데이터를 언제 누가 삽입 혹은 수정을 했는지 기록을 남기는 컬럼이 있는데 JPA의 Auditing을 이용하면 자동으로 기입할 수 있다. Spring Data Jpa에서 EntityListener를 구현한 AuditingEntityListener가 있다. @Configurable public class AuditingEntityListener { private @Nullable ObjectFactory handler; public void setAuditingHandler(ObjectFactory auditingHandler) { Assert.notNull(auditingHandler, "AuditingHandler must not be null!"); this.handler..

Programming/JPA 2021.08.05

애너테이션이란?

애너테이션이란? 자바를 개발한 개발자들은 소스코드와 그에대한 문서를 하나의 파일로 관리 하는것이 효율적이라고 판단하여 소스코드의 주석에 소스코드에 대한 정보를 저장하고 주석으로부터 HTML 문서를 생성해내는 프로그램인 javadoc.exe을 만들어 사용했다. 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것이 바로 애너테이션이다. 애너테이션은 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서 다른 프로그램에게 유용한 정보를 제공할 수 있다는 장점이 있다. JDK에서 제공하는 표준 애너테이션은 주로 컴파일러를 위한 것으로 컴파일러에게 유용한 정보를 제공한다. JDK에서 제공하는 애너테이션은 java.lang.annotation 패키지에 포함되어 있다. 애너테이션은 코드..

Programming/JAVA 2021.03.06

Enum이란?

Enum이란? enum이란 enumerated type의 줄임말로 열거형이라고 부르기도 하는데 컴퓨터 프로그래밍에서 열거형(enumerated type, enumeration)은 요소, 멤버라 불리는 명명된 값의 집합을 이루는 자료형이다. 열거자 이름들은 일반적으로 해당 언어의 상수 역할을 하는 식별자이다. 일부 열거자 자료형은 언어에 기본적으로 포함되어 있을 수 있다. 예를 들면 boolean 자료형은 false와 true 값이 미리 정의된 열거형으로 볼 수 있다. 많은 언어에서 사용자들이 새로운 열거형을 정의할 수 있게 하고 있다. Enum 장점 IDE의 지원을 받을 수 있다. 자동완성, 오타검증, 텍스트 리팩토리 등 허용 가능한 값들을 제한할 수 있다. 리팩토링 시 변경 범위가 최소화 된다. 내용을..

Programming/JAVA 2021.03.02

멀티 쓰레드 프로그래밍이란?

멀티쓰레드 프로그래밍 Process란? 실행중인 프로그램을 의미 운영체제로부터 메모리 공간을 할당 받아 실행중인 것을 말한다. 이러한 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원, 쓰레드로 구성된다. Thread란? 프로세스 내에서 작업을 수행하는 일꾼(주체) 모든 프로세스에는 1개 이상의 쓰레드가 존재하여 작업을 수행 1개의 쓰레드를 가지는 프로세스를 싱글 쓰레드 프로세스라고 한다 2개 이상의 쓰레드를 가지는 프로세스를 멀티 쓰레드 프로세스라고 한다. 경량 프로세스라고 불리며 가장 작은 실행단위이다. 프로세스의 자원을 이용해서 작업을 수행한다. 멀티 태스킹(multi-tasking) 여러개의 프로세스가 동시에 실행될 수 있는 것. 멀티 쓰레딩(multi-threading) 하나의 프로세스 ..

Programming/JAVA 2021.03.01

예외란?

예외란? 자바에서는 오류(Error)와 예왹(Exception)두가지의 개념이 있다. 출처 : https://5balloons.info/introduction-to-exception-handling/ 에러(Error) 시스템의 비정상적인 상황이 생겼을 때 발생한다. 시스템 레벨에서 발생하기 때문에 개발자가 미리 예측하여 처리할 수가 없다. 에러는 크게 컴파일 에러와 런타임 에러로 구분할 수 있다. 컴파일 에러 컴파일 과정에서 일어나는 에러로 기본적으로 자바 컴파일러가 문법 검사를 통해서 오류를 잡아준다. 런타임 에러 실행과정에서 일어나는 에러로 컴파일이 문제없이 되더라도 실행과정(Runtime)에서 오류가 발생할 수 있다. 이러한 런타임 에러를 방지하기 위해 프로그램 실행 도중 일어날 수 있는 모든 경우..

Programming/JAVA 2021.02.13

인터페이스란?

인터페이스 자바는 하나의 상속만 가능하다는 특성이 있다. 이것은 객체지향 프로그래밍에서 큰 제약이기 때문에 인터페이스라는 개념을 도입햇다. 인터페이스는 일종의 추상 클래스이다. 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상 클래스와 달리 일반 메서드 또는 멤버변수를 가질 수 없다. 오직 추상메서드와 상수만 멤버로 가질 수 있다. 하지만 자바 8 부터 default 키워드를 통해 일반 메서드 구현이 가능해졌다. 개발 코드와 객체가 서로 통신하는 접점 개발 코드가 인터페이스의 메서드를 호출하면 인터페이스는 객체의 메서드를 호출한다. 이렇게 되면 개발코드는 객체의 내부 구조를 알 필요가 없고, 인터페이스의 메서드만 알면 된다는 장점이 있다. 개발 코드를 수정하지 않고, 사용하는 객..

Programming/JAVA 2021.02.06

패키지란?

패키지 클래스와 인터페이스등을 구분 짓는 폴더 개념과 비슷 패키지의 물리적인 형태는 파일 시스템의 폴더이다. 패키지는 클래스를 유일하게 만들어주는 식별자 역할을 한다. 클래스의 완전한 이름은 패키지 + 클래스명 이며 FQCN(Fully Qualified Class Name) 이라고 한다. 예로 String 클래스의 패키지는 java.lang이며 FQCN은 java.lang.String이다. 패키지가 상, 하위로 구분되어 잇다면 .를 사용하여 표현한다. 패키지의 이름은 java로 시작하면 안된다. 파일 시스템의 디렉토리와 비슷한 역할이기 때문에 패키지 명과 동일한 디렉토리 구조를 따라야 한다. 패키지 이름 명명 규칙 패키지 시작이름 내용 java 자바 기본 패키지 (Java vendor 개발) javax ..

Programming/JAVA 2021.01.21

상속이란?

상속 상속은 상위 클래스의 필드와 메서드를 허위클래스가 물려받는것을 말한다. 상속을 사용하면 코드의 재사용성이 증가하고 클래스 간 계층관계를 구분하고 관리하는게 편해진다. 상속해주는 클래스 상위 클래스, 슈퍼 클래스, 부모 클래스, 기반 클래스(Base Class)라고도 부른다. 상속을 받는 클래스 하위 클래스, 서브 클래스, 자식 클래스, 파생 클래스(derived Class)라고도 부른다. 상속을 한다고해서 부모 클래스의 모든 필드와 메서드를 상속받는것은 아니다. private 접근 지정자를 가지고 있는 필드와 메서드는 상속에서 제외되며 다른 패키지일 경우 default 접근 지정자 또한 제외된다. extends 키워드 자바에서는 상속을 위해서 extends라는 키워드를 사용한다. 부모 클래스의 메서..

Programming/JAVA 2021.01.07

클래스란?

객체지향 프로그래밍 클래스에 대해 알기전에 먼저 객체지향 프로그래밍에 대해 알아보자. 객체지향 프로그래밍(OOP : Object-oriented programming) 은 모든것을 객체(Object) 로 보고 그 객체들끼리 역할, 책임, 협력 등 객체들의 관계를 중심으로 프로그래밍하는 기법을 말한다. 객체지향의 4대 특성 캡슐화(encapsulattion) 객체의 속성과 행위를 하나로 묶고 구현 내용 일부를 외부에 감추어 은닉할 수 있다. 상속(inheritance) 상위 클래스의 속성과 행위를 상속 받을 수 있다. 하위 클래스는 필요한 특성을 추가하여 사용할 수 있다. 추상화(abstraction) 상세한 정보는 무시하고 필요성에 의해 있어야할 정보들만 간추려서 구성하는 것으로 공통점 추출하는 것이다...

Programming/JAVA 2021.01.04

JUnit이란?

JUnit JUnit이란 java의 단위 테스트(Unit Test) 도구이다. 테스트 결과를 문서로 남기는 것이 아니라 Test Class 자체를 남겨 리팩토링을 하거나 소스코드가 변해도 해당 코드가 제대로 동작하는지 테스트 코드를 가지고 그대로 테스트 할 수도 있고, 미래에 이 기능을 맡게될 개발자에게 테스트 방법 및 클래스의 histroy를 넘겨줄 수도 있다. 하나의 jar파일로 되어있다. 단위 테스트 소스코드의 특정 모듈이 의도된 대로 작동하는지 검증하는 절차 모든 메서드에 대한 테스트 케이스를 작성하는 절차 JUnit4부터는 @어노테이션을 지원하여 간단하게 테스트할 수 있는 환경을 제공한다. (@Test, @Before ...) 테스트의 결과는 성공은 초록색, 실패는 빨간색으로 표시된다. 테스트 ..

Programming/JAVA 2020.12.31
반응형