본문 바로가기

분류 전체보기282

Process / Thread 프로세스(Process) vs 스레드(Thread) 프로그램(Program) 이란? - 어떤 작업을 위해 실행할 수 있는 파일 프로세스(Process) 란? 사전적 의미 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위(스케줄링의 대상) 동적인 개념으로는 실행된 프로그램을 의미한다. 할당받는 시스템 자원의 예 CPU 시간 운영되기 위해 필요한 주소 공간 Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다. 기본적으로 프로세스당 최소 1개의 스레드(메인 스.. 2020. 8. 28.
REST 1. REST - Representational State Transfer의 약자로 분산 네트워크 프로그래밍의 아키텍처 스타일이다. [REST의 특성과 규칙] 1.1 특성 클라이언트/서버 (client/server) : 클라이언트와 서버가 서로 독립적으로 구분되어야 하고 서로간의 의존성 때문에 확장에 문제가 되는 일이 없어야 한다. 상태 없음 : 통신 시에 상태가 없어야 한다. 서버는 클라이언트의 상태를 기억할 필요가 없다. 레이어드 아키텍처 : 서버와 클라이언트 사이에 게이트웨이, 방화벽, 프록시가 있는 것처럼 다계층 형태로 레이어를 추가하거나 수정하거나 제거할 수 있고 확장성이 있어야 한다. 캐시(cache) : 서버의 응답들은 캐시를 가지고 있거나 없거나 둘 중의 하나인데, 캐시를 가지고 있을 경우.. 2020. 8. 22.
Gradle 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 buildscript { ext { springBootVersion = '2.1.6.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dep.. 2020. 8. 22.
스프링 부트 1. 스프링 부트 웹 애플리케이션에서 스프링을 사용할 때는 다양한 모듈들의 설정을 적용 후 사용해야 한다. 따라서 시작하는 입장에서는 많은 설정들이 부담스럽고 실제로 구현해야 하는 비즈니스 로직과는 관련 없이 스프링 설정 오류 때문에 초반에 많은 시간을 허비하기도 한다. -> 이러한 문제를 해결하기 위해서 스프링 부트를 만들었다. 스프링 부트는 커맨드 도구를 제공하고 톰캣(Tomcat)이나 제티(Jetty) 같은 웹 애플리케이션 서버를 내장해서 실행을 간소화했다. 1.1 스프링 부트의 프로젝트 레이아웃 자바 기반에서 개발을 진행할 때 결과 파일 포맷은 크게 두 가지로 구분할 수 있다. (1) JAR - 로컬에서 실행 (2) WAR - 웹 애플리케이션 컨테이너에서 실행 각 파일들은 프로젝트 파일들을 압축한.. 2020. 8. 22.
SOLID 원칙 객체지향의 5대 원칙을 의미한다. 시간이 지나도 유지 보수와 확장이 쉬운 소프트웨어를 만들기 위해 이 원칙들을 적용할 수 있다. 1. SRP(Single Responsibility Principle) : 단일 책임 원칙 2. OCP(Open-Closed Principle) : 개방-폐쇄 원칙 3. LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 4. DIP(Dependency Inversion Principle) : 의존 역전 원칙 5. ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 1. SRP(Single Responsibility Principle) : 단일 책임 원칙 단일 클래스는 오직 하나의 일을 가져야 한다. Ⅰ... 2020. 8. 14.
(BOJ) 2644_촌수계산_JAVA https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진� www.acmicpc.net BFS를 활용한 문제. 부모 자식 관계가 주어지면 각각의 리스트에 값을 넣어준다. 예를 들어 1 2를 입력 받으면 1번 리스트에 2를 넣어주고 2번 리스트에 1을 넣어준다. 이와 같이 입력 받으면 n번 리스트에 n번 사람과 1촌 관계에 해당하는 사람의 번호가 들어있게 된다. 문제의 예제를 입력 받으면 다음과 같다. 촌수를 계산해야 하는 두 사람의 번호는 7 3이다. 7에서부터 시작.. 2020. 8. 11.