본문 바로가기

분류 전체보기

(76)
직렬화 / 역직렬화 - 자바 직렬화 - Serialization 자바의 상태를 바이트 스트림으로 변환하는 것 자바 객체를 정적인 바이트 스트림으로 변환하는 것 - 파일 / 데이터베이스에 저장하거나 네트워크를 통해 전송 가능 바이트 스트림(byte stream) 컴퓨터에서 데이터를 읽고 쓸 수 있는데 사용하는 기본 방식 직렬화 장점 객체 저장 - 객체를 파일로 저장하거나 네트워크를 통해 전송할 수 있음 객체 전송 - 네트워크를 통해 전송할 수 있어, 다른 컴퓨터나 애플리케이션과 객체 공유 가능 객체 복원 - 직렬화된 객체는 복원할 수 있어, 객체의 상태를 유지할 수 있음 분산 환경 - RMI(Remote Method Invocation)나 EJB(Enterprise JavaBeans)를 사용하는 분산 환경에서 사용 가능 직렬화 단점 ..
기본적인 리눅스 40가지 명령어 1. sudo - superuser do 현재 계정에서 루트 권한으로 명령어를 실행할 수 있도록 하는 명령어 2. pwd : print working directory 현재 위치 알려주는 명령어 3. cd : change directory 디렉토리 이동 4. ls : list ll : ls -l 옵션이 적용된 명령어 ls -ul : 파일 접근시간 표기 현재 디렉토리의 파일 리스트를 출력 5. cat : concatenate 파일 내용을 기록, 병합, 나열 해주는 명령어 cat > a.txt → 파일 생성 cat a.txt → 나열(보기) cat a.txt b.txt > c.txt → 병합 6. cp : copy 파일 복사 명령어 cp a.txt b.txt → a.txt 내용을 b.txt(새 파일)에 복사..
Git / GitHub / GitLab 버전 관리 시스템 버전/변화를 관리하는 것 분산 버전관리 시스템 여러곳에서 분산된 상태로 버전/변화를 관리하는것 Git 오픈소스 분산 버전 관리 시스템 로컬 소스 수정에 따른 버전을 관리해주는 시스템 GitHub Git 저장소를 위한 웹기반 호스팅 서비스 클라우드 서비스를 이용하여 로컬에서 버전 관리한 소스를 업로드 / 다운로드 가능 유료버전을 구매하지 않는 이상 모든 게 오픈 되어있음 개발자간의 협력을 중심으로한 플랫폼 GitLab 개인 / 조직이 Git repository의 내부 관리를 제공하는 GitHub - 비공개 GitHub Git Repository, 오류 추적 등 다양한 기능을 갖는 데브옵스 플랫폼 참고 https://velog.io/@leyuri/Github-%EA%B3%BC-Gitlab-..
DBMS / RDBMS DB 데이터 베이스 RDB 관계형 데이터 모델에 기초를 둔 데이터베이스 DBMS 데이터베이스 관리 시스템(소프트웨어) RDBMS 관계형 데이터베이스 관리 시스템 ex) MySQL, Oracle, MS-SQL 등
멀티 스레딩와 비동기 차이 멀티 스레딩 스레드를 늘려서 작업을 병렬처리하는 것 비동기 이전 작업이 완료될 때까지 기다리지 않고 다음 작업을 계속 실행하게 하는 비차단 방식으로 작업하는것 조합 단일 스레드 / 동기 단일 스레드 / 비동기 멀티스레드 / 동기 멀티스레드 / 비동기 차이점 멀티 스레딩은 프로그램에서 병렬처리를 구현하는 기술이고 비동기는 한 작업이 진행되는 동안 다른 작업을 계속 실행할 수 잇도록 허용하는 방식 참고 https://lucky516.tistory.com/207 https://jayhyun-hwang.github.io/2021/09/02/The-Difference-Between-Asynchronous-And-Multi-Threading/ https://jcchu.medium.com/%EB%8F%99%EA%B8..
프로그램 / 프로세스 / 스레드 / 소프트웨어 프로그램 컴퓨터에 어떤 일을 수행하는 순서와 방법을 지시하는 명령어의 집합체 프로세스 하나의 프로그램이 CPU에 적재되어 실행되는 것 CPU를 차지하면서 수행하는 주체 - 프로그램 한개의 인스턴스 (실행되고 있는 프로그램) 프로그램은 하나이며 프로세스는 여러개 일 수 있음 스레드 (Thread) 프로세스 내에서 실행되는 흐름의 단위 프로세스의 특정한 수행 경로 프로세스가 할당 받은 자원을 실행하는 단위 스택만 따로 할당 받고 코드 / 데이터 / 힙은 영역을 공유 스택과 레지스터는 별도 / 힙, 메모리는 공유 가능 한 스레드가 프로세스 자원을 변경하면 다른 스레드들도 변경된 자원을 인지 가능 소프트웨어 하드웨어의 동작을 지시 / 제어하는 역할 프로그램 및 프로그램과 관련된 문서들 (프로그램 + 문서) 참고..
운영체제 / 커널 / 콘솔 / 터미널 / 쉘 운영체제 : OS (Operating System) 시스템 하드웨어 관리 / 응용 소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 소프트 웨어 응용 프로그램과 하드웨어 사이의 중재 역할 멀티태스킹을 위해 모든 프로세서들을 스케줄링하여 동시에 수행되는것 처럼 보이는 효과 컴퓨터를 효율적으로 관리하고 작동시키기 위한 프로그램 프로세스 관리자 / 메모리 관리자 / 파일 관리자 / 장치 관리자 실행하는 프로그램에 필요한 자원을 할당하고 정상적으로 실행하게 도와주는 프로그램 커널 OS에서 가장 중요한 요소 - OS에서 핵심 서비스를 담당 소프트웨어와 하드웨어의 커뮤니케이션 관리 하드웨어 장치의 기초 수준의 제어권을 제공 역할 : 보안 / 자원관리 / 추상화 쉘 사람이 컴퓨터와 소..
Mongo DB / MySQL 차이점 MongoDB JSON과 유사한 문서를 데이터로 저장하는 NoSQL 문서는 관련 정보를 함께 저장하고 엑세스를 위해 MQL(MongoDB 쿼리 언어)을 사용 Document는 규정된 스키마를 두지 않기 때문에 각 필드는 항상 달라질수 있음 → 다른 구조의 데이터 추가 가능 Collection에 관련 데이터를 모두 작성하므로 하나의 Collection으로 모든 데이터를 얻으 수 있음 중복된 데이터 생길 수 있음 강점 빠르게 어플리케이션 구축 가능 객체지향 프로그래밍 언어와 자연스럽게 맵핑 → 개발 단순화 구조 유연 → 새로운 비즈니스 요구사항에 대해 반영 가능 분산 데이터센터에 대하여 스케일링 가능 / 쉽게 확장 MySQL 관계형 데이터베이스 관리 시스템(RDBMS) 테이블에 데이터를 저장하고 SQL(구조..