@SpringBootApplication 이란?
·
IT 지식 (기술면접 대비)
위 사진처럼 Spring initalizr를 통해 Spring Boot 프로젝트를 생성하면 위와같은 코드가 존재한다. 여기서 @SpringBootApllication이 무슨 역할을 하는지 알아보자. ⭐️ SpringBootApplication 내부 구조 @SpringBootApplication 어노테이션은 3개의 핵심 어노테이션을 조합한 메타 어노테이션이다. 아래에서 3가지의 핵심 어노테이션 안에는 여러개의 컴포넌트가 존재하는데, 간단하게 여러 컴포넌트는 무슨 의미인지, 그래서 핵심 컴포넌트를 정리하자면 무엇이고, 왜사용하는지에 대해서알아보겠다. 🔥 @SpringBootConfiguration @Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)..
HTTP란 ?
·
IT 지식 (기술면접 대비)
⭐️ HTTP (HyperText Transfer Protocol)란 ?[ HyperText Transfer Protocol 용어 정리 ]단어의미쉽게 말하자면HyperText텍스트 안에 다른 문서나 링크를 포함할 수 있는 문서 구조링크가 있는 문서Transfer전달한다데이터를 주고받는다Protocol통신규약대화 약속, 서로 이해할 수 있는 방식 HTTP란 웹에서 클라이언트(브라우저)와 서버 간에 데이터를 주고받기 위한 "통신 규약"(Protocol)이다. 쉽게 말해서 HTTP는 웹에서 대화하는 방식이다. 웹 브라우저가 사용자의 요청을 담아 서버에게 말을 건다 -> 서버는 요청을 듣고, 알맞은 응답을 준다-> 이처럼 말걸고 응답하는 대화 형식이 HTTP인것이다. HTTP는 웹문서간에 링크를 통해 연결할 ..
MVC 패턴이란 ?
·
IT 지식 (기술면접 대비)
⭐️ MVC 패턴이란 ?MVC는 Model - View - Controller의 약자로, 소프트웨어 개발에서 관심사 분리 원칙을 바탕으로 구성된 아키텍처 패턴이다. 애플리 케이션을 Model(비지니스 로직), View(화면), Controller(요청 처리)로 분리함으로써 유지보수성과 재사용성을 높이고, 협업 효율성을 향상시키는 패턴이다. ⭐️ 구성요소역할[ 요약 ]Model (모델)데이터와 비즈니스 로직을 처리View (뷰)사용자에게 보이는 화면을 담당Controller (컨트롤러)사용자의 요청을 받고, 처리 흐름을 조정 [ 상세 ]🔥 Model (모델) DB와 직접 연결되어 데이터를 조회하거나 조작한다. 순수 비지니스 로직과 엔티티 구조를 담당한다. 예 : JPA 엔티티 클래스, Repositor..
트랜잭션이란
·
IT 지식 (기술면접 대비)
⭐️ 트랜잭션(Transaction)이란 ?트랜잭션은 "더 이상 나눌 수 없는 최소 단위의 작업"을 의미한다. 쉽게 말해 하나의 작업 단위로 묶인 여러 쿼리문들을 성공하거나, 모두 실패하게 만드는 기능이다. 예를 들어, A 계좌에서 B 계좌로 송금한다고 생각해보자. A 계좌에서 돈을 인출하고, B 계좌에 돈을 입금한다. 이 두 작업은 반드시 함께 성공하거나, 둘다 실패해야 한다. 중간에 한쪽만 처리되면 심각한 오류가발생한다. 이때 두 쿼리를 하나의 트랜잭션으로 묶으면 오류를 방지할 수 있다. 🧐 왜 사용하는가 ?데이터 무결성 보장 : 중간에 오류가 나도 전체 작업을 원래대로 돌릴 수 있다. 복잡한 처리 단위 관리 : 여러 개의 SQL 작업을 하나처럼 다룰 수 있다. 실패 대비 : 예외 발생 시, 이전..
RDBMS란
·
IT 지식 (기술면접 대비)
⭐️ RDBMS란 무엇인가 ?RDBMS는 Relational DataBase Management System의 약자로 관계형 데이터베이스를 관리하는 프로그램이라고 할 수 있다. RDBMS를 알기전에 RDB(관계형 데이터베이스)를 알아야한다. ⭐️ 관계형 데이터베이스란 ?관계형 데이터베이스(Relational Database)는 데이터를 테이블 형태로 저장하고, 이 테이블은 기본키(Primary Key)와 외래 키(Foreign Key)를 이용해 서로 관계를 맺는 구조이다. 🔥 용어 정리테이블 : 엑셀처럼 생긴 구조 열(Column) : 속성 (예 : 이름, 나이 등) 행(Row) : 실제 데이터 한건, 하나의 데이터(레코드) 기본 키 = 각 행을 고유하게 구분할 수 있는 값 (기본 키 예 : 회원 I..
데이터베이스의 다양한 유형 관계
·
IT 지식 (기술면접 대비)
⭐️ 관계형 데이터베이스데이터베이스의 다양한 유형 관계를 이해하려면, 먼저 관계형 데이터베이스를 알야한다. 관계형 데이터베이스는 구조화된 데이터를 테이블 형태로 저장하며, 이 테이블을 "릴레이션"이라고 한다. 각 테이블은 사전에 정의된 컬럼(열 구조)을 가지며, 다른 테이블과 연결되어 관계를 형성할 수 있다. 이제 관계의 종류에 대해서 알아 보겠다. ⭐️ 테이블 간 관계의 종류관계형 데이터베이스에서는 보통 3가지의 관계를 표현한다. 1:1 → 한 레코드가 다른 테이블의 단 하나의 레코드와 연결 1:N → 한 레코드가 여러 개의 레코드와 연결 N:M → 여러 개의 레코드가 서로 여러 개의 레코드와 연결 * 레코드 : 논리적으로 연관된 필드의 집합을 의미하며, 테이블에서 행(row)에 해당된다. 🔥 1..
SQL JOIN의 'INNER JOIN'과 'LEFT JOIN'의 차이점은 무엇인가
·
IT 지식 (기술면접 대비)
⭐️ SQL의 JOIN이란?JOIN은 두 개 이상의 테이블을 서로 연결하여 관련된 데이터를 조회할 때 사용하는 SQL 문법이다. 관계형 데이터베이스에서는 데이터가 여러 테이블로 분리되어 저장되기 때문에,테이블간 필요한 정보를 얻기 위해선 JOIN이 필수다. -> 사용 이유 ‼️ JOIN은 기본적으로 공통 컬럼(키)을 기준으로 두 테이블을 합친다. 조인의 종류에 따라 데이터가 합쳐지는 방식이 달라지는데, 이번 글에선 INNER JOIN과 LEFT JOIN에 대해서 알아보겠다. ⭐️ INNER JOIN & LEFT JOININNER JOIN : 양쪽 테이블 모두에 일치하는 값이 있는 경우에만 반환을한다. -> 결과로는 교집합을 반환한다. LEFT JOIN : 왼쪽 테이블의 모든 행 + 오른쪽 테이블의 일차..
정규화(Normalization)란
·
IT 지식 (기술면접 대비)
⭐️ 정규화란 ?정규화란 어떤 대상을 일정한 규칙이나 기준에 맞게 변환하거나, 비정상적인 상태를 정상적인 상태로 만드는것이다. 🧐 그럼 데이터베이스에선 정규화를 사용하는 이유가 무엇일까 ? 데이터베이스에서 정규화의 목적은 "테이블 간에 중복된 데이터를 허용하지 않는다"는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성을 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다.* 무결성 : 데이터 또는 정보가 손상되거나 변형되지 않고 정확하게 유지되는 것 데이터베이스에선 이러한 테이블을 분해하여 정규화를 시킬 수 있는 방법을 제공하는데, 테이블이 어떻게분해되는지에 따라 정규화 단계가 달라지는데, 각각의 정규화 단계에 대해서 알아보겠다. ⭐️ 제1정규형 (1NF: First Normal Form)..
Primary Key와 Foreign Key의 차이와 각각의 역할
·
IT 지식 (기술면접 대비)
⭐️ Primary Key와 Foreign Key의 차이 및 역할데이터베이스 구축 시 각 데이터 테이블을 잘 관리하기 위해 하나의 고유한 데이터를 지정하고,이에 파생되는 다른 데이터를 관리할줄 알아야하는데, 여기서 나오는 Primary Key와 Foreign Key에 대해서 알아보겠다. 🔥 Primary Key (기본 키)테이블의 각 행(row)을 유일하게 식별하기 위해 설정하는 컬럼이다. 중복될 수 없고, NULL(빈값)이 될 수 없다. 🍀 특징 1. 고유성 : 모든 레코드(행)는 고유한 Primary Key를 가져야 한다. -> 중복 x 2. NOT NULL : Primary Key 컬럼은 NULL을 허용하지 않는다. 3. 기본 정렬기준 : 일부 DBMS에서 Primary Key를 기준으로 정렬 ..
SQL문 실행 순서
·
IT 지식 (기술면접 대비)
⭐️ SQL문 실행순서SQL문은 작성한 순서대로 실행되지 않는다. 정해진 실행 순서에 따라 내부적으로 실행순서가 나뉘게 된다. [ 예시 코드 ]SELECT departments.name, COUNT(employees.id) AS 직원수FROM employeesJOIN departments ON employees.dept_id = departments.idWHERE employees.salary > 50000GROUP BY departments.nameHAVING COUNT(employees.id) > 5ORDER BY 직원수 DESCLIMIT 10; 위 코드의 실행 순서는 어떻게 될까? 일반적으로 순서와 의미는 다음과 같다. 1. FROM: 쿼리의 대상이 되는 테이블을 선택한다. ( JOIN시 FROM..