분류 전체보기 64

[Spring] Spring Framework vs. Spring Boot

회사에서 Spring Framework 를 사용하다가, Spring Boot 로 전환했던 경험이 있다. 그리고 현재는 Spring Boot 를 사용하는 곳으로 이직을 하여 커리어를 쌓고 있는 중이다.그 과정에서 Spring Boot 가 막연히 편하다, 생산성이 좋다, 레퍼런스 자료가 많다 등의 생각을 갖고 있었는데 Spring Framework 와 비교하여 어떤 점을 갖고 있는지 정리할 필요가 있다고 생각이 들어 이 글을 쓰게 되었다.그러면 구체적으로 장점을 나열하면 다음과 같다. 1. Jar 파일로 편리한 실행 가능- Spring Framework 의 경우 개발한 애플리케이션을 War 파일로 만들어 웹 애플리케이션 서버에 배포해야 하나, Spring Boot 의 경우 Tomcat 이나 Jetty 등의 ..

IT/Spring 2024.11.14

[CS] 예외 처리

예외 처리의 정의 & 체크 예외 vs. 언체크 예외 & 자주 쓰이는 표준 예외 클래스에 대해 정리하고자 한다. 1. 예외 처리란? - 프로그램 실행 시 발생할 수 있는 예외에 대비하는 것으로 프로그램의 비정상 종료를 막고 실행 상태를 유지하는 것 2. 체크 예외 vs. 언체크 예외 - 체크 예외 - 상속: Exception - 예외 확인 시점: 컴파일 단계 - 예외 처리: O - 장점: 개발자의 실수 감소 - 단점: 번거로움 / 레이어 간의 의존성 증가 / Stream 내에서 사용 X - 언체크 예외 - 상속: Runtime Exception - 예외 확인 시점: 실행 단계 - 예외 처리: X - 장점: 레이어 간의 의존성 감소 - 단점: 개발자의 실수 증가 3. 자주 쓰이는 표준 예외 클래스 - IOE..

IT/CS 2024.03.24

[CS] Cookie

Cookie 의 개념, 특징, 사용 목적에 대해 작성하고자 한다. 1. 개념 - Client 에 저장하는 key-value 형태의 작은 데이터 파일 2. 특징 - 브라우저 단위로 Cookie 생성 - 다른 도메인을 대신하여 Cookie 발급 불가 - 만료 시간까지 상태 정보 유지 3. 사용 목적 - 웹 사이트 재방문 시 효율적으로 서비스를 제공하기 위함 4. 출처 - https://www.youtube.com/watch?v=XgcCkcKGbys [ 10분 테코톡 - 디투의 쿠키와 세션 ]

IT/CS 2024.03.17

[CS] Connection-Timeout vs. Read-Timeout

Connection-Timeout 과 Read-Timeout 의 개념 비교에 대해 글을 쓰고자 한다. 1. Connection-Timeout - 종단 간 연결하는데 소요되는 최대 시간 - 이 시간을 넘기게 되면 연결할 수 없는 것으로 판단하고 에러 발생 2. Read-Timeout - 연결된 종단 간에 데이터를 주고 받을 때 소요되는 최대 시간 - 이 시간을 넘기게 되면 데이터를 주고 받을 수 없는 것으로 판단하고 에러 발생 * 참고 여기서, "연결"은 TCP 3-way handshake 를 통해 TCP 연결이 생성되는 것을 의미한다. 3. 출처 - https://alden-kang.tistory.com/20

IT/CS 2024.03.17

[CS] HTTP/1.1 과 HTTP/2

HTTP/1.1 과 HTTP/2, 각각의 특징에 대해 작성하고자 한다. 1. HTTP/1.1 - Persistent Connection > 지정한 timeout 동안 커넥션을 닫지 않는 방식 - Pipelining > 하나의 커넥션에서 응답을 기다리지 않고 순차적인 여러 요청을 연속적으로 보내 그 순서에 맞춰 응답을 받는 방식으로 지연 시간을 줄이는 방법 - Head of Line Blocking 문제 존재 - Header 구조의 중복 2. HTTP/2 - HTTP 메시지 전송 방식의 변화 > 바이너리 프레이밍 계층 사용 . 파싱, 전송 속도 증가 & 오류 발생 가능성 감소 - 요청과 응답의 다중화 > Head of Line Blocking 문제 해결 - 리소스 간 우선 순위를 설정 가능 - Server..

IT/CS 2024.03.17

[MySQL] GROUP BY 사용법

생각을 많이 하여 GROUP BY 개념을 사용하게 되는 케이스가 생겨 정리에 대한 필요성이 생겨 포스팅하고자 한다. > 어느 회사에서, 개인별로 자신과 동일한 부서에 일하는 직원 수가 몇 명인지 조회하는 쿼리가 필요하다. EMPLOYEES 테이블에서 ID, 이름(NAME), 부서(DEPARTMENT) 정보가 주어질 때 쿼리를 작성해보자. > SELECT e.ID, e.NAME, COUNT(c.ID) AS COUNT_COWORKER FROM EMPLOYEES e JOIN EMPLOYEES c ON e.DEPARTMENT = c.DEPARTMENT AND e.ID c.ID GROUP BY e.ID, e.NAME ORDER BY e.ID ASC ; 즉, 자체 테이블을 자가 결합하는 방법을 사용한다.

IT/SQL 2024.03.09

[MySQL] JSON_TABLE

기존 회사에선 Oracle 을 사용하다가, 최근에 이직한 회사에서 MySQL 을 사용하며 새로운 점들을 익히고 있다. 그러던 와중에 JSON Type 의 데이터를 파싱 등의 처리하는 작업을 맡게 되어 진행하게 되었다. 그 중 기록해 두었다가 추후에 계속 활용할 수 있도록 하기 위해 포스팅을 하려고 한다. -- 자세한 내용은 다음과 같다. -- JSON Type 의 데이터가 [{"id": 1, "item": "apple"}, {"id": 2, "item": "grape"} ... ] 등의 형태로 되어 있다고 가정한다. 이 때 아래와 같이 테이블 형태를 변경하고자 한다. (As-Is) fruit_no fruit_items ------------------------------------------------..

IT/SQL 2023.09.14

[CS] Real-Time Web

Real-Time Web, 그리고 이와 관련된 개념까지 같이 정리하고자 한다. 1. Real-Time Web 이란? - 인터넷에서 사용자들로 하여금 창작자가 정보를 만들어 내는, 즉시 수신할 수 있도록 하는 기술 혹은 서비스 2. 관련 기술의 특징 - Polling (폴링) - 전송할 데이터의 유무에 관계 없이 주기적으로 요청을 수행하는 방법 - 클라이언트는 지정된 시간 간격에 맞춰 서버에 지속적인 요청을 보냄 - 서버는 각 요청 마다 가용 데이터나 데이터가 없는 경우 빈 데이터를 보내거나 실패와 같은 적절한 응답을 함 - 데이터의 유무에 관계 없이 요청하여 불필요한 네트워크 비용이 발생 - 클라이언트와 서버 자원을 많이 낭비함 - 요청의 간격이 길면 실시간성이 떨어짐 - 반대로 간격이 짧으면 많은 자원..

IT/CS 2023.06.03

[Spring] Spring IoC Container

Spring IoC Container 의 개념에 대한 정리를 하고자 글을 쓴다. 1. Spring IoC Container 의 역할 - Spring Framework 에서 객체를 생성하고 관리하고 책임지고 의존성을 관리 해주는 컨테이너 - IoC (Inversion of Control, 제어의 역전) - 개념 - 객체의 생성, 생명 주기의 관리 등 모든 객체에 대한 제어권이 내부에서 외부로 역전 - 사용 이유 - 역할과 관심을 분리해 응집도를 높이고 결합도를 낮추며, 이에 따라 변경에 유연한 코드를 작성할 수 있는 구조를 만들어 객체 지향 원칙을 잘 지킬 수 있기 때문 - DI (Dependency Injection) 개념과의 비교 - DI 는 의존 방향의 역전을 의미 - 고수준 모듈이 저수준 모듈에 의..

IT/Spring 2023.05.21

[Java] JVM의 Garbage Collector

JVM 및 Garbage Collector 개념에 대한 정리를 하고자 한다. 1. JVM (Java Virtual Machine) 이란? - 운영체제의 메모리 영역에 접근하여 메모리를 관리하는 프로그램 2. Garbage Collector 란? - 동적으로 할당된 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능 - 이를 온전히 이해하기 위해, 메모리의 구조 중 Stack 영역과 Heap 영역에 대해 알아야 한다. - Stack 영역 - 정적으로 할당된 메모리 영역 - 원시 타입의 데이터가 값과 함께 할당 - Heap 영역에 생성된 Object 타입의 데이터의 참조 값 할당 - Heap 영역 - 동적으로 할당된 메모리 영역 - 모든 Object 타입의 데이터가 할당 - Heap 영역의 Obje..

IT/Java 2023.05.21