본문 바로가기

백엔드 기술

(37)
SQL 문제 #1. Employees 테이블과 Departments 테이블을 조인하여 모든 사원의 이름, 직책, 부서 이름, 부서 위치를 조회하세요. 이때, 사원이 속한 부서가 존재하는 경우에만 결과를 반환해야 합니다. [Employees 테이블] EmployeeId EmployeeName DepartmentId Position 101 Han 1 Leader 102 Lee 2 Team Member 103 David 1 Team Member [Departments 테이블] DepartmentId DepartmentName Location 1 Front 1F 2 Back 2F [정답] SELECT Employees.EmployeeName, Employees.Position, Departments.DepartmentNam..
SQL - JOIN 키워드 키워드 : 테이블 간의 관계를 나타내는 키워드. JOIN 키워드를 사용하면 여러 테이블에서 관련 정보를 더 분석 및 조합 할 수 있다. 특히 관계형 데이터베이스에서 중요한 부분인데, 이는 데이터가 여러 테이블에 분산되어 있고, 각 테이블이 서로 다른 방식으로 연관되어 있기 때문이다. SQL의 JOIN 명령은 이러한 관계를 사용하여 데이터에 대한 복잡한 질의를 수행할 수 있다. 1. LEFT JOIN 왼쪽 테이블(기준_테이블)의 모든 행과 오른쪽 테이블(대상_테이블)의 일치하는 행을 반환한다. 일치하는 행이 없는 경우, 왼쪽 테이블의 결과 집합에는 NULL 값이 포함되어 반환된다. SELECT 결과에 포함될 컬럼 FROM 데이터를 가져올 테이블(기준_테이블) LEFT JOIN 데..
VPC - Virtual Private Cloud 서비스 VPC (Virtual Private Cloud) 클라우드 내 프라이빗 공간을 제공함으로써, 클라우드를 public과 private 영역으로 논리적으로 분리 가능. VPC를 분리함으로써 확장성과 네트워크에 대한 완전한 통제권을 가질 수 있다. VPC 구성 요소와 주요 용어 IP Address IP는 컴퓨터 네트워크에서 장치들이 서로 인식하고 통신하기 위해 사용하는 특수한 번호로, IPv4, IPv6 로 나누어 사용. ex) IPv4 172. 16. 0. 0. 10101100. 00010000 00000000. 00000000. 표에서 보이는 십진수의 형태는 보기 편하도록 변형한 것이고, 실제의 형태는 2진수 8자리의 형태, 즉 각 8bit (비트) 씩 총 32bit로 구성되어 있다. 각 8 bit를 옥텟..
TOMCAT = 웹 애플리케이션 서버 (WAS) Tomcat ? Tomcat은 Apache에서 개발한 서블릿 컨테이너만 있는 오픈 소스 웹 애플리케이션 서버 (WAS) 특징 자바 애플리케이션을 위한 대표적인 오픈소스 WAS 오픈 소스이기 때문에 라이선스 비용 부담 없이 사용할 수 있다. 독립적으로도 사용 가능, Apache 같은 다른 웹 서버와 연동 가능. Tomcat은 자바 서블릿 컨테이너에 대한 공식 구현체로, Spring Boot에 내장되어 있어 별도의 설치 필요 X. Tomcat 실행 및 의존성 확인하기 Spring Boot로 프로젝트를 실행하면 나오는 로그 IntelliJ -> View -> Tool Windows -> Gradle spring-boot-starter-web 모듈을 확인해보면, 웹 서버를 구성하는 모듈 속엔 spring-boo..
Nginx = 웹 서버 Nginx 란 ? Nginx는 가볍고 높은 성능을 보이는 오픈 소스 웹 서버 소프트웨어. Tomcat과 Jetty는 자바 서블릿 컨테이너 혹은 웹 애플리케이션 서버 (WAS) 라면, Nginx는 웹 서버로 클라이언트에게 정적 리소스를 빠르게 응답하기 위한 웹 서버이다. 특징 Nginx는 트래픽이 많은 웹 사이트의 확장성을 위해 개발된 고성능 웹 서버 비동기 이벤트 기반으로 적은 자원으로 높은 성능과 높은 동시성을 위해 개발 다수의 클라이언트 연결을 효율적으로 처리할 수 있다 클라이언트와 서버 사이에 존재하는 리버스 프록시 서버로 사용할 수 있다. Nginx를 클라이언트와 서버 사이에 배치하여 무중단 배포가 가능하다. [ Nginx - Proxy Server ] Spring Boot와 Nginx 연동하기 ..
Web Server와 Web Application Server(WAS) 오늘은 웹 서버와 웹 애플리케이션 서버(WAS)에 대해 이야기하려고 합니다. Web Application Server를 이해하기 위해서는 Web Service가 어떻게 이루어지는지 알아야 한다. 브라우저를 통해 네이버에 들어가게 된다면 우리와 같은 유저들은 아래와 같은 페이지를 받게 된다. 위와 같은 웹 페이지를 통해 원하는 기능을 수행하기 위해서는 Web Service의 구조에 대해 알아야 한다. Web Service의 구조는 크게 3가지로 나눌 수 있다. 위의 사진과 같이 우리가 네이버와 통신하며 메일이나 웹툰 같은 데이터를 요청하는데 이는 A. Web Server에 요구하는 것이다. 즉 Web Server의 역할은 클라이언트가 요청하는 데이터를 찾아서 클라이언트에게 전달하는 단순한 역할. Web S..
Spring MVC - 트랜잭션 트랜잭션(Transaction) ? 여러 개의 작업들을 하나의 그룹으로 묶어서 처리하는 처리 단위, 물리적으로는 여러 개의 작업이지만 논리적으로는 하나의 작업으로 인식하여 전부 성공하든가, 전부 실패하든가의 둘 중 하나로만 처리되어야 트랜잭션의 의미를 가진다. 트랜잭션의 특징 - ACID 원칙 1. 원자성 (Atomicity) 작업을 더 이상 쪼갤 수 없음을 의미. 논리적으로 하나의 작업으로 인식해서 둘 다 성공하든가, 둘 다 실패하든가 중에서 하나로만 처리되는 것이 보장되어야 한다. 2. 일관성 (Consistency) 트랜잭션이 에러 없이 성공적으로 종료될 경우, 비즈니스 로직에서 의도하는 대로 일관성 있게 저장되거나 변경되는 것을 의미 3. 격리성 (Isolation) CPU의 프로세스 처리과정 처..
Docker #1. Docker. 도커란 컨테이너 기술을 기반으로 한 오픈소스 소프트웨어 플랫폼. 물류 선박 컨테이너 기술이 물자의 수송을 획기적인 단축시켰듯, 도커는 이 컨테이너 기술을 이용해 다양한 환경에서의 애플리케이션 배포와 실행을 간소화하여 소프트웨어 배포에 적용해 소프트웨어 배포의 효율성을 극대화 시킨다. 도커 컨테이너는 '애플리케이션'과 '그 실행 환경'을 묶어 이미지라는 단일패키지로 만든다. 즉, 이미지는 일관된 애플리케이션과 실행환경을 제공함으로써, '한번만 작성하면 어디서든 실행될 수 있음'을 보장한다. #2. Docker의 컨테이너 기술 핵심 요소. 1. 프로세스 A. 특정 컨테이너에서 작동하는 프로세스는 기본적으로 그 컨테이너 안에서만 액세스 할 수 있다. B. 컨테이너 안에서 실행되는 프로세스..