분류 전체보기
-
투 포인터(two pointer)란 무엇인가CS지식/알고리즘 2021. 7. 22. 12:51
투 포인터를 알아보기 전에 포인터(pointer)란 무엇을 의미할까? 포인터(pointer)는 프로그래밍 언어에서 다른 변수, 혹은 그 변수의 메모리 공간주소를 가리키는 변수를 의미한다. arr = [1,2,3,4,5] pointer = arr[0] 위 코드를 포연 5개의 요소를 가지고 있는 배열을 가지고 있는 arr이라는 변수가 있다. 그리고 이 arr 변수가 차지하고 있는 메모리 공간 중에 0번째 인덱스 번호를 가지고 있는 요소를 가리키는 pointer라는 변수가 있다. 여기서 pointer라는 변수가 우리가 정의한 포인터라는 것이다. (포인터가 가리키는 값을 가져오는 것을 역참조라고 한다.) 그러면 투 포인터는 무엇일까? 위에서 설명한 포인터를 2개를 활용하는 것으로 여러 가지 방식이 있지만 대체적..
-
[스터디 13주차] I/O프로그래밍 언어/JAVA 2021. 7. 20. 17:51
더보기 목표: 자바의 Input과 Ontput에 대해 학습 1. 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O 스트림(stream)은 어느 한 쪽에서 다른 쪽으로 데이터를 전달할수 있도록 해주는 연결 통로같은 것이다. 스트림은 단방향통신만 가능하기때문에 입력과 출력을 동시에 처리하기 위해서는 입력을 위한 스트림과 출력을 위한 스트림, 2개의 스트림이 있어야한다. 채널(Channel)은 스트림과 달리 양방향으로 입력과 출력이 가능하다. 버퍼(buffer)는 byte, char, int 등 기본 데이터 타입을 저장할 수 있는 저장소로서, 배열과 마찬가지로 제한된 크기에 순서대로 데이터를 저장한다. 버퍼는 데이터를 저장하기 위한 것이지만 실제로 버퍼가 사용되는 것은 ..
-
SW 사관학교 정글 2기 지원후기 (지원서 작성, 1차 시험, 인터뷰)기타/SW 사관학교 정글 2021. 7. 19. 00:55
오늘은 SW 사관학교 정글 2기 지원 후기를 작성해보려고 한다. SW 사관학교 정글에 대한 자세한 설명은 아래의 링크를 참고하면 좋을 것같다. https://swjungle.net/ SW사관학교 정글 5개월 간의 합숙 과정을 거쳐 5~10년에도 성장하는 개발자로 거듭나세요 swjungle.net SW 사관학교 정글 지원과정은 위 사진과 같이 이루어졌다. 1. 시험 접수 먼저, 시험 접수이다. 2주 간의 시간이 주어지고 지원하기 위해 5만원의 입시료가 필요하다. 지원부터 5만원을 지불한다는 것이 취준생 입장에서는 많이 부담되겠지만 개인적인 생각으로 개발자가 되겠다는 꿈을 가지고 도전 중이라면 5만원은 아깝지 않고 좋은 경험을 할 수 있는 기회라고 생각한다. 그리고 지원 접수는 google form으로 이루..
-
로그(log)란 무엇인가CS지식/네트워크 2021. 7. 18. 23:09
우리는 지금까지 클라이언트와 서버가 HTTP를 통해 서로 통신을 하는 것을 배웠다. 클라이언트는 수 많은 요청을 보낼 것이고 서버는 그에 대한 응답을 해준다. 이러한 상황에서 모든 서버와 중개자로 사용되는 프락시는 처리했던 HTTP 트랜잭션을 요약해서 기록해 놓는데 이를 로그라고 한다. 그러면 지금부터 어떠한 정보를 로그로 남기는지, 로그 포맷을 어떠한지 알아보자. 로그는 왜 남길까? 로그는 남기는 이유는 보통 서버나 프락시의 문제를 찾거나 웹 사이트 접근 통계를 내기위해 진행된다. 로깅을 통해 나온 통계는 마케팅, 장비 조달 계획 등을 세우는데 유용하게 쓰일 수 있다. 그렇다고해서 모든 HTTP 트랜잭션의 헤더를 로그로 남긴다면 너무나 많을 것이고 감당하기 힘든 데이터가 될 것이다. 그래서 보통 트랙잭..
-
쉽게 배우는 운영체제(저자 조성호) 후기CS지식/운영체제 2021. 7. 18. 21:09
쉽게 배우는 운영체제 후기 2021년 05월 18일, KOCW에서 제공하는 반효경 교수님의 운영체제 수업을 완강하고 조금 더 기초를 튼튼히 하고자 책을 찾아 나섰다. 처음에는 많은 사람들이 추천해주는 공룡책으로 유명한 운영체제라는 책을 선택했다. http://www.yes24.com/Product/Goods/89496122 운영체제 - YES24 www.yes24.com 하지만, 이 선택은 너무나도 멍청한 선택이였다. 일단은 그냥 남들이 좋아요 괜찮아요라고 한 말에 이끌리고 내가 정말 읽기 괜찮은지 생각을 안해보고 무작정 책을 빌려왔기 때문이다. 물론, 컴퓨터공학 전공생이라면 공룡책을 보고 독학을 하며 배운 내용을 리마인드할 수도 있다. 하지만, 운영체제 기초를 다지기에는 비전공자로서 너무 책이 어렵고 ..
-
디렉토리(directory)란 무엇인가CS지식/운영체제 2021. 7. 17. 22:41
디렉토리(directory)는 서로 관련 있는 파일을 하나로 모아놓은 것이다. 디렉토리는 1개 이상의 파일을 가질 수 있고 1개 이상의 자식 디렉토리를 가질 수도 있다. 즉, 하나의 디렉토리에는 여러 개의 파일과 자식 디렉토리가 존재한다. 이렇게 디렉토리 안에 여러 개의 파일과 자식 디렉토리가 존재하면 마치 여러 층으로 구성된 것처럼 보인다. 여기서 최상위에 있는 디렉토리를 루트 디렉토리라고 한다. 디렉토리의 구조 초기 파일 시스템의 디렉토리 구조는 1단계 구조였다. 1단계 디렉토리 구조에서는 루트 디렉토리에 새로운 디렉토리를 만들 수 있지만 디렉토리 안에 자식 디렉토리를 만들 수는 없었다. 1단계 디렉토리 구조는 파일이 많아지면 불편하여 다단계 디렉토리 구조가 등장했다. 다단계 디렉토리 구조는 루트 디..
-
HTTP/2.0이란 무엇인가CS지식/네트워크 2021. 7. 16. 21:54
우리는 현재 HTTP의 버전으로 1.1을 보편적으로 사용하고 있다. 그렇지만 HTTP를 개발하는 그룹에서는 HTTP의 성능 문제를 개선하기 위해 HTTP/2.0을 만든 중에 있다. 그러면 HTTP/2.0은 HTTP/1.1과 어떠한 차이점이 있는지 현재까지 알려진 보안 이슈는 무엇인지에 대해 알아보자. HTTP/2.0의 등장 배경 기존의 HTTP 메시지 교환 방신은 하나의 커넥션을 통해 클라이언트가 요청 하나를 보내면 서버는 그에 대한 응답 하나만을 보내는 방식이였다. 이러한 방식은 응답을 받아야만 다음 요청을 보낼 수 있기에 심각한 지연을 야기할 수 있는 문제가 있다. 이 문제를 회피하기 위해 병렬 커넥션이나 파이프라인 커넥션을 도입했지만 성능 개선에 대한 근본적인 해결책은 되지 못했다. 이제는 근본적인..
-
RAID란 무엇인가CS지식/운영체제 2021. 7. 15. 22:59
RAID는 자동으로 백업을 하고 장애가 발생하면 복구하는 시스템으로 동일한 규격의 디스크를 여러 개 모아 구성하며 장애가 발생했을 때 데이터를 복구하는 데 사용된다. RAID는 왜 나오게 된 것일까? 요즘 시대에 아마도 휴대폰은 하나씩 소유하고 있을 것이다. 휴대폰 뿐만 아니라 PC, 카메라 등 다양한 개인 디지털 기기가 늘어나면서 개인 데이터의 크기도 급격히 증가하게 되었다. 이러한 데이터를 저장장치에 보관할 때는 백업을 해야한다. 그 이유는 하드디스크에 저장된 데이터가 영구적일 것 같지만 하드디스크도 수명이 존재하고 기타 저장매체에는 최대 사용 횟수가 정해져 있기 때문이다. 따라서 저장장치에 있는 중요한 데이터는 수시로 백업을 해주어야하는데 이를 수동으로 하면 매우 귀찮을 것이다. 또한 얼마나 자주해..