본문 바로가기
반응형

분류 전체보기155

Maven - pom.xml 파일 노트 pom.xml 이란? - Maven 프로젝트를 생성하면 root 디렉토리에 생성되는 파일. / Project Object Model 정보를 담고 있음. 주요 설정 정보 - 프로젝트 정보 : 프로젝트 이름, 개발자 목록, 라이센스 등 - 빌드 설정 정보 : 소스, 리소스, 라이프 사이클 등 실행할 플러그인 등 - POM 연관 정보 : 의존 프로젝트(모듈), 상위 프로젝트, 하위 모듈 등 ● 프로젝트 기본 정보 pom 파일에서 프로젝트 정보와 관련된 태그 -> = 프로젝트 명 / = 프로젝트 사이트 URL / = 프로젝트에 대한 간단한 설명 / = 프로젝트를 관리하는 단체 설명 + = 프로젝트의 그룹 ID 설정 / = 프로젝트 아티팩트 ID 설정 / = 프로젝트의 버전 / = 패키징 타입 설정 ( - jar.. 2022. 10. 28.
REST API 노트 REST 란? REST는 Representational State Transfer의 줄임말. / 자원의 이름으로 구분하여 해당 자원의 상태를 교환하는 것을 의미함. / REST는 서버와 클라이언트의 통신 방식 중 하나임. / HTTP URI(Uniform Resource Identifier)를 통해 자원을 명시하고 HTTP Method를 통해 자원을 교환하는 것. (HTTP Method: Create, Read, Update, Delete) REST 특징 : - Server & Client 구조 : 자원이 있는 쪽이 Server, 요청하는 쪽이 Client. 클라이언트와 서버가 독립적으로 분리되어 있어야 함. - Stateless : 요청 간에 클라이언트 정보가 서버에 저장되지 않음. 서버는 각각의 요청.. 2022. 10. 27.
Maven & Gradle 노트 자바의 대표적인 빌드 관리 Tool (Ant, Maven, Gradle) 빌드 관리 도구란? - 프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드해주는 도구. / source code를 컴파일, 테스트, 정적 분석등을 하여 실행가능한 앱으로 빌드해줌. / 프로젝트 정보 관리, 테스트 빌드, 배포 등의 작업을 진행 해줌. / 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트 관리. ▷ Maven 자바의 대표적 관리 도구였던 Ant를 대체하기 위해 개발됨. / 프로젝트의 외부 라이브러리를 쉽게 참조할 수 있게 pom.xml 파일로 명시하여 관리. / 참조한 외부 라이브러리에 연관된 다른 라이브러리도 자동으로 관리됨. Maven을 사용하는 이유 : - 기존에 사용.. 2022. 10. 26.
Spring & Spring Boot 노트 Spring 이란? - 정확한 표현은 Spring Framework. Java에서 가장 많이 사용되는 Framework임. - 의존성 주입(DI, Dependency Injection)과 제어 역전(IOC, Inversion of Control), 관점 지향 프로그래밍(AOP)이 가장 중요한 요소 => 이 요소들을 통해 느슨한 결합(Loose Coupling)을 달성할 수 있음. => Loose Coupling으로 개발한 Application들은 단위 테스트를 수행하기 용이함. ▷의존성 주입 (DI, Dependency Injection) DI를 사용하지 않은 코드를 보자면 public class NoDIController { private MyService service = new MyServiceIm.. 2022. 10. 25.
Distributed System(분산 시스템) 노트 Distributed System (분산 처리 시스템) : 여러개의 컴퓨터가 동일한 task를 처리하기 위해 네트워크상에서 서로 통신하며 협력하는 것. A distributed system is a collection of independent computers that appears to its users as a single coherent system. (하나의 시스템처럼 보이는 독립된 컴퓨터들의 집합) - 위의 정의를 두 가지 관점으로 나눈다면, 1) hardware와 독립,자율적으로 돌아가는 hardware machine, 2) software와 user 관점으로 볼때, 하나의 시스템처럼 여겨지는 시스템. - 다양한 컴퓨터들 사이에 다양한 통신 방법들을 사용자로 부터 숨기기 / 사용자와 시스템간.. 2022. 8. 27.
Algorithm - Merge Sort (병합 정렬) Merge Sort : Divide and Conquer의 방식을 사용한 알고리즘. 문제를 작은 2개의 문제로 분리하고 각각을 해결한 후, 그 결과물들을 모아서 원래의 문제를 해결하는 전략. 순환 호출을 주로 사용해서 구현. (과정 : 리스트의 길이가 0 또는 1이면 이미 정렬된 것으로 봄 - 그렇지 않다면 정렬되지 않은 리스트를 반으로 잘라서 비슷한 크기의 리스트 두개로 나눔[divide]. 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬[conquer]. 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병[merge]) / Quick sort와 동일한 시간 복잡도인 O(N*LogN). Quick sort는 pivot값에 따라 편향되게 분할될 수 있으므로 최악의 경우 O(N^2)의 시간 복잡도를 .. 2022. 8. 18.
반응형