전체 글
-
JPA - JPA의 등장Spring/JPA 2022. 3. 7. 11:05
JPA의 등장 웹 애플리케이션을 개발할 때 객체에 저장되어있는 데이터들을 SQL로 변환하고, RDB에 연결하여 작성한 쿼리문을 전송하여 RDB에 저장한다. 말로 했을 때는 참 쉬워 보이지만 객체와의 관계와 테이블 간의 관계에서의 차이가 존재하기 때문에 고려해야 할 사항들이 많다. 만약에 Item을 상속받는 Album 객체를 RDB에 저장한다고 생각해보자. RDB에는 ITEM 테이블과 ALBUM 테이블을 따로 관리하기 때문에 저장을 하기 위해서는 Item 객체와 Album 객체를 분리하여 각 테이블에 저장할 수 있도록 쿼리문을 작성하여 전달해야 한다. 반대는 조회는 어떨까? 조회 역시 Album을 조회하기 위해서는 ITEM 테이블과 ALBUM 테이블을 조인하여 가져온 데이터들을 각각의 객체를 생성하여 매핑..
-
Java - 애노테이션(annotation)Java/java study 2022. 3. 6. 20:37
애노테이션이란? 개발자들은 소스코드에 대한 문서를 따로 만들기 보다 소스코드와 문서를 하나의 파일로 관리하는 것이 낫다고 판단했다. 그래서 소스코드의 주석 /** ~~ */에 소스코드에 대한 정보를 저장하고, 소스코드의 주석으로부터 HTML문서를 생성해내는 javadoc.exe라는 프로그램을 만들어서 사용했다. 위와 같이 소스코드 안에 다른 프로그램(ex: javadoc.exe)을 위한 정보를 미리 약속된 형식으로 포함시킨 것이 바로 애노테이션이다 애노테이션은 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서 다른 프로그램에게 정보를 제공 한다. ex) @Test 애노테이션 같은 경우 테스트 프로그램인 JUnit에게 테스트를 해야한다고 알리기만 할 뿐 메서드가 포함된 프로그램 자체에는 아무런 영향을 미치..
-
Java - enum이란Java/java study 2022. 2. 27. 22:58
enum이란? Enum(열거형)은 서로 관련된 상수들을 정의하여 편리하게 사용하기 위한 자료형이다. 기존의 상수를 사용하면서 발생했던 문제점과 불편했던 점 등을 개선하고자 jdk1.5부터 추가된 기능이다. enum이 생긴 이유 enum 정의 Enum 클래스에 제공하는 메서드 EnumSet enum이 생긴 이유 코드의 가독성을 높여준다. 열거형이 가지는 값뿐만 아니라 타입까지 관리하기 때문에 논리적인 오류를 줄일 수 있다. 상수와 리터럴이 논리적인 연관이 없다. 서로 다른 개념끼리 이름이 충돌할 수 있다. 서로 다른 개념임에도 비교 연산이 가능한다. enum 정의 1. num에 정의된 상수들은 해당 enum type의 객체이다. enum Fruit { APPLE, PEACH, BANANA } 위와 같은 열..
-
JavaScript - 배열JavaScript 2022. 2. 22. 02:27
배열 자바스크립트에서 모든 자료형을 보관하는 변수의 모음을 배열로 처리 자바에서의 컬렉션과 유사 배열의 선언 배열 선언 시 배열의 크기를 정하거나 정하지 않고 선언할 수 있다. 배열의 길이는 가장 큰 인덱스에 1을 더한 값이 된다 자바스크립트에서는 length를 이용해 배열의 길이를 수정할 수 있다. 길이가 0인 배열에 값을 추가하면 자동으로 배열의 길이가 늘어난다. 배열의 선언과 동시의 초기화 방법 배열 순회 for문, for of문 등을 사용 for of는 자바의 for-each와 비슷하다. 배열 메소드 배열도 하나의 객체이기 때문에 배열에서 활용할 수 있는 메소드들이 있다. push, pop : 배열의 맨 뒤에 요소 추가/제거 shift : 배열의 맨 앞 요소 제거 후 반환 unshift : 배열의..
-
JavaScript - 함수(Function)JavaScript 2022. 2. 21. 01:38
함수(Function) 함수 선언(Function Declaration) 반환 값 선언 없이 function 키워드만 이용하여 사용 function키워드에 함수 명을 작성하여 사용하는 방법(함수 선언문)과 function에 함수 명을 작성하지 않고 변수에 대입하는 방법(함수 표현식)이 있음 함수 호출 return 값이 있으면 리턴 값을 받을 변수가 있어야 한다. 변수 범위 함수 내에서 지역 변수를 선언하면 함수 외부에서 접근이 불가 function test2 () { // 함수 내의 지역 변수 선언 let local = 'local'; } // local is not defined // => 지역 변수는 함수 외부에서 접근 불가 console.log('test2 밖의 local : ' + local);..
-
Java - ThreadJava/java study 2022. 2. 20. 22:32
Thread 개념 정리 Thread 생성 방법과 실행 Thread 상태와 메서드 Thread 우선순위 Main Thread 동기화(Synchronization) 교착상태(DeadLock) 개념 정리 프로세스(Process) 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 실행 중인 프로그램을 의미 프로세스가 작업을 수행하는 것이 아닌 스레드가 프로세스로부터 자원을 할당받아 수행한다. 구성 : 프로그램에 사용되는 데이터, 메모리 등의 자원과 스레드 스레드(Thread) 프로세스로부터 자원을 할당받아 실제로 작업을 처리 경량 프로세스라고 불리며 가장 작은 실행 단위이다. 한번 사용한 스레드는 재사용이 불가하다. 모든 프로세스에는 최소 하나 이상의 스레드가 존재 - 싱글..
-
JavaScript - 연산자(비교 연산자, 동등 연산자, 일치 연산자, 그외 연산자)JavaScript 2022. 2. 20. 03:31
연산자 기본적인 연산자의 사용과 우선순위 등은 Java와 크게 다르지 않으나 다른 점이 존재한다. 따라서 Java와 다른 점을 알아보자 비교 연산자를 통한 문자열 비교 동등 연산자( ==, != )와 일치 연산자 ( ===, !== ) 그 외 연산자 비교 연산자를 통한 문자열 비교 비교 연산자로 문자열을 비교할 수 있다. 문자열은 사전 순(유니코드 순)으로 뒤쪽의 문자열은 앞쪽의 문자열보다 큰 값을 가진다 동등 연산자( ==, != )와 일치 연산자 ( ===, !== ) 동등 연산자(==, !=) : 자료형에 상관없이 값이 일치하면 treu, 아니면 false 일치 연산자(===, !==) : 자료형과 값이 모두 일치하면 true, 아니면 false 그 외 연산자 삼항 연산자, 조건문(if문, swit..
-