전체 글 464

DNS 매핑 및 웹 서버 연동

DNS & HOST DNS는 도메인 네임 시스템, 즉, 도메인 이름을 뜻한다. 예를들어 네이버는 www.naver.com이 DNS이다. IP를 기억하기 쉽게 하기 위해 사람에게 친숙한 영단어로 도메인 네임을 구축한다. (DNS) www.naver.com -> (IP) 220.95.233.172 HOST는 쉽게 말하면 컴퓨터 한 대를 뜻하는데, 예를들어 스케일 아웃 방식으로 여러대의 서버를 구축하고 업로드 API를 10개 구축했을때, 업로드 API 01, 02, 03 ... 이런식으로 운영이 될 것이다. 이때 IP만으로 여러개의 API를 관리하면 번거로우므로, HOST도 같이 활용하는 것이다. test1.api.org test2.api.org test3.api.org ... DMZ Zone 내부에서는 이렇..

블루그린배포와 서버 부하분산을 위한 네트워크

스케일업 - 스케일아웃 = 블루그린배포 스케일업은 단일 서버(하드웨어) 장비의 성능을 증가시키는 것이다. 스케일아웃은 동일한 사양의 새로운 서버(하드웨어) 장비를 추가하는 것이다. 요약하면 스케일업은 Quality를, 스케일아웃은 Quantity를 증가시키는 것이다. 블루그린 배포는 기존에 운영중인 소스와, 향후 업데이트될 버젼의 소스를 나누는 방식이다. 예를 들어 로드 밸런서를 활용해 2개의 버젼(구버젼, 신버젼)을 배포한다. 신버젼을 테스트 한 뒤, 문제가 없다고 판단될 경우 구 버젼의 트래픽을 신버젼으로 보내면 된다. 서버 부하 분산을 위한 네트워크 서버 부하가 발생할 경우, 분산을 진행하기 위해 네트워크에 대해 잘 알고 있어야 한다. * 서버 : 무언가 제공하는 대상 * 부하 : load (= 짐..

백준 18430번 무기공학 (C++)

문제 링크 : https://www.acmicpc.net/problem/18430 18430번: 무기 공학 첫째 줄에는 길동이가 가지고 있는 나무 재료의 세로, 가로 크기를 의미하는 두 자연수 N, M이 주어진다. (1 ≤ N, M ≤ 5) 다음 N개의 줄에 걸쳐서, 매 줄마다 나무 재료의 각 위치의 강도를 나타내 www.acmicpc.net 문제 요약 핵심 포인트 백 트래킹을 활용해서 풀면 됩니다. 이때 부메랑을 만들 수 있는 4가지 모양을 판별하는 것이 중요합니다. 부메랑의 모양은 일반적인 회전 모형처럼 for문을 돌려서 판별할 경우 갔던 경로를 되돌리는 과정의 구현이 번거로울 수 있으므로, for문을 사용하지 않고 각각 별개로 구현하는 것을 권장합니다. 문제 풀이 전체 코드입니다. #include ..

백준 6987번 월드컵 (C++)

문제 링크 : https://www.acmicpc.net/problem/6987 6987번: 월드컵 월드컵 조별 최종 예선에서는 6개국으로 구성된 각 조별로 동일한 조에 소속된 국가들과 한 번씩, 각 국가별로 총 5번의 경기를 치른다. 조별리그가 끝난 후, 기자가 보내온 각 나라의 승, 무승부 www.acmicpc.net 문제 요약 1. 6개의 팀이 서로 한 번씩 경기를 진행합니다. 승부의 결과는 승리 / 무승부 / 패배 3가지 입니다. 2. 4개의 테스트 케이스가 주어졌을때, (테스트 케이스 1줄 당 18개의 숫자가 입력됨) 해당 테스트 케이스가 가능한 경우인지 확인하세요. 3. 주어진 4개의 테스트에 대하여 가능한 경우 1을, 불가능한 경우 0을 공백을 한칸씩 띄고 출력하세요. 핵심 포인트 불가능한 ..

백준 16508번 전공책 (C++)

문제 링크 : https://www.acmicpc.net/problem/16508 16508번: 전공책 곧 졸업을 앞둔 민호는 대학교 생활 동안 구매만 해놓고 한 번도 펴보지 않은 전공책에 먼지가 쌓여 있는 것을 보고는, 이 책들을 어떻게 처리해야 할지 고민 중이다. 열심히 고민한 끝에 민호는 www.acmicpc.net 문제 요약 1. 민호가 만들고자하는 단어인 문자열 T(1 ≤ |T| ≤ 10)가 주어진다. T는 항상 대문자이다. 2. 민호가 가진 전공책의 개수 N과, N개의 전공책 가격 Ci (10,000 ≤ Ci ≤ 100,000), 전공책 제목을 의미하는 문자열 Wi (1 ≤ |Wi| ≤ 50)가 주어진다. Wi는 항상 대문자이다. 3. 민호가 만들고자 하는 문자열을 만들기 위해 사용해야하는 전..

Authorization 매커니즘

AOP : Aespect Oritented Programming 스프링 전반을 아우르는 여러 철학이 있는데, 가장 중요한 철학은 DI(의존성 주입)이다. 개발자가 직접 코딩하지 말고 컨테이너에게 맡기라는 말이다. DI를 통해 약한 상관성(Loosely coupled)을 설계할 수 있고 모듈화를 완성할 수 있다. DI와 함께 매우 중요한 철학이 관심사의 분리인데, 코드를 스파게티로 엮지 말고 관심이 있는 코드들을 따로 관리하라는 것이다. 관심사 분리가 가능한 이유는 AOP 기술 덕분이며, AOP는 아래와 같은 개념들로 구성된다. Aspect : 공통의 관심사 권한 처리 로그 트렌젝션 관리 세션관리 기타... Weaving 빈과 빈을 Proxy 로 감싸서 연결해주는 작업 빈과 빈의 호출사이에 PointCut..

Authentication 메커니즘

인증 vs 인가 인증 (Authentication) : 특정 리소스에 접근하려고 하는 사용자가 누구인지를 확인하는 절차다. 보통 사용자가 이름과 비밀번호을 입력하는 것으로 사용자를 인증한다. (로그인) 한 번 인증하고 나면 사용자를 식별하고 권한을 부여할 수 있다. (세션) 인가 (Authorization) : 인증된 사용자가 어떠한 자원(URI)에 접근 할 '권한'이 있는지 판별한다. 인증 (Authentication) (1) Authneication은 인증된 결과만 저장하는 것이 아니고, 인증을 하기 위한 정보와 인증을 받기 위한 정보가 하나의 객체에 동시에 들어 있다. 왜냐하면, 인증을 제공해줄 제공자(AuthenticationProvider)가 어떤 인증에 대해서 허가를 내줄 것인지 판단하기 위해..

백준 19640번 화장실의 규칙 (C++)

문제 링크 : https://www.acmicpc.net/problem/19640 19640번: 화장실의 규칙 위와 같이 줄을 선 경우를 생각해보자. (x, y) 는 사원의 근무 일수가 x, 화장실이 급한 정도가 y임을 나타낸다. [x, y]는 해당 사원이 데카임을 의미한다. 즉, 위의 그림에서 데카는 3번 사원이다. www.acmicpc.net 문제 요약 1. n명의 사원들이 도착한 순서대로 m개의 줄로 나열된다. 이때 주인공인 데카의 앞에는 k명의 사람들이 있다. (ex : n=6, m=3, k=2일 경우, 데카는 3번째 줄의 첫 번째 순서로 서게된다.) 2. n명의 사원수 만큼 근속일수, 화장실의 급한 정도의 값을 입력 받는다. 3. 다음의 우선순위대로 화장실을 이용하게 된다. 4. 데카의 앞에는 ..

map과 unordered_map, 그리고 map과 value 정렬

map과 unordered_map의 차이 요약 map unordered_map 시간복잡도 O(logN) O(1) 데이터 정렬 레드블랙 트리 (Red-Black Tree) -> 중복허용 X, Key를 기준으로 오름차순 자동정렬 해시테이블 (Hash Table) -> 중복허용 X, 정렬되지 않음 권장하는 사용법 1. 데이터 양이 보다 적을때 권장 2. Key를 이용하여 정렬을 해야할때 권장 대량의 데이터를 저장할때 권장 * 레드블랙트리 : 이진탐색트리의 일종 * 해시테이블 : 키 값을 주소로 사용 map활용 예시 : 사용된 영어 단어들을 1. 빈도순 2. 문자순으로 정렬 예를들어 사용된 단어들이 1. 많이 사용됐을수록, 2. 사전순으로 앞에 올수록 더 앞에 위치하게 정렬을 한다고 가정해보자. map을 사용하..