본문 바로가기

분류 전체보기

(341)
Spring Boot) 1. 개발 환경의 변화와 자바 1. 웹 애플리케이션 컨테이너 웹 애플리케이션이 배포되는 공간 웹 서버 : 정적 파일 제공하는 서버 웹 애플리케이션 서버 : 동적 페이지를 생성 가능한 서버 (= 웹 애플리케이션 컨테이너, WAS) 1.1 클래스 로더 Write once, run anywhere, 한번 작성하면 플랫폼에 상관없이 쓸 수 있다. 자바 코드 작성 → 컴파일 → JVM에서 실행 가능한 상태 JVM에서 클래스를 실행하기위해 클래스 로더가 필요 ClassNotFoundException : 클래스 로더가 라이브러리나 클래스를 인식하지 못해서 발생하는 오류로 클래스패스에 추가하면 해결 1.1.1 특징 계층적 구조 (상위 → 하위) 최상위 : 부트스트랩 틀래스 로더 클래스 로딩 위임 가능 가시적인 규약(클래스 로딩 시 가능한 범위)가 ..
[Javascript/프로그래머스] 완전탐색 : 카펫 완전탐색 3. 카펫 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 입출력 예 brown yello return 10 2 [4, 3] 8 1 [3, 3] 24 24 [8, 6] 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 ..
Spring Boot) Spring Boot 프로젝트 예제로 기초 이해하기 / Building an Application with Spring Boot Spring Boot 프로젝트 예제로 기초 이해하기 spring boot 동작 방식을 이해하기 위해 공식 사이트에서 제공한 가이드를 따라 연습한 내용을 정리한 자료입니다. Building an Application with Spring Boot this guide is designed to get you productive as quickly as possible and using the latest Spring project releases and techniques as recommended by the Spring team spring.io 1. 나의 개발 환경 IntelliJ IDEA CE Mac OS JDK 1.8 Gradle + intelliJ에서 스프링 부트 프로젝트를 시작하는 방법은 생략할..
Spring Boot) Gradle이란 Gradle 오픈소스 빌드 자동화 툴 거의 모든 타입의 소프트웨어를 빌드할 수 있는 유연함이 강점인 툴로 Maven 보다 빌드 스크립트 작성이 간편하다. 1. Gradle 특징 오픈 소스 기반 빌드 자동화 툴 Groovy 기반 : 자바와 문법이 유사하여 자바 개발자가 쉽게 익힐 수 있다. Maven에 비해 빌드 시간이 짧고 빠른 성능을 보인다. convention을 기반으로 빌드하여 스크립트 규모가 작고 가독성이 높다. configuration injection을 사용해서 프로젝트 조건을 체크할 수 있어 프로젝트별 cofiguration을 다르게 설정할 수 있다. 멀티 프로젝트 빌드 지원을 위해 설계되었다. Andorid Studio, IntelliJ IDEA, Eclipse 등의 IDE에서 Gradle..
[Javascript/Codility] Lesson3) Time Complexity : FrogJump [Codility] Lesson3) Time Complexity : FrogJump 문제 한번에 D만큼씩 점프할 수 있는 개구리가 X에서 Y까지 도달하려면 최소 몇 번 점프해야 하는지 구하라. 내가 푼 소스코드 function solution(X,Y,D){ return Math.ceil((Y-X)/D); }
[Javascript/Codility] Lesson2) Array : CyclicRotation [Codility] Lesson2) Array : CyclicRotation 문제 주어진 배열 A의 요소들을 K만큼 로테이션을 돌린 배열을 반환한다. ex) solution([3, 8, 9, 7, 6], 3) >> [3, 8, 9, 7, 6] -> [6, 3, 8, 9, 7] [6, 3, 8, 9, 7] -> [7, 6, 3, 8, 9] [7, 6, 3, 8, 9] -> [9, 7, 6, 3, 8] 내가 푼 소스코드 function solution(A, K) { let arr = A.length==0 ? [] : A; if (arr.length == K){ return arr; } for (let i = 0; i < K; i++){ let tail = arr.pop(); A.unshift(tail); }..
[Javascript/Codility] Lesson 1) Iterations : BinaryGap [Codility] Lesson 1) Iterations : BinaryGap 문제 파라미터로 주어진 정수 N을 이진수로 했을 때, 1 사이의 연속된 0 의 최대 길이를 반환하는 문제이다. 예를 들어 N=9 인 경우, 이진수로 변환하면 1001 이고 1 사이의 연속된 0 의 길이는 2 이다. 그러나 N=8인 경우, 1000에서는 1사이에 있는 0은 없기 때문에 0을 반환해야 한다. 내가 푼 코드 function solution(N) { // 파라미터 바이너리로 바꾸기 const bin = N.toString(2); // 연속된 0의 최대 길이 let result = 0; // 연속된 0의 길이를 임시로 저장할 변수 let gap; // 이진수 처음부터 for 문 돌리기 for (n of bin){ // ..
[컴퓨터 네트워크] Chapter4) Network Layer 네트워크 계층 Chapter4) Network Layer 네트워크 계층 processing (2021.04.20~) 1. Introduction 전송 계층은 logical connection을 하고 있는 것으로 양 단 사이의 디바이스들은 이 연결을 몰라도 된다. 네트워크 계층은 논리적 연결이 아니라 물리적 연결이 필요하다 1.1 네트워크 계층에서 제공하는 서비스 1.1.1 패킷화 packetizing 송신측에서 캡슐화, 수신측에서 디캡슐화 송신측에서 네트워크 계층 패킷에 있는 페이로드 (상위 계층에서 받은 데이터)를 캡슐화 페이로드가 너무 크면 쪼갤 필요가 있음 수신측에서 네트워크 계층 패킷의 페이로드를 de-capsulating 1.1.2 라우팅 routing ** LAN과 WAN 의 조합으로 물리적 계층이 구성되기..