마스크는 답답하다
ORM (Object Relational Mapping)
Java/Java 2023. 7. 11. 16:54

ORM (Object Relational Mapping)이란? ORM이란 객체-관계-매핑의 약자로 객체와 관계형 데이터베이스를 매핑해주는 도구이다. 쉽게 설명하자면 객체 지향프 프로그래밍은 클래스를 사용한다. 관계형 데이터베이스는 테이블을 사용하여 데이터를 저장한다. 즉 클래스와 테이블이라는 모델의 불일치가 존재하는데 이를 자동으로 연결(Mapping)시켜주는 도구이다. ORM의 종류에는 JPA, Hibernate, Mybatis등이 있다. 2023.05.01 - [Java/JPA] - JPA / Hibernate / Spring Data JPA ORM을 사용하는 이유 ORM을 사용하는 이유는 다음과 같다. 데이터베이스 접근을 프로그래밍 언어로 진행할 수 있다. 객체간의 바탕으로 SQL을 자동으로 생성한..

오버라이딩 / 오버로딩
Java/Java 2023. 5. 3. 13:53

다형성 오버라이딩과 오버로딩은 객체지향 프로그래밍의 특징 중 다형성에 속하는 개념이다. 다형성이란 프로그램 언어의 각 요소(상수, 변수, 메서드 등)들이 다양한 자료형에 속하는 것이 허가되는 성질을 말한다. 오버라이딩 (Overriding) 오버라이딩은 부모-자식 상속 관계에 있는 클래스에서 상위 클래스의 메서드를 하위 클래스에서 재정의하는 것을 말한다. 오버라이딩의 조건 부모-자식 상속 관계에 있는 클래스에서만 성립 메서드 명, 매개변수 타입, 리턴 타입이 같아야 함 private 접근제어자를 가진 메서드는 상속이 되지 않기때문에 성립 불가 final이 지정된 메서드는 사용 불가 오버라이딩의 장점 한 개의 메서드로 여러 객체를 다룰 수 있다. 각 객체마다 서로 다른 기능을 사용할 수 있다. 오버로딩 (..

직렬화 / 역직렬화
Java/Java 2023. 5. 2. 13:30

직렬화 (Serialization) / 역직렬화 (Desereialization) 직렬화란 Java뿐만 아니라 Computer Science에서 정의되어 사용되는 개념으로, 데이터 구조나 오브젝트 상태를 동일하거나 다른 컴퓨터 환경에 저장하고, 나중에 재구성할 수 있는 포맷으로 변환하는 과정이다. 좀 더 쉽게 말하자면, 현재 데이터의 상태를 영속적으로 저장하거나 다른 환경으로 전달하기 위해 어떠한 정해진 포맷으로 변환하는 과정이다. 역직렬화란 직렬화를 통해 포맷되어진 데이터를 다시 원래의 데이터로 변환하는 과정이다. 직렬화를 사용하는 이유 모든 개발언어에서 데이터의 메모리 구조는 2가지로 나뉜다. 값 형식 데이터 - int,float, char 등 스택에 메모리가 쌓이고 직접 접근이 가능한 데이터 참조 ..

Java에서의 Thread
Java/Java 2023. 3. 31. 20:03

쓰레드를 설명하기 전 각 용어부터 이해해야 한다. 프로세스 (Process) 우리가 흔히 쓰는 작업관리자(Ctrl+Alt+Delete) 창을 보면 가장 먼저 프로세스라는 창이 뜬다. 이 프로세스란 현재 실행중인 프로그램(Program)이다. 즉, 사용자의 PC에서 프로그램이 메모리 공간을 할당받아 실행 중인것을 의미한다. 이러한 프로세스는 자원(Data, Memory 등)과 스레드(Thread)로 구성된다. 쓰레드 (Thread) 쓰레드란 프로세스 내에서 작업을 수행하는 주체를 말한다. 모든 프로세스는 최소 한 개 이상의 쓰레드가 존재하며, 두 개 이상의 쓰레드를 가지는 프로세스는 멀티 쓰레드 프로세스라고 한다. 자바에서의 쓰레드 자바에서의 쓰레드란 애플리케이션 코드를 순차적으로 실행시키는 것이다. 즉,..

Static Import
Java/Java 2023. 3. 4. 21:09

Static Import Static Import는 메소드나 변수를 패키지, 클래스명 없이 사용할 수 있게 해주는 자바 기본 기능이다. 코드로 비교해보면 다음과 같다. @Test public void createMember() { // given Member member = new Member("test@gmail.com", "11111111", "test"); member.setCreatedAt(LocalDateTime.now()); member.setModifiedAt(LocalDateTime.now()); // when given(memberService.createMember(member)).willReturn(member); // then Assertions.assertThat(member).i..

인터페이스 (Interface)
Java/Java 2023. 3. 4. 20:09

인터페이스 (Interface) 인터페이스란 클래스에서 특정 기능(메소드)을 구현하도록 강제 할 수 있는 기능이다. 객체지향 언어의 다형성 부분을 극대화 시켜 개발코드 수정을 줄이고 프로그램 유지보수성을 높일 수 있다. 인터페이스의 특징 상수와 추상메소드로 구성되어 있다. (Java8부터는 default 메소드와 static 메소드도 사용 가능) 추상클래스와 마찬가지로 직접 인스턴스를 생성할 수 없다. 레퍼런스 변수의 인터페이스 타입으로 사용될 수 있다. 다른 인터페이스를 extends 키워드를 사용하여 상속 받을 수 있으며, 다중 상속이 가능하다. 객체가 인터페이스를 사용하면, 인터페이스 메서드를 반드시 구현해야하는 제약을 건다.

비교 연산자
Java/Java 2023. 2. 27. 07:58

비교 연산자 Boolean 타입으로 평과될 수 있는 조건식 대소 비교 연산자 연산자 기호 의미 예시 예시 결과 > 좌항의 값이 우항의 값보다 크다 10 > 1 true = 좌항의 값이 우항의 값보다 크거나 같다 8>=8 true

산술 연산자
Java/Java 2023. 2. 27. 07:49

산술 연산자 사칙연산 (+,-,*,/)과 나머지 연산자(%) 연산자 기호 기능 + (덧셈 연산자) 두 항의 값을 더한 값을 반환 - (뺄셈 연산자) 좌항의 값에서 우항의 값을 뺀 값을 반환 * (곱셈 연산자) 두 항의 값을 곱한 값을 반환 / (나눗셈 연산자) 좌항의 값을 우항의 값으로 나눈 값을 반환 % 나머지 연산자) 좌항의 값을 우항의 값으로 나눈 나머지를 반환 증감 연산자 변수의 값을 1씩 증가시키거나 감소시키는 연산자 연산자 기호 기능 ++num (전위형 증가 연산자) 증가 연산을 먼저 수행한 후 그 결과값을 적용 --num (전위형 감소 연산자) 감소 연산을 먼저 수행한 후 그 결과값을 적용 num++ (후위형 증가 연산자) 기존 값을 적용시킨 후 증가 연산을 수행 num-- (후위형 감소 연..

검색 태그