전체 글 199

브라우저에 URL을 입력하면 일어나는 일 (2/2)

https://superbono-2020.tistory.com/166 * OSI 모델 레이어는 다양한 추상화 수준을 나타핸다. 웹 브라우저가 존재하는 애플리케이션 계층(7)에서 데이터는 사람이 읽을 수 있는 형식으로 시작된다. 계층을 내려갈수록 데이터는 물리적 매체를 통해 전송될 형식으로 점진적으로 변환된다. 명심해야 할 중요한 사항 중 하나는 이것이 프로토콜이 아니라 모델이라는 것이다. 웹 브라우저는 HTTP 요청 공식화, 데이터 암호화, 상태 비저장 HTTP 프로토콜을 통한 영구 연결 처리와 같은 여러 상위 계층을 함께 수행하는 경우가 많다. 전송 계층은 일반적으로 OS에 의해 처리되며 데이터를 대상으로 지정하고 수신된 데이터가 손상되지 않았는지 또는 올바른 순서로 있는지 확인하는 TCP 및 UDP ..

Web 2021.08.01

백준 2225 합분해 (JAVA 자바)

문제 출처 - https://www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 프로그램을 작성하시오. 덧셈의 순서가 바뀐 경우는 다른 경우로 센다(1+2와 2+1은 서로 다른 경우). 또한 한 개의 수를 여러 번 쓸 수도 있다. 입력 첫째 줄에 두 정수 N(1 ≤ N ≤ 200), K(1 ≤ K ≤ 200)가 주어진다. 출력 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. 문제 유형 DP 코드 import java.io.BufferedReader; import java.io.IOExce..

브라우저에 URL을 입력하면 일어나는 일 (1/2)

브라우저에 URL(예: https://google.com)을 을 입력했을 때 일어나는 일에 대해서 2개의 포스트에 나누어 정리해보겠다. * 간단 개요 인터넷은 Internet Protocol Suite 위에서 동작한다. Internet Protocol Suite는 TCP/IP로 알고 있는 그것이다. 많은 연결 프로토콜이 존재하나, TCP/IP는 웹 서버와 브라우저 사이에서 웹사이트에 대한 정보를 옮기는데 중요한 역할을 한다. 실질적인 데이터는 HTTP 프로토콜에 의해서 다뤄지지만, TCP와 HTTP는 다른 용도로 사용되며 OSI 모델 중 계층도 다르다. HTTP는 7계층 Application Layer이며, TCP는 4계층 Transport Layer이다. 1. 브라우저 주소 창에 URL을 입력하고 엔터..

Web 2021.07.31

백준 20493 세상은 하나의 손수건 (JAVA 자바)

문제 출처 - https://www.acmicpc.net/problem/20493 20493번: 세상은 하나의 손수건 오래된 운동화를 신고, 시원한 공기와 투명한 하늘 아래 따뜻한 햇빛을 받으며 새로 마주하는 이 거리와 손잡고 걷는다. 복잡한 생각 없이 설레는 마음으로 걷다 보면 뛰고 싶고, 같이 달리다 보 www.acmicpc.net 문제 오래된 운동화를 신고, 시원한 공기와 투명한 하늘 아래 따뜻한 햇빛을 받으며 새로 마주하는 이 거리와 손잡고 걷는다. 복잡한 생각 없이 설레는 마음으로 걷다 보면 뛰고 싶고, 같이 달리다 보면 숨이 차다. 헐떡거리며 주저앉는 순간에도, 세상은 한 장의 손수건 같다. 준원이는 천하제일코딩대회가 진행 중인 지금 구름같이 행복한 하루를 보내고 있지만, 애석하게도 여러분은 ..

백준 2589 보물섬(JAVA 자바)

https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 문제 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 이동은 상하좌우로 이웃한 육지로만 가능하며, 한 칸 이동하는데 한 시간이 걸린다. 보물은 서로 간에 최단 거리로 이동하는데 있어 가장 긴 시간이 걸리는 육지 두 곳에 나뉘어 묻혀있다. 육지를 나타내는 두..

MyBatis 오류: Invalid bound statement (not found)

JUnit 테스트를 돌리다 만나게 된 에러인데 어떨 때 발생하는지 정리해두려고 포스팅을 한다. 1. mapper-locations 명시 안했을 경우 쿼리를 작성한 mapper xml 파일이 위치한 경로를 application.properties에 적어놔야 하는데 이걸 하지 않았을 경우 발생한다. 따라서 현재 개발하고 있는 프로젝트의 상황에 맞게 작성해주어야 한다. 예시) mapper 폴더가 있는 경우 mybatis.mapper-locations:classpath:mapper/*.xml 이렇게 적어주었다. 2. xml 파일과 dao 인터페이스가 어딘가 달라서 xml 파일에 오타가 있을 수 있고, 혹은 xml에서 id와 인터페이스에서 메소드 이름이 달라서 발생할 때에도 있다. 다만 xml 쿼리가 틀렸을 경우..

Web 2021.07.30

추상 클래스 (Abstract class)

* 추상 클래스 (Abstract class) 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면 이 클래스의 공통적인 특성을 추출해서 선언한 클래스를 추상 클래스라고 한다. 추상 클래스와 실체 클래스는 상속의 관계를 가지고 있다. 추상 클래스가 부모이고 실체 클래스가 자식으로 구현되어 실체 클래스는 추상 클래스의 모든 특성을 물려받고, 추가적인 특성(필드, 메소드)를 가질 수 있다. 추상 클래스는 실체(구현) 클래스의 공통되는 필드와 메소드를 추출해서 만들었기 때문에 객체를 직접 생성해서 사용할 수 없다. 다시 말해서 추상 클래스는 new 연산자를 사용해서 인스턴스를 생성시키지 못한다. * 추상 클래스의 용도 1. 실체 클래스들의 공통된 필드와 메소드의 이름을 통일할 목적 실체 클래스를 설계하..

JAVA 2021.07.29

백준 11727 2Xn 타일링2 (JAVA 자바)

문제 출처 - https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 문제 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 문제 유형 다이나믹 프로그래밍(DP) 코드 import java.util.Scanner; pub..

HTTPS(HyperText Transfer Protocol Secure)

* HTTPS(HyperText Transfer Protocol Secure) HTTPS(HyperText Transfer Protocol Secure)는 월드 와이드 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전이다. HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다. (HTTP는 암호화하지 않음) 그 결과 데이터의 적절한 보호를 보장할 수 있다. 데이터 전송이 HTTP(: 일반 텍스트)와 달리 함호화된 텍스트이므로 man-in-the-middle 공격이 어렵다. HTTPS는 인증서가 웹 사이트의 신원을 확인하도록 요구한다. * HTTP VS HTTPS 계층 응용 프로그램 계층 전송 계층 암호화 없음 암호화 사용 증명서 필요하지 않..

Web 2021.07.25

BJ1149 RGB 거리(JAVA 자바)

문제 출처 - https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 ..