Computer Science 42

초보자를 위한 Linux 기초 명령어 path 경로입니다. ~는 home directory를 의미합니다. .는 자기 자신을 의미하고, ..는 상위 directory를 의미합니다. ./donghwan 는 현재 directory에서 donghwan이라는 directory를 의미합니다. ../donghwan 는 현재 directory의 상위 directory에 있는 donghwan이라는 directory를 의미합니다. cd change directory를 의미 합니다. path와 함께 사용됩니다. cd ~ 또는 cd ./donghwan 또는 cd ../donghwan 등등으로 사용됩니다. 가장 많이 사용되는 명령어 중 하나입니다. ls list directory contents에서 유래된 명령어입니다. 현재 위치 또는 특정 path에 존재하는 모.. Computer Science/Programming 2022. 9. 25.
Base64란? 8bit binary 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념입니다. Base64를 글자 그대로 번역하면 '64진법' 이라는 뜻입니다. 64는 2^6 이며, 2의 제곱수들에 기반한 진법들 중에서 화면에 표시되는 ASCII문자들을 써서 표현할 수 있는 가장 큰 진법입니다. 128 진법에는 128개의 기호가 필요한데 ASCII문자들은 128개가 되지 않습니다. a-z, A-Z, 0-9 62개의 문자와 나머지 2개 문자를 어떤 기호를 쓰느냐의 차이만 있지만 MIME에서 정의한 나머지 두개의 문자열은 +와 /이며, =는 끝을 알리는 코드로 쓰입니다. @Base64를 사용하는 .. Computer Science/Programming 2022. 9. 19.
암호화 암호화는 비밀을 다루는 방법이라고 볼 수 있습니다. 암호화는 인류가 기록을 시작한 이래로 다양한 유형으로 존재해 왔습니다. 고대 그리스인들은 '스키테일'이라는 도구를 사용해 메시지를 암호화했고, 제2차 세계대전에서는 독일이 그 유명한 '에니그마' 장비를 사용해 군사적/외교적 통신을 보호 했습니다. 특징 기밀성(Confidentiality) : 암호화된 내용을 알 수 없어야 합니다. 무결성(Integrity) : 내용이 원본과 같다는 것을 확신할 수 있습니다. 가용성(Availability) : 권한이 있는 사람(허가 받은 사람)만 정보에 접근할 수 있어야 합니다. 암호화는 단순히 볼 수 없다고 완성되지 않습니다. 위와 같은 3가지의 기밀을 지키기 위한 요소를 가지고 있어야 합니다. 보호되지 않은 데이터를.. Computer Science/Programming 2022. 9. 15.
Singleton Pattern 인스턴스가 오직 1개만 생성되야 하는 경우에 사용되는 패턴입니다. 시스템 런타임, 환경 세팅에 대한 정보 등 인스턴스가 여러개일 때 문제가 생길 수 있는 상황에서 싱글턴 패턴을 사용합니다. 인스턴스가 1개만 생성되는 특징을 가진 싱글턴 패턴을 이용하면 하나의 인스턴스를 메모리에 등록해서 여러 스레드가 동시에 해당 인스턴스를 공유하여 사용하게끔 할 수 있으므로 요청이 많은 곳에서 사용하면 효율을 높일 수 있습니다. 싱글턴을 만들때 동시성(Concurrency) 문제를 고려해서 싱글턴을 설계해야합니다. 싱글턴을 사용하는 방법과 문제점을 알아보고 해결방법을 알아보겠습니다. 1. Eager Initialization public class SingletonEagerInit { private static Sing.. Computer Science/Design Pattern 2022. 1. 15.
[Network] TCP/IP 4 Layer ( TCP/IP 4계층 ) OSI 7 Layer vs TCP/ICP 4 Layer 국제표준화기구 IOS(International Organization for Standardization)에서는 상호 이질적인 네트워크간의 연결에서 호환성의 결여를 막기위해 OSI(Open Systems Interconnection) 모형을 개발했습니다. TCP/IP는 OSI 참조 모델을 기반으로 상업적이고 실무적으로 이용될 수 있도록 단순화된 모형입니다. 네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7계층, 이 이론을 실제 사용하는 인터넷 표준이 TCP/IP 4계층입니다. 응용 계층 (Application Layer) OSI의 세션, 표현, 응용 계층이 여기에 해당합니다. 사용자와 가장 가까운 계층으로 사용자가 소프트웨어 응용 프로그램과 소.. Computer Science/Network 2021. 11. 22.
[Network] OSI 7 Layer ( OSI 7계층 ) 계층을 분리하여 각 계층은 독립적인 역할을 할 수 있습니다. 역할이 분리되면서 문제가 발생하더라도 어떤 계층에 문제가 생겼는지도 파악이 가능합니다. 동작 원리 OSI 7계층은 응용, 표현, 세션, 전송, 네트워크, 데이터링크, 물리계층으로 나뉩니다. 송신 시 응용 계층에서 물리 계층으로 데이터가 향하게 되고, 각 레이어마다 수신 호스트의 해당 계층에서 데이터를 처리할 때 필요한 정보를 헤더에 작성하여 하위 계층으로 전달합니다. (캡슐화) 수신 시 물리 계층에서 응용 계층으로 데이터가 향하게 되고, 헤더 부분의 정보를 사용해서 해당 계층의 프로토콜을 처리한 후 헤더 부분을 제거한 데이터를 상위 계층으로 전달합니다. (역캡슐화) 데이터 링크 계층에서는 물리적인 통신 채널을 연결하기 위해 헤더 이외에 트레일러.. Computer Science/Network 2021. 11. 22.
[MySQL] Datetime 기준으로 조회하기 1. 특정 날짜 데이터 조회하기 SELECT * FROM [TABLE] WHERE DATE([DATE_COLUMN]) = '2021-11-01'; SELECT * FROM [TABLE] WHERE [DATE_COLUMN] >= '2021-11-01' AND [DATE_COLUMN] = '2021-11-01' AND [DATE_COLUMN] Computer Science/DataBase 2021. 11. 19.
[Network] HTTP Method의 속성 안전( Safe ) 호출해도 리소스를 변경하지 않는다는 의미입니다. 호출로 인해 리소스의 변경을 일으키지 않는 것을 안전하다고 합니다. GET은 단순 조회이기 때문에 변경이 일어나지 않기 때문에 안전하다고 할 수 있습니다. POST, PUT, PATCH, DELETE는 변경을 시도할 수 있기 때문에 안전하다고 할 수 없습니다. 멱등( Idempotent ) 같은 요청을 여러번을 하더라도 결과가 똑같아야 합니다. 이때 외부 요인으로 인한 변경은 고려하지 않습니다. GET은 몇번을 조회하든 결과가 같습니다. PUT은 리소스를 대체합니다. 똑같은 요청이라면 결과적으로 같습니다. DELETE은 리소스를 삭제합니다. 결과적으로 삭제된 것은 같습니다. POST 두 번 호출하면 같은 결과가 중복으로 발생할 수 있습니.. Computer Science/Network 2021. 11. 10.
[Network] HTTP Method GET 특정 리소스의 정보를 조회하는 역할을 합니다. 서버에 전달하고 싶은 데이터는 query로 전달할 수 있습니다. 메세지 바디로 전달할 수 있습니다. 하지만 지원하지 않는 경우가 많기때문에 쿼리로 처리하는 것이 바람직합니다. HEAD GET과 동일한 역할을 합니다. 하지만 돌아올 헤더만 요청합니다. 본문을 가져선 안되며, 본문이 존재하더라도 무시해야 합니다. Content-Length처럼 본문 콘텐츠를 설명하는 개체 헤더는 포함할 수 있습니다. POST 요청 데이터를 처리합니다. 메세지 바디를 통해 서버로 요청 데이터를 전달합니다. 주로 전달된 데이터를 신규 리소스를 등록, 프로세스 변경에 사용되지만 거의 모든 역할을 수행할 수 있습니다. 리소스 URI에 POST 요청이 오면 정해진 처리 방식이 없기.. Computer Science/Network 2021. 11. 10.
[DataBase] 무결성 데이터 무결성이란 데이터의 정확성과 일관성을 유지하고 보장된 상태를 의미합니다. 여기서 정확성이란 중복이나 누락이 없는 상태라고 말할 수 있습니다. 또 일관성이란 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태라고 설명됩니다. 데이터베이스에서 데이터 무결성이 갖는 중요성은 데이터 가치와 데이터 신뢰성 측면으로 설명할 수 있습니다. 데이터 가치는 업무에서 사용자에게 의미 있는 정보를 제공하는 것이 목적입니다. 또 데이터 신뢰성은 항상 정확하고 오류가 없는 데이터가 데이터베이스에 저장되어 있어 신뢰성 있는 데이터를 제공한다는 의미를 가지고 있습니다. 데이터 무결성 설계를 안 했을 때의 문제점 모든 데이터 무결성을 DBMS로 보장 받을 수 없습니다. 어차피 업무적인 데이터 무결성은 애플리케이션 로직.. Computer Science/DataBase 2021. 10. 28.