본문 바로가기
728x90

넓고 얕은 CS 지식17

자바에서 암호화 구현에 필요한 최소한의 지식을 정리해보자.(Binary Data, bit, byte, Base64, Hex 등) 💡 이 글에서는 자바에서 암호화 관련 로직을 문제없이 구현하기 위해 필요한 최소한의 지식을 정리한다. 각 개념의 의미와 상호 관계를 알아보면서 컴퓨터의 기본적인 데이터 표현 방식에 대해 자세히 알아보도록 하자. 📌 2진수 (Binary) 2진수란 숫자 체계 중 하나로, 0과 1 두 가지 값만을 사용하여 수를 표현한다. 컴퓨터에서 가장 기본적으로 사용되며 모든 데이터는 이진 형태로 저장되고 처리된다. 예시 숫자 "0"를 2진수로 표현하면 "0"이다. 숫자 "1"를 2진수로 표현하면 "1"이다. 숫자 "2"를 2진수로 표현하면 "10"이다. 숫자 "3"를 2진수로 표현하면 "11"이다. 숫자 "4"를 2진수로 표현하면 "100"이다. 숫자 "42"를 2진수로 표현하면 "101010"이다. 맨 왼쪽부터 32 .. 2023. 9. 29.
클래스 다이어그램과 개체 관계 다이어그램(ERD) 요약 정리 클래스 다이어그램(Class Diagram) 시스템 또는 소프트웨어 애플리케이션 내에서 클래스의 구조와 관계를 나타내는 UML(Unified Modeling Language)의 다이어그램 유형 중 하나로, 클래스의 특성, 메서드 및 클래스 간의 연결을 시각적으로 표현한다. 클래스 간의 관계 및 상호 작용을 이해하는 데 도움이 되어 객체 지향 프로그래밍에서 특히 유용하다. 소프트웨어 개발의 설계 및 모델링 단계에서 사용한다. 개체 - 관계 다이어그램(Entity - Relation Diagram) 데이터베이스 내 개체(Entity) 간의 관계를 시각적으로 표현한 다이어그램이다. 데이터의 구조와 구성을 모델링하고 이해하기 위해 데이터베이스의 설계에 사용한다. 주요 구성 요소는 개체의 특성 및 관계이다. 특성.. 2023. 5. 29.
FTP, SFTP와 파일질라(FileZilla) 간단 정리 파일 전송 프로토콜(File Transfer Protocol) 네트워크 상의 장치가 파일을 전송할 때 사용하는 규칙을 의미한다. 네트워크에 연결된 컴퓨터끼리 데이터를 원활하게 교환하기 위한 목적으로 개발되었다. 사용자의 인증, 데이터 전환, 디렉터리 검색 등과 같은 기능을 지원한다. FTP 서버는 FTP 주소를 가지고 있고, FTP 연결을 수신한다. 21번 포트를 사용한다. 인터넷 프로토콜 초기부터 사용되어 역사가 길다. SFTP(SSH File Transfer Protocol) FTP에 SSH 연결을 사용해 보안 등급이 높은 파일 전송을 하는 별도의 프로토콜이다. 22번 포트를 사용한다. 파일질라(FileZilla) 오픈 소스 크로스 플랫폼의 FTP 소프트웨어이다. 파일질라 클라이언트와 파일질라 서버로.. 2023. 5. 14.
CSV(Comma Seperated Value) 간단 정리 CSV 파일 이름,생년,월,일,국어 점수,영어 점수,수학 점수 손흥민,1991,7,8,100,90,90 해리케인,1993,7,28,100,100,100 파일 형식을 말하는 것으로 확장자 명은 .csv이다. Comma Seperated Value의 의미 그대로 콤마( , )로 구분된 텍스트 데이터이다. 텍스트 기반이라 사람이 직접 읽고 수정할 수 있다. 텍스트를 콤마로 구분한 규칙적인 구조를 가지고 있어 엑셀 등의 프로그램으로도 읽거나 생성할 수 있다. 주로 테이블 형태로 구성된 자료(엑셀)나 텍스트 자료를 저장할 때 사용한다. 데이터의 크기가 작고, 많은 애플리케이션에서 사용 가능할 정도로 범용성이 좋아 다양한 곳에서 사용된다. 예를 들어 같은 데이터를 저장하는 경우 JSON 데이터에 비해 절반 이하의 .. 2023. 5. 9.
플로우차트(Flow Chart) 요약 정리 플로우차트(Flow Chart) 순서도, 흐름도라고도 하며 어떠한 일을 처리하는 과정을 순서대로 간단한 기호와 도형으로 도식화한 것을 의미한다. 여러 분야에서 프로세스사 문제의 분석, 기획, 디자인, 설계 등 폭넓게 활용되고 있다. 국제표준기구(ISO)에서 지정한 기호와 흐름선을 활용하여 프로세스의 처리 순서를 포함한 단계 간의 상호관계를 알기 쉽게 나타낼 수 있다. 코딩의 순서와 같으므로 플로우차트만을 보고 코딩이 가능하다면 잘 그린 플로우차트라고 할 수 있다. 종류 시스템 순서도 어떤 작업을 하는지 알려주는 순서도로 자료가 정보로 변환되는 과정을 컴퓨터가 처리하는 과정, 데이터의 흐름을 중심으로 도식화한 것이다. 작업 내용을 총괄적으로 검토하고 프로그래밍 작업과 연결시켜 줄 때 사용하는 순서도이다. .. 2023. 5. 4.
시퀀스 다이어그램 요약 정리 시퀀스 다이어그램(Sequence Diagram) UML 다이어그램의 한 종류로 시스템이나 객체들이 메시지를 주고받으며 상호 작용하는 과정을 표현하는 행위 다이어그램이다. 현재 구축되어 있는 시스템이 어떻게 동작하고 있는지 표현하거나 신규 개발해야 할 시스템이 어떤 시나리오로 흘러갈지 쉽게 표현할 수 있어서 자주 사용된다. 특징 및 장점 각 동작에 참여하는 시스템이나 객체들의 수행기간을 확인할 수 있다. 메시지의 명확한 순서를 확인할 수 있다. 전반적인 시스템의 흐름을 시각화 시킬 수 있다. 실시간 명세의 표현에 적합하다. 복잡한 시나리오의 표현에 적합하다. 구성요소 액터 시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 외부 시스템을 뜻한다. 객체 메시지를 주고받는 객체이다. 생명선 객체가 메모리.. 2023. 5. 4.
스레드 풀 스레드를 하나만 사용하는 경우 단일 요청이 들어왔을 때 스레드를 할당하여 서블릿을 호출하여 로직을 처리하고 응답을 보낸다. 다중 요청이 들어왔을 때 먼저 들어온 요청에 스레드를 할당하여 로직을 처리하고, 나중에 들어온 요청은 스레드를 대기한다. 만약 먼저 처리 중인 요청의 처리가 지연되면 대기 중인 요청도 함께 지연된다. 요청마다 스레드를 생성하는 경우 장점 동시에 요청을 처리할 수 있다. 리소스(CPU, 메모리)가 허용될 때까지 처리가 가능하다. 하나의 스레드가 지연되어도 나머지 스레드는 정상적으로 동작한다. 단점 스레드는 생성 비용이 매우 비싸다. 고객의 요청이 올때마다 스레드를 생성하게 되면 스레드의 생성 시간 때문에 응답 속도가 늦어진다. 스레드는 컨텍스트 스위칭 비용이 발생한다. 스레드 생성에는.. 2023. 3. 9.
멀티 프로세스와 멀티 스레드 멀티 프로세스 하나의 애플리케이션을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것이다. 멀티 프로세스의 특징 안정적이다. 여러개의 자식 프로세스 중 하나에 문제가 발생해도 다른 자식 프로세스에 영향이 확산되지 않는다. 구현이 비교적 간단하고, 각 프로세스들이 독립적으로 동작한다. 프로세스 간 통신을 하기 위해서 IPC를 통해야 한다. 메모리 사용량이 많다. 스케줄링에 따른 컨텍스트 스위치가 많아져 성능 저하가 우려된다. 멀티 스레드 하나의 애플리케이션을 여러 개의 스레드로 구성하여 하나의 스레드가 하나의 작업을 처리하도록 하는 것이다. 왜 멀티스레드를 쓰는가? 사용자와 상호작용하는 애플리케이션에서 단일 스레드로 네트워크나 DB와 같은 긴 작업을 수행하는 경우 해당 작업을 .. 2023. 3. 8.
728x90