WEB개발/TIL(39)
-
CORS
CORS 오류가 발생했다... 구글링으로 해결하긴 했지만, 제대로 이해를 못하고 넘어가서 다시 정리하고자 한다.... CORS? Cross Origin Resource Sharing: 교차 출처 자원 공유 출처가 다른 자원의 공유 한 출처의 웹 애플리케이션이 다른 출처의 자원을 요청할 수 있도록 허용하는 보안 정책 1. 출처(Origin)란? 출처(Origin)는 Protocol + Host + Port를 의미함. 출처 비교 https://www.example.com:88와 비교하기 URL 동일 출처 O/X 이유 https://www.example.com:88/123 O protocol, host, port 동일 https://www.example.com:88/123?id=hello O protocol,..
2023.06.27 -
Context Switching과 PCB/TCB
Context Switching 여러 프로세스 또는 스레드가 번갈아가며 실행되는 과정 즉, CPU가 현재 실행 중인 Task(프로세스 또는 스레드)의 상태 정보를 PCB에 저장하고, 다음 실행할 Task의 상태 정보를 읽어 적용하는 과정 이 때, 현재 실행 중인 프로세스 또는 스레드의 상태 정보는 PCB 또는 TCB에 저장되고 불러옴. CPU의 코어가 1개라면, 동시에 여러 작업을 처리할 수 없어 Context Switching를 통해 짧은 시간을 주기로 번갈아가며 여러 Task를 실행함. 빠른 속도로 Task를 바꿔가며 실행하기 때문에 사람의 눈으론 동시에 여러 Task가 실행되는 것처럼 보이는 장점이 있음 PCB(Process Control Block) OS기 프로세스를 관리하기 위해 필요한 정보를 ..
2023.05.08 -
프로그램, 프로세스, 스레드
프로그램 프로세스 스레드 정의 실행 할 수 있는 애플리케이션 파일 실행 중인 애플리케이션 파일 프로세스에서 실행되는 작업의 단위 단위 자원 할당 단위 작업 할당 단위 프로그램 어떤 작업을 위해 운영체제에서 실행할 수 있는 파일 = 컴퓨터가 실행할 수 있는 명령어들의 집합 프로그램은 운영체제에서 실행되며, 사용자가 프로그램을 실행하면 운영체제는 프로그램을 메모리에 로드하고 CPU가 해당 명령어를 처리하여, 프로그램이 동작(=프로세스)함. 프로세스 운영체제에서 실행 중인 파일 즉, 프로세서(CPU)에 의해 실행되는 프로그램을 뜻함. # 각 프로세스는 독립된 메모리 영역을 할당받기 때문에, 다른 프로세스의 변수나 자료구조에 직접 접근할 수 없음. # 프로세스당 기본적으로 최소한 하나 이상의 스레드(메인 스레드..
2023.05.08 -
NestJS 애플리케이션 Docker로 배포하기
1. Docker hub에서 repository 생성 DockerHub: https://hub.docker.com/ 1.1. DockerHub 로그인 후, Repositories에 들어가서 Create repository 클릭 1.2. Repository Name(생성할 이미지명과 일치해야 함), Private 설정 후 Create하기 2. 프로젝트 폴더에 Dockerfile 생성 FROM node:[버전번호]-alpine WORKDIR /var/app COPY . . RUN npm run build EXPOSE [포트번호] CMD node dist/main.js FROM: 생성할 이미지에 베이스가 될 이미지 작성 WORKDIR: 작업 디렉토리 전환 COPY: 현재 디렉토리에서의 모든 파일(호스트)을 해..
2023.05.01 -
ORM - JPA
ORM Object Relational Mapping Object: 객체 지향 언어의 객체 Relational: 관계형 데이터베이스의 관계 Mapping: 객체 지향 언어의 객체와 관계형 데이터를 서로 변환 객체와 관계형 데이터베이스의 테이블을 매핑하여 데이퍼를 객체화하는 기술 Persistence Framework의 일종 SQL문을 직접 작성하지 않음 ex) JPA, Hibernate 등 JPA Java Persistence API JPA가 개발자 대신 적합한 SQL을 생성하고 DB에 전달하며, 객체를 자동으로 Mapping 해주기 때문에 SQL을 직접 작성할 필요가 없음 ex) Hibernate(JPA를 구현한 대표적 오픈소스) JPA의 장단점 장점 1. 생산성이 뛰어나며 유지보수가 용이함 2. DB..
2023.03.27 -
Lombok
Lombok Java의 라이브러리로 반복되는 메서드를 Annotation을 사용해서 자동으로 작성해주는 라이브러리 (= 코드 다이어터) Lombok 사용하기 ex) Getter, Setter : 메서드를 따로 작성하지 않고 어노테이션으로 getter, setter 작성 가능 @Getter @Setter public class User { private int id; private String name; private String nickname; }
2023.03.24