OSI 7 Layer에 대해서 공부를 해보자. OSI 7 Layer이란 OSI 7 계층은 네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준화 기구(ISO)에서 정의한 네트워크 표준 모델이다. 아래 그림에서 아래부터 1계층(물리 계층) ~ 7계층(응용 계층)으로 구성되어 있다. 이미지 출처 http://wiki.hash.kr/index.php/OSI_7_%EA%B3%84%EC%B8%B5 OSI 7 계층 - 해시넷 OSI 7 계층(OSI 7 Layer) OSI 7 계층(OSI 7 Layer)는 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층간 상호 작동하는 방식을 정해 놓은 것 이다. 이는 ISO(국제표준화기구)에서 개 wiki.hash.kr OSI 7 Layer의 구조 1계층 ..
컨텍스트 스위칭이란 무엇인지 정리를 해보자. 컨텍스트 스위칭이 무엇인가에 대해서 알아보기전에 컨테스트가 무엇인지 알고가자. 컨텍스트(Context) 란 운영체제에서 컨텍스트란 어떤 프로그램이 실행중인 일체의 상황을 말한다. 그 일체의 상황은 메모리와 CPU레지스터들에 고스란히 담겨 있는데 메모리에는 프로그램의 코드와 전역 변수 데이터, 힙(동적 할당받아 저장한 데이터), 그리고 호출된 함수들의 매개변수와 지역변수 등이 저장된 스택이 있다. 그리고 CPU의 PC레지스터에는 현재 실행 중인 코드의 메모리 주소가, 데이터 레지스터에는 이전에 실행된 결과 값이나 현재 실행에 사용될 데이터 값들이, 상태 레지스터에는 현재 CPU의 상태 정보가, SP레지스터에는 스택의 톱 주소가 저장되어 있다. 컨텍스트 스위칭이란..
스크럼이란 스크럼이란 럭비에서 반칙으로 경기가 중단된 경우 양 팀의 선수들이 럭비공을 가운데 두고 상대팀을 밀치기 위해 서로 대치해 있는 대형을 말한다. 스크럼은 이처럼 팀이 중심이 되어 개발의 효울성을 높인다는 의미가 내포된 용어이다. 스크럼의 팀 구성 스크럼 팀은 제품 책임자, 스크럼 마스터, 개발팀으로 구성된다. 제품 책임자(PO : Product Owner) 이해 관계자들 중 개발될 제품에 대한 이해도가 높고, 요구사항을 책임지고 의사 결정할 사람으로 선정하는데, 주로 개발 의뢰자나 사용자가 담당 이해관계자들의 의견을 종합하여 제품에 대한 요구사항을 작성하는 주체 요구사항이 담긴 백로그를 작성하고 백로그에 대한 우선순위를 지정한다. 팀원들이 백로그에 스토리를 추가할 수 는 있지만 우선순위를 지정할..
배열 (Array) 이란 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조이다. 배열은 반복문 등을 이용하여 계산과 같은 과정을 쉽게 처리할 수 있습니다. 배열은 고정된 갯수의 데이터를 저장하는데 사용되는 자료구조이며, 배열의 길이는 배열이 생성될때 설정이 됩니다. 배열의 각 항목을 요소라고 하며, 각 요소는 숫자 인덱스에 의해 접근을 할 수 있습니다. 다만, 파이썬에서는 리스트 타입이 배열 기능을 제공한다. 배열은 왜 필요할까? 같은 종류의 데이터를 효율적으로 관리하기 위해서 사용 같은 종류의 데이터를 순차적으로 저장 // new 키워드를 사용해서, 배열을 미리 선언하고, 데이터를 넣을 수도 있음 Integer[] data_list = new Integer[10]; data_lis..
문제 https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 어떻게 풀 것인가? 문제를 최단경로라는 키워드를 발견 다익스트라 알고리즘이라고 생각했다. 다만 해당 N명의 인원들이 X라는 목적지 파티까지 가는 경로의 최단경로와 그리고 X에서 N명의 인원들이 집까지 가는 최단경로를 구한이후 그 중에 가장큰 거리를 출력해야한다. 풀면서 놓쳤던점 다익스트라에 대한 이해가 부족해서 아래와 같은 블로그를 참고하였다. 나중에 시간이 된..
문제 https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 어떻게 풀 것인가? 처음에는 DP를 생각했다. 하지만 문제를 계속해서 틀렸고, 생각의 흐름을 바꿨다. 그래프를 이용한 BFS 문제였다. 다만 인접행렬이 아닌 일차원 배열 형태의 입접리스트로 풀어야했다. BFS를 이용 visit과 timezone이라는 배열을 생성이후에 100,000이라는 범위에서 시간과 방문형태를 계속 계산한다. 그리고 큐가 전부 비워지면..
var, val 이란 val : 불변 변수로, 값의 읽기만 허용되는 변수. Value의 약자이다. var : 가변 변수로 값의 읽기와 쓰기가 모두 허용되는 변수, Variable의 약자이다. 변수는 값을 저장하는 메모리 공간에 붙는 이름이다. 코틀린에는 두가지의 형을 지원하게 되는데 위에서 설명한 val과 var이다. 위에서 설명한 것 처럼 val과 var은 각각 불변 변수와 가변 변수를 나타내고 있고, 공통적으로 초기화시에 값을 할당하지 않는다면 반드시 Type명시해야한다. 다만 컴파일러가 변수 탕비을 추론할 수 있는 경우에는 Type를 생략해도 된다. val val로 지정된 불변 타입 변수는 초기에 값을 할당되면 나중에 값을 변경할 수 없다. 강제로 변수를 변경하려고 한다면 컴파일 에러가 발생한다. ..
문제 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 문제에 대한 이해 벽을 최대 1개까지 부술수 있으며, 0,0 ~ N-1, M-1까지 가야하는 탐색 문제이다. 어떻게 풀 것인가? 최근에 공부했던 0-1BFS를 응용하여 문제를 접근했다. 다만 응용기법이 잘 못되었는지 계속 틀려서 어쩔수 없이 아랫분의 블로그를 참고했다. https://iseunghan.tistory.com/316 백준 2206번 : 벽 부수고 이동하기..