목록분류 전체보기 (60)
기록 저장소
1. 정의 HTTP 통신에서 자원에 대한 CRUD요청을 리소스와 메소드를 이용한 표현 방식으로 전달하는 것을 말한다. 2. REST API의 구성요소 - resource : URI를 통해 정의되는 접근할 대상을 말한다. 넓은 분류에서 좁은 분류로 계층적으로 표현하며, 구분자는 /를 사용한다. - method : 리소스에 대한 행위를 정의하는 것으로서 Get, Post, Put, Delete를 통해 자원의 CRUD를 정의한다. - representation of resource : 클라이언트와 서버가 주고받는 데이터의 형태로서 Jason, XML, Text 등이 있다. 3. REST API의 특징 - Client-Server : 클라이언트는 사용자 인증이나 컨텍스트를 관리하고, 서버는 요청에 대한 비즈니스..
1. 정의 프로젝트 관리를 위한 오픈소스 도구로서 빌드, 라이브러리 관리 등의 기능을 지원한다. 2. 라이프 사이클 - Clean : 이전 빌드에서 target 디렉토리에 생성된 파일을 삭제한다. - Compile : 프로젝트의 소스코드를 컴파일하여 클래스를 생성한다. - Test : 테스트 코드를 수행한다. - Package : 컴파일 된 소스코드와 자원 파일들을 정해진 포멧으로 패키징한다. - Install : 로컬 저장소에 패키지를 복사한다. - Deploy : 원격 저장소에 패키지를 등록한다. [ 면접 ] * Reference - https://dololak.tistory.com/671 [Maven] Apache Maven. 메이븐이란? 메이븐 다운로드 및 설치 방법 Apache Maven. 메이..
1. 정의 애플리케이션 개발시에 자주 발생하는 문제들을 해결하기 위한 일반적이고 추상화된 해결 방식을 말한다. GoF라고 불리는 네명의 개발자는 23가지의 디자인 패턴을 생성, 구조, 행위의 3가지로 분류한 바 있다. 2. 대표적인 디자인패턴 8가지 2.1. Singleton Pattern - 각 클래스가 하나의 인스턴스만 갖도록 하는 디자인패턴이다. - 생성자의 접근제어자를 private로 정의하며, 하나의 인스턴스를 반환하는 getInstance() 메소드를 사용한다. 2.2. Strategy Pattern - 객체가 수행할 수 있는 행위들을 미리 만들어 두고, 동적으로 행위의 변경이 필요한 경우 행위를 직접 수정하는 대신 전략을 바꾸는 것으로 구현하는 디자인패턴이다. - 행위를 추상화하여 인스턴스로..
1. 정의 문제를 객체 단위로 나누어 구성하고 이를 필요에 따라 조립하여 해결하는 프로그래밍 방식으로, 여러개의 함수를 순차적으로 호출하여 문제를 해결하는 절차 지향 프로그래밍과 구분된다. 2. 특징 - 추상화 : 다른 것과 구분되는 공통적인 속성과 행위를 추출하는 것을 말한다. - 캡슐화 : 객체에 정의된 속성과 행위의 과정을 외부에 노출되지 않도록 은닉하여, 간단한 메시지의 전달만으로 해당 객체를 이용할 수 있게 하는 것을 말한다. - 상속 : 공통적인 속성을 갖는 객체를 계층적으로 분류하여, 상위 객체의 속성과 행위를 하위 객체에서 물려받아 사용할 수 있게 하는 것으로, 코드의 중복을 방지한다. - 다형성 : 같은 형태의 메소드나 클래스가 다양한 방법으로 동작하게 하는 것을 말하며, 코드의 재사용성..
1. Method Area(= Class Area = Static Area) 인스턴스 생성을 위해 필요한 정보를 저장하는 공간으로, 모든 스레드가 공유한다. 저장되는 정보의 종류에는 Field Information, Method Information, Type Information, Constant Pool, Class Variable이 있다. 2. Heap 동적으로 생성된 객체, 배열 등을 저장하는 공간이다. 3. Stack 프로그램 실행 중 메소드가 호출될 때 각 메소드에서 사용되는 값을 저장하기 위한 임시공간이다. 4. PC Register 현재 실행중인 부분의 참조(주소 값)이 저장되는 공간으로, 스레드마다 하나씩 존재한다. 5. Native Method Stacks 자바 이외의 언어를 수행하기 ..
1. 라이브러리 코드의 중복을 방지하기 위해 재사용이 필요한 기능을 필요한 곳에서 호출하여 사용할 수 있도록 미리 만들어 놓은 클래스나 메소드를 말한다. 2. 프레임워크 애플리케이션 개발시 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능들을 위해 어느정도 뼈대(구조)를 제공해주는 것을 말한다. 3. 비교 - 공통점 : 개발의 생산성을 높여주며, 유지보수의 비용을 줄여준다. - 차이점 : 애플리케이션의 흐름을 누가 제어하느냐에 차이가 있다. 라이브러리는 사용자가, 프레임워크는 자체적으로 흐름을 제어한다. [ 참고 ] - https://saack.tistory.com/31 IT 상식] 라이브러리(Library) 란? [라이브러리의 정의] 라이브러리(library)는 다른 프로그램들과 링크되기 위..
1. Spring Framework 정의 자바 엔터프라이즈 개발을 돕는 오픈소스 경량급 애플리케이션 프레임워크 2. Spring Framework의 핵심개념 2.1. POJO(Plain Old Java Object) - 특정 규약이나 특정 환경에 종속되지 않으며, 객체지향적인 원리에 충실하게 설계된 자바 객체 - 로우레벨의 기술과 환경에 종속적인 코드가 비즈니스 로직과 분리되기에, 유지보수의 부담이 적다. - 객체지향적 설계를 자유롭게 적용할 수 있으며, 자동화된 테스트에 유리하다. 2.2. PSA(Portable Service Abstraction) - 엔터프라이즈 개발에 사용되는 다양한 기술에 대한 서비스 추상화 기능을 제공함으로써, 환경이나 세부기술의 변화와 무관하게 일관된 방식으로 기술에 접근할 ..
1. String - 문자열을 처리하는 클래스로, 객체를 생성하여 메모리에 할당되고 나면 바꿀 수 없다. 따라서 연산자 혹은 메소드를 이용하여 문자열을 변경하는 경우 메모리에 새롭게 할당되기 때문에, 문자열의 처리가 빈번한 로직에는 적합하지 않다. 2. StringBuffer - String과 달리 메모리에 할당된 이후에도 문자열의 변경이 가능하다. 따라서 문자열의 처리가 빈번한 로직에 적합하다. 다만, 문자열을 다루는 다른 메소드에서 사용하기 위해서는 toString() 메소드를 통해 String객체를 생성해야 하기 때문에, 문자열의 처리가 적고 읽는 작업을 반복해야 하는 경우에는 String 클래스가 보다 적합할 수 있다. [ 참고 ] * Reference - https://lalwr.blogspot..