시스템 보호 보안
보안 기법 암호 암호는 안전한 보호 방법이 따로 없을 때 컴퓨터 시스템 내 객체를 보호하기 위해 사용한다. 자원 이용 요구가 있을 때마다 암호를 요청하고, 암호가 정당하면 그때 액세스를 허용하는 방식으로 동작한다. 암호화 암호화는 신뢰할 수 없는 링크를 통해 전송되는 정보를 보호하는 방법으로 가장 널리 쓰인다. 정보는 전송되기 전에 암호화되고, 목적지에 도달하면 미리 제공된 비밀키로 복호화되는데, 이 과정이 안전하게 이루어져야 안정된 정보 전송이 가능하다. 그만큼 해독하기 어려운 암호화 기법을 개발하는 일이 중요하다. 암호는 비밀성, 인증, 무결성 검사, 전자서명이라는 네 가지 기능을 수행한다. 다만 암호는 비밀을 유지하기가 어렵고, 추측이나 우연한 노출로 알려질 수 있다는 문제도 안고 있다. 대칭형 암호화 기법 대칭형 암호화는 가장 널리 알려진 단일키 암호화 알고리즘으로, 암호화와 복호화 두 알고리즘에 동일한 비밀키(개인키) 하나를 사용해 데이터를 암호화한다. 데이터 암호화 ...
정보처리산업기사
생각 정리 생각을 있는 그대로 정리해야만 했다. 여러 시험을 치러봤지만, 이렇게 합격의 문턱이 높을 줄은 꿈에도 몰랐다. 1회 불합격에는 '나름의 이유가 있었다’는 핑계라도 댈 수 있었지만, 2회 불합격은 온전히 나의 불찰이었다. '누구보다 자신 있다’며 자만했던 스스로를 반성한다. 같은 실수를 반복하지 않으려 하얀 노트 위에 계획을 하나씩 적어본다. 두 달 남짓 남은 시험을 미리 계획하고 준비하는 데는 상당한 노력과 집중이 필요하지만, 다시 오지 않을 2021년을 위해서라면 그 정도는 기꺼이 감수할 수 있다. 유의사항 데이터베이스는 SQLD를 준비했던 경험을 바탕으로 안일하게 생각했다. 알고리즘은 1회차와 2회차 경험상 무난히 넘어갈 수 있을 것 같았지만, C의 자료구조와 재귀함수, 서식 문자열을 자세히 훑어보지 않으면 당황할 수 있다. BCD Code/Gray Code, 모래시계 정렬, 선택 정렬, 버블 정렬, 다차원 배열, 진법 변환 등이 여기 해당한다. 신기술 동향, 전...
파일 관리란?
개요 컴퓨터에서 파일은 단순한 데이터 묶음이 아니라 생성, 수정, 삭제, 접근 제어까지 체계적으로 관리되어야 합니다. 이 과정을 담당하는 것이 바로 파일 관리 소프트웨어입니다. 파일 관리의 주요 역할: 사용자 파일 생성, 수정, 삭제 지원 읽기·쓰기·실행 같은 다양한 액세스 방식 제공 사용자 수, 파일 크기 등 환경에 맞춘 설계 응용 프로그램에 적합한 파일 구성과 디렉터리 구조 결정 파일 관리 기능 파일 시스템이 제공하는 핵심 기능은 다음과 같습니다: 파일 관리: 원하는 구조로 파일을 저장하고 연결 보조 메모리 관리: 하드디스크, SSD 등 다양한 장치 지원 무결성 보장: 데이터 보호 및 암호화 기능 제공 액세스 방식 제공: 순차 접근, 직접 접근 등 다양한 방법 지원 백업과 복구: 파일 손상이나 삭제 시 복원 가능 파일의 구조 파일은 크게 두 가지로 나눌 수 있습니다: 논리적 파일: 파일의 이름, 속성, 디렉터리 구조, 가능한 연산 등 물리적 파일: 실제 디스크에...
상태 정보 유지 기술
등장배경 HTTP 프로토콜은 상태를 유지하지 않는 프로토콜이다. 이 한계를 보완하기 위해 쿠키와 세션이 등장했다. 쿠키(Cookie) 쿠키는 클라이언트 로컬에 저장되는, 키와 값으로 이루어진 작은 데이터 파일이다. 자동 로그인, ‘오늘 하루 더 이상 안 보기’, 쇼핑몰의 장바구니 등에 쓰인다. 클라이언트에는 최대 300개까지 쿠키를 저장할 수 있고, 도메인 하나당 20개의 값만 가질 수 있다. 유지할 정보를 사용자 컴퓨터에 저장하기 때문에, 유효기간이 지나면 사라지고 정보가 유출될 가능성도 상대적으로 높다. 쿠키의 이름은 알파벳과 숫자로만 구성해야 하며 공백, 괄호, 특수기호는 쓸 수 없다. 별도의 삭제 메소드는 없고, maxAge가 0인 이름의 쿠키를 다시 전송하는 방식으로 지운다. maxAge를 음수로 설정하면 브라우저가 종료될 때 함께 삭제되도록 만들 수 있다. 스프링 프레임워크에서는 @CookieValue 어노테이션으로 쿠키 값을 받을 수 있다. 세션(Session) 세...
위대한 수업 (그레이트 마인즈)
짧은 생각 해당 프로젝트를 진행하며 느꼈던 지극히 개인적인 생각들을 복기한다. 2021년 7월 12일 회의를 진행했다. 고객의 요구사항은 넷플릭스와 비슷한 컨셉의 교육 콘텐츠 웹페이지 개발이었다. 팀은 개발자 5명, 퍼블리셔 2명, 기획자 1명, 개발 리드 1명, 프로젝트 매니저 1명으로 총 10명이 구성되었는데, 이전 프로젝트들보다 개발자 비중이 높은 편이었다. 필자는 사용자들의 메시지 관리, 이벤트별 메일, 문자발송, 앱 토큰 API 구현, 메인 카테고리 헤더 화면 등을 맡아 개발을 진행했다. 화면구성은 레이아웃 프레임워크인 SiteMesh를 사용해 유지보수가 편리하도록 했고, AWS SES SDK를 활용해 메시지 관리 시 데이터 통계를 한눈에 확인할 수 있도록 시인성을 높이는 한편, 시크릿키 관리로 보안성도 높였다. 데이터베이스는 PostgreSQL을, JDK는 가장 보편적인 JDK8을 사용했다. 해야 할 일들을 항상 정리하고 그대로 진행하리라 다짐하지만, 지키긴 쉽지...



