본문 바로가기

전체 글

(22)
JPA(Java Persistence API) ORM(Object-Relational Mapping) 일전적으로 알고 있는 어플리케이션 class와 RDB(Relational DataBase)의 테이블을 매핑 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 장점 SQL문이 아닌 Method를 통해 DB를 조작할 수 있어 객체 모델을 이용하여 비즈니스 로직에 집중 가능 Query와 같이 필요한 선언문, 할당 등 부수적인 코드가 줄어들어 코드의 가독성 증가 객체지향적인 코드 작성 가능 매핑하는 정보가 class로 명시 되어 있어 유지보수 및 리팩토링에 유리 ex) MySQL에서 PostgreSQL로 변환할 경우에 쿼리 수정이 필요 없음 단점 프로젝트의 규모가 크고 복잡하여 설계가 잘못된 경우, 속도 저하 및 일관성을 무너뜨리는 문제점이..
네트워크 (2) 4. HTTP 상태코드 4-1. HTTP의 정의 HTTP(Hyper Text Transfer PRotocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜 80번 포트를 기본으로 사용 상태를 가지고 있지 않은 stateless 프로토콜 4-2. HTTP의 구조 애플리케이션 레벨의 포로토콜로 TCP/IP 위에서 동작하며 Method, Path, Version, Headers, Body 등으로 구성 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜 4-3. HTTPS의 개념 HTTPS(Hyper Text Transfer Protocol Secure)는 HTTP에 데이터 암호화가 추가된 프로토콜 443 포트를 사용하며, 네트워크 상에서 중간에 제 3자가 정보를 볼 수 없도록 암호화하여 전..
네트워크 (1) 1. 네트워크란? 지역적으로 분산된 위치에서 컴퓨터 또는 시스템 간에 연결 및 통신을 하기 위한 하드웨어 및 소프트웨어들의 집합 1-1. 데이터 전송 방식에 따른 종류 회선 교환망(Circuit Switched Network) 물리적인 연결로 전용 통신 선로를 설정하여 통신이 끝날 때까지 연결을 독점적으로 사용하는 방식(e.g. 유선 전화기) 패킷 교환망(Packet Switched Network) 전송하고자 하는 data를 패킷이라는 작은 단위로 나누고 발신지와 수신지의 address를 넣어 패킷 교환망에 보내어 최종 목적지까지 전달 셀 교환망(Cell Switched Network) 망 내에서 프로토콜을 심프로하하여 data를 Cell이라고 부르는 패킷 단위로 전송 Cell은 전송에 필요한 최소 기능..
컴퓨터 구조와 OS (4) 12. 인터럽트 12-1. 인터럽트란? 프로그램이 실행 중 CPU의 현재 처리 순서를 중단시키고 다른 동작을 수행하도록 요구하는 시스템 동작 어떤 장치가 다른 장치의 일을 잠시 중단시키고 자시느이 상태 변화를 알려주는 제어신호 인터럽트가 발생하면 인터럽를 받은 장치는 현재 자신의 상태를 기억해두고 인터럽트를 처리 12-2. 주요 구성요소 IRQ(Interrupt ReQuest) : CPU에 인터럽트를 요청하는 신호 IPR(Interrupt Process Routine) : 인터럽트 발생 원인을 찾아 ISR 호출 IVP(Interrupt Vector Table) : ISR 분기 주소 저장 테이블(ISR 찾기) ISR(Interrupt Service Routine) : 인터럽트에 대한 실제 처리 담당 12-..
컴퓨터구조와 OS (3) 9. Process와 Thread 9-1. 프로세스의 개념 메모리에 로드되어 CPU에 의해 실행되고 있는 실행 프로그램 레지스터, 스택, 포인트, 프로그램, 데이터등의 집합체로 실행 중인 프로그램 인스턴스 비 동기적 행위, 프로시저가 활동 중인 것, 실행 중인 프로시저의 제어 경로 등을 의미하는 것으로 디스패치된 작업 단위 9-2. 프로세스의 상태 전이 프로세스는 상황과 조건에 따라 준비, 실행, 대기 상태에 있다가 다른 상태로 변화되는 전이를 반복 프로세스 상태 생성(new) : 프로세스를 시스템에 생성 준비(ready) : CPU의 배정을 받기 위해 기다리는 상태로 디스패치에 의해 CPU를 배정 받아 실행 상태로 전이 실행(running) : 프로세스가 CPU를 할당 받은 상태로 Timmer Runo..
컴퓨터구조와 OS (2) 7. 가상 메모리 주기억장치 안의 프로그램 양이 많아질 때, 사용하지 않는 프로그램을 보조기억장치 안의 특별한 영역으로 옮겨서 주기억장치처럼 사용할 수 있는데 이 때 사용하는 보조기억장치의 일부분 7-1. 가상 메모리 관리 정책 할당정책(How much) : 각 프로세스에게 할당할 메모리의 양을 관리 호출정책(When) : 언제 어느 항목들을 보조기억장치에 메인 메모리에 가져올 것인지 결정 요구호출 : 요구 페이징이라고도 하며, 페이지가 참조될 때 적재하는 기법 예측호출 : 선 페이징이라고도 하며, 예측을 통해 확률적으로 참조될 가능성이 높다고 판단되는 페이지를 미리 적재 배치정책(Where) : 프로그램의 한 블록을 메인메모르이 어디에 배치할것인가 관리(First, Best, Next, Wort Fit..
컴퓨터구조와 OS (1) 1. OS(Operating System)란? 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원들을 사용할 수 있도록 만들어줌 멀티태스킹을 위해 모든 프로세스들을 스케줄링하여 동시에 수행되는 것처럼 보이는 효과 OS의 구성 프로세스 관리자 메모리 관리자 파일 관리자 장치 관리자 1-1 . OS의 종류 Window, Unix, Linux, iOS, Android 1-2. OS 커널 하드웨어 장치에 대한 가장 기초 수준의 제어권을 제공 메모리를 읽고 쓸 것인지, 어느 프로세스를 실행할 것인지, 장치를 통해 ..
DB 1. Database와 DBMS의 차이 Database: 데이터의 저장소, 데이터를 통합 저장하고 운영하는 집합체 DBMS(Database Management System): Database를 생성하고 효율적으로 관리하기 위한 시스템 (Oracle, MariaDb...) 1-1. DBMS의 주요 기능 응용 어플리케이션과 Data 사이의 중재자 역할 사용자 간의 권한 통제 데이터의 일관성과 무결성 보장 데이터를 표준화하고 통합 관리 가능 트랜잭션 관리(Rollback, Commit) 동시성 제어 시스템 장애로부터 회복/복구 1-2. DBMS의 주요 구성요소 2. 데이터 독립성 하위 단계의 데이터 논리적, 물리적 구조가 변경되어도 상위 단계에 영향을 미치지 않도록 구성 2-1. 논리적 독립성과 물리적 독립성..