전체 글

전체 글

    [Web]  DNS란 무엇인가?

    [Web] DNS란 무엇인가?

    ❏ DNS 원하는 서비스를 제공받기 위해 서버에 요청을 할 때, 서버의 IP 주소를 알아야 한다. 하지만, IP 주소처럼 복잡한 숫자들을 기억할 필요 없이, 전화번호부처럼 도메인을 정의해 편리하게 접속한다. DNS(Domain Name System)이란, 바로 이 전화번호부가 저장되는 곳이다. 네트워크를 통해서 도메인 정보를 저장하고 조회한다. ❍ DNS Spoofing DNS로 보내는 요청을 가로채서 그에 대한 응답으로 변조된 IP를 전송한다. ❍ A Record vs. CNAME A Record는 도메인을 서버의 IP와 직접 연결되어 속도가 빠르다. CNAME은 서버의 IP가 유동적으로 변하는 경우, 그 IP에 일정하게 연결되는 다른 도메인(Canocical NAME)을 연결하는 것이다. ex. AWS

    [BOJ/Python] 연산자 끼워 넣기 || DFS

    [BOJ/Python] 연산자 끼워 넣기 || DFS

    백준 연산자 끼워 넣기 파이썬 14888 14888번: 연산자 끼워넣기첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱www.acmicpc.net더보기❍ 문제N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다.우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다.예를 들어, 6개의 수로..

    [Programmers/Python] 괄호 변환

    [Programmers/Python] 괄호 변환

    프로그래머스 괄호 변환 파이썬 60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 ❍ 문제 설명 카카오에 신입 개발자로 입사한 **"콘"**은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 "콘"은 소스 코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄..

    [BOJ/Python] 경쟁적 전염 || BFS

    [BOJ/Python] 경쟁적 전염 || BFS

    백준 경쟁적 전염 파이썬 18405 18405번: 경쟁적 전염첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치www.acmicpc.net더보기❍ 문제NxN 크기의 시험관이 있다. 시험관은 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 바이러스가 존재할 수 있다. 모든 바이러스는 1번부터 K번까지의 바이러스 종류 중 하나에 속한다.시험관에 존재하는 모든 바이러스는 1초마다 상, 하, 좌, 우의 방향으로 증식해 나간다. 단, 매 초마다 번호가 낮은 종류의 바이러스부터 먼저 증식한다. 또한 증식 과정에서 특정한 칸에 이미 어떠한 바이러스가..

    [Spring] filter 내에서 발생한 예외 처리하기 || AuthenticationEntryPoint, AccessDeniedHandler

    들어가며 이전 포스팅에서 전역 예외 핸들러를 만들어주며, 서비스에서 발생하는 Exception을 처리해주는 과정을 정리해보았습니다. 그러나, 필터에서의 예외는 해당 핸들러로 처리할 수가 없습니다. 따라서, 인가와 인증 과정을 거치는 필터 내에서 발생하는 예외를 처리하는 과정을 다뤄보겠습니다. ❏ 요청과 응답의 과정 먼저, 요청과 응답이 어떠한 과정을 거치는 지부터 간단하게 정리해보겠습니다. 1. 클라이언트로부터 들어온 요청은 Servlet Filter를 거치게 됩니다. 해당 과정을 통해 필요한 수정이나 처리 과정을 거치게 되며, 필터를 통과한 요청은 DispatcherServlet으로 전달되게 됩니다. 2. DispatcherServlet은 클라이언트로부터 들어온 요청을 검사하여 적절한 Controlle..

    [BOJ/Python] 연구소 || DFS, BFS

    [BOJ/Python] 연구소 || DFS, BFS

    백준 연구소 14502 파이썬 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 더보기 ❍ 문제 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모..

    [BOJ/Python] 특정 거리의 도시 찾기 || DFS, BFS

    [BOJ/Python] 특정 거리의 도시 찾기 || DFS, BFS

    백준 18352 특정 거리의 도시 찾기 파이썬 18352번: 특정 거리의 도시 찾기첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개www.acmicpc.net더보기❍ 문제어떤 나라에는 1번부터 N번까지의 도시와 M개의 단방향 도로가 존재한다. 모든 도로의 거리는 1이다.이 때 특정한 도시 X로부터 출발하여 도달할 수 있는 모든 도시 중에서, 최단 거리가 정확히 K인 모든 도시들의 번호를 출력하는 프로그램을 작성하시오. 또한 출발 도시 X에서 출발 도시 X로 가는 최단 거리는 항상 0이라고 가정한다.예를 들..

    [BOJ/Python] 치킨 배달 || 구현

    [BOJ/Python] 치킨 배달 || 구현

    백준 15686 치킨 배달 파이썬 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 더보기 ❍ 문제 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는..

    [Programmers/Python] 기둥과 보 설치 || 구현

    [Programmers/Python] 기둥과 보 설치 || 구현

    프로그래머스 기둥과 보 설치 파이썬 60061 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 ❍ 문제 빙하가 깨지면서 스노우타운에 떠내려 온 **"죠르디"**는 인생 2막을 위해 주택 건축 사업에 뛰어들기로 결심하였습니다. "죠르디"는 기둥과 보를 이용하여 벽면 구조물을 자동으로 세우는 로봇을 개발할 계획인데, 그에 앞서 로봇의 동작을 시뮬레이션 할 수 있는 프로그램을 만들고 있습니다. 프로그램은 2차원 가상 벽면에 기둥과 보를 이용한 구조물을 설치할 수 있는데, 기둥과 보는 길이가 1인 선분으로 표현되며 다음과 같은 규칙을 가지고 있습니다. 기둥..

    [BOJ/Python] 뱀 || 구현

    [BOJ/Python] 뱀 || 구현

    백준 3190 뱀 파이썬 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 더보기 ❍ 문제 'Dummy' 라는 도스 게임이 있다. 이 게임에는 뱀이 나와서 기어 다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어 다니다가 벽 또는 자기 자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할 때 뱀은 맨 위 맨 좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동..