1. Enum이 뭔가요 한마디로 "정적 클래스"라고 부를 수 있다. enum 안에 정의된 클래스들은 싱글톤이다. 예를들어, Game이라는 enum 클래스 안에 여러 개의 게임을 정의한다고 해보자. 기본 문법은 다음과 같다. 클래스 이름을 ","로 구분하는 것이다. public enum Game { MAPLE_STORY, LOST_ARK, ANIMAL_CROSSING, OVER_WATCH, LEAGUE_OF_LEGEND; } Game이라는 enum 타입 안에 MAPLE_STORY, LOST_ARK, ..., LEAGUE_OF_LEGEND라는 클래스가 정의되었다. 각각의 enum 객체들은 전술했듯 싱글톤이기 때문에 자바 프로세스가 실행되는 동안 한 개 존재하며, 여기저기서 상수처럼 쓰일 수 있다. 기본적으로..
이하 설명은 CPU의 실행 단위인 프로세스와 스레드를 묶어서 "프로세스"라는 용어를 사용하겠다. 1. 멀티 프로세스 / 스레드의 동시성 컴퓨터는 동시에 여러 일을 진행한다. 크롬 탭으로 유튜브 노래를 틀면서 이렇게 글을 작성할 수도 있고, 동시에 카카오톡 pc 앱을 켜서 카카오톡도 이용하고, 그러면서도 연결된 아이폰의 문자 알림을 계속해서 받을 수 있는 것이다. 그렇다고 해서 실제로 컴퓨터가 동시에 2개 이상의 명령어를 수행하는 것은 아니다. 여러 개의 프로세스를 시분할로 번갈아가면서 수행하고 있을 뿐이다. 타자를 치는 것, 타자를 친 결과가 티스토리 에디터에 전달되는 것, 에디터에 전달된 내용이 서버에 올라가는 것, 그 내용이 다시 노트북의 화면에 나타나는 것은 전부 다른 프로세스가 담당한다. 정확히 ..
1. 시저 암호화란? 매우 간단한 치환 암호화이다. 암호화 하고자 하는 plain text를 알파벳 순서 기준으로 일정 거리만큼 밀어서 치환하는 알고리즘을 사용한다. 그림을 보면 더 설명할 것이 없을 정도로 쉽다. 알파벳은 A B C D ... X Y Z까지 순서를 가진다. 2. 초간단 실습 파일의 내용을 줄 단위로 읽어서, 시저암호화를 한 뒤 저장하는 자바 프로그램을 작성하고자 한다. 2-1) 실제 암호/복호화를 하는 기능 CaesarEncryption 클래스는 실제 암호화를 하는 encrypt(), decrypt() 메소드를 작성했다. public final class CaesarEncryption { private final int distance; CaesarEncryption(int distan..
1. HTTPS 사용하는 이유 오늘날 많은 사용하자가 이용하는 사이트에서 http를 사용하는 경우는 거의 없다(http가 무엇인지는 알겠지? 웹 서버 자원에 대한 응답-요청을 위해 사용하는 프로토콜이다). 네이버를 가도, 구글을 가도 URL schema를 확인하면 모두 "https"가 가장 앞에 붙어있다. 일부러 http://라고 맨 앞에 붙여도 다시 https:// 프로토콜을 사용하는 주소로 리다이렉트 될 뿐이다. HTTPS는 HTTP에 Security의 S가 추가된 프로토콜로써, 조금 더 secure한 HTTP 통신을 지원하는 프로토콜이다. 뭐 대충 알겠지만, 왜 HTTPS가 선호될까? 1) HTTP는 보안에 취약 http는 평문 통신이다. 클라이언트와 서버가 데이터를 주고받을 때 별다른 암호화를..