전체 글
-
[BOJ] 다음 순열, 이전 순열Algorithm/BOJ 2020. 2. 3. 13:16
순열(Permutation) 크기가 N인 수열은 총 N!개가 존재한다. 순열을 사전 순으로 나열했을 때, 첫 번째 순열은 오름차순, 마지막 순열은 내림차순이다. N = 3인 경우에 사전순은 다음과 같다. 123 132 213 231 312 321 [10972] 다음 순열 https://www.acmicpc.net/problem/10972 1. A[j-1] = i이면서 A[j] > A[i-1]를 만족하는 가장 큰 j를 찾는다. 3. A[j-1]과 A[j]를 swap 한다. 4. A[j]부터 순열을 뒤집는다. 소스코드 import java.util.Scanner; public class Main { public void go() { Scanner sc..
-
[BOJ] N과 M (1) ~ (8)Algorithm/BOJ 2020. 2. 2. 23:00
https://www.acmicpc.net/search#q=n%EA%B3%BC%20m&c=Problems [15649] N과 M (1) - 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 input 4 2 output 1 2 1 3 1 4 2 1 2 3 2 4 3 1 3 2 3 4 4 1 4 2 4 3 소스코드 import java.util.Scanner; public class Main { // main function make_permutation(0, n, m); public void make_permutation(int idx, int n, int m) { if (idx == m) { print(a, m); return; } for (int i = 1; i
-
[Web]왜 spring을 사용해야 하는가?Programming/Web 2020. 1. 23. 12:58
Spring을 사용하지 않는다면? 1. 서블릿을 사용해야 한다. 2. 객체들의 생성/소멸에 신경을 써야 한다. 3. 변경에 유연하게 대응하기 위해서 여러 패턴들을 직접 구현해야한다. 4. 인증/보안/로깅 등 공통으로 필요한 모듈들은 직접 만들어야 한다. 5. 이외에 새로운 모듈들을 활용하기 위해서 많은 노력이 필요하다. 6. 여러 사람이 각각 자기만의 패턴과 자기만의 스타일대로 프로그램을 만들어 유지보수와 코드 분석이 불가능할 것이다.. 참조 https://opentutorials.org/course/2428/13594
-
[Web] Browser의 동작Programming/Web 2020. 1. 15. 22:56
Browser? 브라우저는 WWW(World Wide Web)에서 정보를 검색, 표현하고 탐색하기 위한 소프트웨어이다. 브라우저의 역할은 사용자가 선택한 자원을 서버에 요청하고 브라우저에 표시하는 것이다(user-agent). 브라우저가 HTML, CSS 파일을 해서하는 방법은 웹 표준화 기구인 W3C(World Wide Web Consortium)에서 정한다. Browser Component 브라우저의 구성 요소는 다음과 같다. User Interface : 사용자가 보는 화면. 주소 표시줄, 이전/다음, Exit 버튼 등 Browser Engine : 브라우저 SW를 동작시켜주는 핵심 엔진. UI와 렌더링 엔진 사이의 동작을 제어 Rendering Engine : 요청한 컨텐츠(HTML, CSS 등)..
-
[Web] Template Literals with JSON in JavaScriptProgramming/Web 2020. 1. 15. 19:30
Template Literals ES6에서의 template literal로 쉽게 JSON data를 치환하는 방법을 소개하겠습니다. var x = { name: 'John Smith', nickname: 'Johny', }; 위의 x 객체는 name과 nickname, 두 개의 속성을 가지고 있습니다. //String concatenation console.log('Hi, I\'m ' + x.name + '! Call me "' + x.nick_name + '".'); 예시에서 객체의 속성을 text 형식으로 consol.log()에 나타내기 위해서는 (')를 백슬래시로 피해야하고, 작은 따옴표와 큰 따옴표가 섞여있어, 코드가 무엇을 말하려고 하는지 알아보기 어렵습니다. 그러나 똑같은 코드를 실행하지만..
-
[Web] JavaScript - Event BubblingProgramming/Web 2020. 1. 15. 15:38
Event Bubbling 기본적으로 이벤트는 JavaScript에서 버블링됩니다. 이벤트 버블링은 target element에 이벤트가 발생했을 때, target에서 부터 상위의 Element까지 DOM 계층 구조를 순회하면서 이벤트 리스너를 찾아 실행하는 과정입니다. 이 동작은 일반적으로 Event Propagation 또는 Event Delegation이라고도합니다. html 및 body와 같은 루트 레벨 요소에 이벤트 리스너를 추가 할 수도 있습니다. 이벤트는 아래의 순서로 버블링됩니다. (클릭된 Target에서 Target을 감싸고 있는 최상위 Element 까지 ) Target -> Body -> HTML -> Document -> Window Event Capturing 비슷하게 Captur..
-
[Web] 웹 서버 VS 웹 애플리케이션 서버 (WAS)Programming/Web 2020. 1. 14. 13:31
웹은 HTTP라는 프로토콜을 사용하여 클라이언트 - 서버간 데이터 통신을 한다. 클라이언트 측에서 요청을 보내고, 서버 측에서 응답이 되돌아 오는 구조이다. 웹 서버는 이러한 HTTP 요청을 받아들이고 HTML, 이미지 파일, CSS 같은 문서 또는 리소스 데이터를 반환하는 역할을 한다. 대표적인 웹 서버는 IIS, Apache, Nginx, GWS 등이 있다. Apache는 HTTP Daemon 이라고 부르기도 한다. * HTTP Daemon : 웹 서버의 백그라운드에서 실행되어, 들어오는 서버 요청을 대기하는 SW 프로그램 웹 서버 웹 서버는 서비스 SW가 동작하는 컴퓨터를 말한다. 웹 서버의 가장 중요한 기능은 클라이언트가 HTTP에 맞게 요청하는 HTML 문서나 각종 리소스를 전달하는 것이다. 웹..
-
[Web] Client - Server의 TCP/IP 통신Programming/Web 2020. 1. 14. 12:05
OSI 참조모델은 컴퓨터와 컴퓨터 사이의 데이터 전송을 기능별로 7가지의 계층으로 분류한 모델이다. 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현된다. TCP/IP 모델은 무엇일까? 우리가 인터넷상에서 범용으로 사용하는 TCP 프로토콜과 IP 프로토콜을 OSI 7계층 형식에 맞추어 더 추상화 시킨 모델이다. TCP/IP 모델을 통해서 클라이언트와 서버가 통신하는 과정을 살펴보자. 1. 애플리케이션 계층 (Client) 사용자가 웹 브라우저(클라이언트)에 도메인(naver.com)을 입력하면 클라이언트는 DNS 서버를 통해서 IP 주소(127.0.0.1)를 알 수 있다. 클라이언트는 HTTP 메시지를 작성하여 전송 계층으로 전달한다. 2. 전송 계층 (Client) HTTP 메시지를 패킷으로 ..