일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 호유동
- 스프링 MVC
- 동적 프로그래밍
- 고모네 콩탕
- 1로 만들기
- Spring
- 2839
- 서블릿
- 백준
- Servlet
- HTTP API
- dp
- 알고리즘
- 설탕 배달
- 2020 KAKAO BLIND
- 2638
- 양꼬치
- 2589
- 문자열 압축
- 스프링
- 다이나믹 프로그래밍
- 쓰레드 풀
- 투어
- 맛집 투어
- 프로그래머스
- 맛집
- 포두부 보쌈
- mvc
- 완도산회
- BFS
- Today
- Total
목록개발 (145)
프로그래밍 공방
쓰레드 - 애플리케이션 코드를 하나하나 순차적으로 실행하는 것은 쓰레드 - 자바 메인 메서드를 처음 실행하면 main이라는 이름의 쓰레드가 실행 - 쓰레드가 없다면 자바 애플리케이션 실행이 불가능 - 쓰레드는 한번에 하나의 코드 라인만 수행 - 동시 처리가 필요하면 쓰레드를 추가로 생성 단일 요청 - 쓰레드 하나 사용 쓰레드1이 쉬고 있다가 요청1이 연결에 들어오면 쓰레드1을 할당하고 쓰레드 1을 가지고 servlet을 호출한다 쓰레드1은 비즈니스 로직을 수행 후 요청1에 대한 응답1을 수행하고 쓰레드1은 다시 휴식으로 들어간다 다중 요청 - 쓰레드 하나 사용 쓰레드 1이 쉬고 있다가 요청1이 연결에 들어오면 쓰레드 1을 할당하고 쓰레드1을 가지고 servlet을 호출한다 그러나 처리가 지연되고 이때, ..
Servlet 클라이언트의 요청을 받아 웹페이지를 동적으로 생성하여 응답하는 서버측 프로그램 웹 애플리케이션 서버를 직접 구현한다면 해야할 일 1. 서버 TCP/IP 연결 대기, 소켓 연결 2. 웹 브라우저가 생성한 요청 HTTP 메시지 파싱해서 읽기 3. 파싱한 데이터를 분석해서 필요한(저장) 프로세스 실행 4. 비즈니스 로직 실행 - 데이터베이스에 저장 요청 5. HTTP 응답 메시지 생성 시작 - HTTP 시작 라인 생성 - Header 생성 - 메시지 바디에 HTML 생성 후 입력 6. TCP/IP에 응답 전달, 소켓 종료 서블릿을 지원하는 WAS를 사용한다면 해야할 일 1. 비즈니스 로직 실행 - 데이터베이스에 저장 요청 서블릿 @WebServlet(name = "helloServlet", ur..
웹 서버(Web Server) - HTTP 기반으로 동작 - 정적 리소스 제공, 기타 부가기능 - 정적(파일) HTML, CSS, JS, 이미지, 영상 ex) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) - HTTP 기반으로 동작 - 웹 서버 기능 포함(정적 리소스 제공 가능) - 프로그램 코드를 실행해서 애플리케이션 로직 수행 - 동적 HTML, HTTP API(JSON) - 서블릿, JSP, 스프링 MVC ex) 톰캣(Tomcat) Jetty, Undertow * WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다 웹 시스템 구성1 - WAS, DB - WAS, DB 만으로 시스템 구성 가능 - WAS는 정적 리소스, 애플리케이션 로직 모두..
1. 이벤트 뷰어 이벤트 뷰어 > Windows 로그 > 시스템 > 현재 로그 필터링... > 6005, 6006, 6008로 필터링 (이벤트 뷰어는 시작 버튼 우클릭 > 이벤트 뷰어 또는 실행 > eventvwr.msc를 통해 실행할 수 있다) 6005 : 이벤트 로그 서비스 시작, 부팅 시 기록 6006 : 정상적인 시스템 종료 시 기록 6008 : 비정상적인 시스템 종료 시 기록 ※ 참고 : 4624 - 계정 로그인 / 4647 - 계정 로그아웃 2. CMD (1) net stats work (2) systeminfo | findstr -i "Time: 시간:" (3) wmic os get lastbootuptime
YAML .yaml / .yml 의 확장자를 가지는 데이터 직렬화 양식 중 하나 문법 yaml이 지원하는 자료형 Integer: 5 String: "text" fload: 5.0 boolean: true 리스트 # 가장 기본적인 리스트 - item1 - item2 - item3 # 중첩 리스트 : 하위 항목의 대시 앞에 공백을 입력해준다. - - item1 - item2 - - item3 - item4 # 대괄호를 사용하여 표현할 수도 있다. [item1, item2, item3]맵 # 가장 기본적인 맵 key1: value1 ket2: value2 # 중괄호를 사용하여 표현할 수 있다. {key1: value1, key2: value2}리스트와 맵 # 리스트와 맵을 섞어서 사용할 수 있다. animal..
트리의 중앙 정점 트리에서 다른 모든 정점까지의 거리의 합이 최소가 되는 정점 중앙 정점을 구하기 위해서는 트리의 임의의 정점에서 다른 모든 정점까지의 거리의 합을 알아야 한다. i에서 i의 서브트리에 속하는 모든 정점들까지의 거리의 합을 vSum[i], i에서 i의 서브트리에 속하지 않는 모든 정점들까지의 거리의 합을 rSum[i] 이라 할 때, 정점 i에서 다른 모든 정점까지의 거리의 합은 vSum[i] + rSum[i]로 나타낼 수 있다. 1. i에서 i의 서브트리에 속하는 모든 정점들까지의 거리의 합 (vSum[i]) vSum[i]을 구하기 위해서는 i의 직계 자손들을 서브트리의 루트로 하는 정점들의 vSum[i의 직계자손]와 그 서브트리에 속하는 총 정점의 수(vCount[i의 직계자손])가 필..
크루스칼 알고리즘 : Kruskal's Algorithm 최소 비용 신장 부분 트리(MST)를 찾는 알고리즘 Spanning Tree : 신장 트리 트리의 특수한 형태로 모든 정점들이 연결되어 있고 사이클을 포함하지 않는 트리 ( * 한 노드에서 다른 노드에 이르는 경로가 오직 하나 뿐인 트리 ) MST(Minimum Spanning Tree) : 최소 신장 트리 Spanning Tree 내 모든 간선의 가중치의 합이 최소인 트리 시간 복잡도 O(ElogV) * 변의 개수 : E, 꼭짓점의 개수 : V 과정 1. 정점별로 parent를 자기 자신으로 초기화 해준다. 2. 입력으로 주어진 간선들을 가중치를 기준으로 오름차순 정렬해준다. 3. 간선을 순서대로 순회하면서 양 끝 정점의 parent를 확인하고(..
다익스트라 알고리즘 : Dijkstra Algorithm 그래프에서 특정 꼭짓점에서 다른 모든 꼭짓점 간의 최단 경로를 찾는 알고리즘 시간 복잡도 1. 우선순위 큐를 사용하지 않는 경우 : O(V^2) 2. 우선순위 큐를 사용하는 경우 : O(ElogV) 코드 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106import java.util.ArrayList;import java.uti..
문제 www.acmicpc.net/problem/2623 2623번: 음악프로그램 첫째 줄에는 가수의 수 N과 보조 PD의 수 M이 주어진다. 가수는 번호 1, 2,…,N 으로 표시한다. 둘째 줄부터 각 보조 PD가 정한 순서들이 한 줄에 하나씩 나온다. 각 줄의 맨 앞에는 보조 PD가 담당한 www.acmicpc.net 문제해결방법 이 문제는 정해진 순서를 지키면서 가수들의 출연 순서를 정하는 문제였고 위상 정렬을 이용해서 풀었다. 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273package baekj..
문제 programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 문제해결방법 이 문제는 니니즈 친구들의 수를 기준으로 이진탐색을 해서 최대로 가능한 인원을 구해주었다. 코드 123456789101112131415161718192021222324252627282930313233343536package Programmers; public class Solution_징검다리건너기 { public static boolean isCross(int[] stones, int count, int k) { int stone = 0; for(int i=0; i