IntelliJ IDEA shortcut key
OPEN 내용 단축키 구문 자동 수정 ⌥ + ↩ 파일 찾기 ⌘ + ⇧ + o 클래스 찾기 ⌘ + o 심볼 찾기 ⌘ + ⌥ + o 액션 찾기 ⌘ + ⇧ + a 설정 ⌘ + , 프로젝트 설정 ⌘ + ; TAB 내용 단축키 탭이동 - 왼쪽 ⌘ + ⇧ + [ 탭이동 - 오른쪽 ⌘ + ⇧ + ] 이전 커서 위치로 이동 ⌘ + [ 다음 커서 위치로 이동 ⌘ + ] NAVIGATE 내용 단축키 네비게이션바 이동 ⌘ + ↑ EDITOR 내용 단축키 라인 찾아가기 ⌘ + l 라인 삭제 ⌘ + Delete 아래 줄 삽입 ⇧ + ↩ 대문자, 소문자 변환 ⌘ + ⇧ + u 기본 자동 완성 ⌃ + Space 임포트 정리 ⌃ + ⌥ + o 사용하는 곳 찾기 ⌥ + F7 파일 이름 변경 ⇧ + F6 클래스, 변수, 메소드 이름 변경 ⌃ + ⇧ + r 파라미터 정보 보기 ⌘ +...
마크다운
정의 HTML(Hyper Text Markup Language)은 마크업 언어다. 그렇다면 마크다운은 무엇일까? 마크업이란 mark로 둘러싸인 언어, 즉 tag로 둘러싸인 언어를 뜻한다. 마크다운은 존 그루버(John Gruber)와 아론 스워츠(Aaron Swartz)가 만들었다. 마크다운의 장점은 가독성이 좋고 텍스트만으로 작성할 수 있어 용량 부담이 적다는 것이다. 다양한 포맷으로 변환도 가능하며, 마크업 구문을 함께 작성해도 호환된다. 그루버는 작성한 마크다운 문서를 마크업 문서 파일로 바꿔주는 Perl 스크립트를 만든 인물이기도 하다. 단점은 표준이 없다는 점이다. 사용하는 에디터나 페이지에 따라 렌더링 결과가 다르고, 파편화된 만큼 확장 문법도 많아 익혀야 할 문법이 다양하다. 일상생활에서 접해본 경험 페이스북에서 쓰는 태그 기능이 대표적인 마크다운의 예다. @가 붙은 문자열을 자동으로 태그로 인식하는 방식이 그렇다. 문법(Syntax) 1234567891011121...
컴퓨터 네트워크
네트워크 개념 네트워크(net + work)는 컴퓨터, 프린터 같은 장치들을 그물 형태로 서로 연결한 것이다. 이렇게 연결하면 소프트웨어와 데이터베이스를 공유하며 더 효율적으로 작업할 수 있는 환경이 만들어진다. 네트워크 역사 네트워크는 봉화대에서 시작해 전신 기술, 전화를 거쳐 컴퓨터, 그리고 아파넷으로 발전해왔다. 네트워크의 성능은 성능, 신뢰성, 보안이라는 기준으로 평가하며, 서로 연결된 장치들이 데이터를 공유하고 교환하는 것을 데이터 커뮤니케이션이라 부른다. 데이터 통신의 구성요소 데이터 통신은 송신자, 수신자, 메시지, 전송매체, 프로토콜이라는 다섯 요소로 이루어진다. 통신 프로토콜 프로토콜은 네트워크가 동작하도록 정해놓은 규칙으로, 데이터를 주고받을 때 수행되는 절차를 말한다. 주소지정, 순서지정, 단편화와 재조합 같은 기본 기능 외에도 흐름제어, 연결제어, 오류제어, 캡슐화, 동기화, 다중화 같은 기능을 수행한다. 소프트웨어 계층 네트워크 소프트웨어는 상위계층(응용...
침입 차단 시스템 - Firewall
개념 침입 차단 시스템(방화벽)은 인터넷 같은 외부 네트워크에서 비인가자[1]가 내부망으로 불법 접근하거나 접속을 시도하는 것을 막기 위한 시스템으로, 내부 네트워크를 방어하는 보안 경계선 역할을 한다. 원리 방화벽은 외부 네트워크에서 들어오는 모든 접근 시도를 일단 거부(deny)한 뒤, 사전에 설정된 보안 규칙에 따라 허용할 접근만 단계적으로 허용(permit)하는 방식으로 동작한다. 접근 제어 리스트(ACL)를 기준으로 패킷을 허용하거나 거부해 트래픽을 제어하고, 로깅과 감사 추적, 무결성 체크, 주소 변환, 사용자 인증 같은 기능도 함께 수행한다. 기술에 따른 분류 패킷 필터링 방화벽은 송수신되는 데이터 패킷의 IP 주소와 TCP/IP 헤더 정보를 활용한다. 성능은 높지만 보안 수준은 낮은 편으로, 헤더 정보만으로 접속을 제어하다 보니 데이터 내용 자체는 분석할 수 없어 IP 스푸핑 공격에 취약하다. **상태분석형 방화벽(Stateful Inspection)**은 상태 ...
HTTP 상태 코드
들어가기 전에 RESTFul API 설계를 위한 기본적인 상태 코드 상태 코드가 필요한 이유는 오류가 발생할 경우 서버에서 클라이언트에 응답하기 위해서이다. 코드 설명 100 (Continue) 서버가 요청의 초기부분을 수신하였고, 다음 요청을 기다리는 상태이다. 101 (Switching Protocols) HTTP -> HTTPS 프로토콜 전환이 발생했을 때 전환이 승인됨을 알려주는 응답이다. 200 (OK) 요청에 대해서 성공을 알려주는 응답이다. 201 (Created) 요청에 대해 새롭게 생성되었음을 알려주는 응답이다. (POST 응답으로 적합) 204 (No Content) 요청에 대해서 성공했지만, 클라이언트로 보내는 컨텐츠가 없음을 응답한다. 301 (Moved Permanently) 요청한 리소스에 새로운 URI 가 할당되어 있음을 알려주는 응답이다. 새로운 주소로 이동한다. 304 (Not Modified) 요청을 수행했...

