🖥️ Back-end 15

Insomnia 환경변수 설정해서 accessToken 자동 저장

Insomnia 다운로드 링크 DownloadDownload Insomnia the best API Client for REST, GraphQL, GRPC and OpenAPI design tool for developersinsomnia.rest 1. 초기 환경변수 설정편집 모양을 클릭하면 Manage Environments로 넘어가지는데 이때 아래처럼 key : value 형태로 작성해 놓는다. 처음에는 token이 저장되기 전이므로 빈 칸으로 설정한다.{ "accessToken": ""} 2. 생성된 토큰 자동으로 환경변수에 저장하기토큰을 생성하는 API의 Scripts -> After-response 부분에 해당 js 코드 삽입 후 Send 하게되면 아래의 이미지 처럼 환경변수에 자동으로 토큰이 ..

🖥️ Back-end 2025.06.25

Exception에 대해서 알아보자

자바에서 Exception은 Throwable의 하위 클래스로, 애플리케이션에서 처리 가능한 예외를 나타낸다. Exception을 크게 2가지로 보면 RuntimeException(Unchecked Exception) : 컴파일러가 강제로 처리하지 않음. 주로 프로그래밍 오류그 외 Exception(Checked Exception) : 컴파일러가 try-catch 또는 throws로 처리하도록 강제. 주로 외부 요인에 의한 오류 복구가 가능하다면 Checked, 개발자의 실수라면 Unchecked를 선택하면 좋다.RuntimeException 계열 : 컴파일러가 강제로 처리하지 않으므로 throws 선언이 필수는 아니다. 주로 코드 수정으로 방지 가능한 경우에 사용한다. throws 선언 없이 자유롭게 ..

🖥️ Back-end 2025.04.02

웹 소켓이란?

웹 소켓을 알기전에 간단하게 소켓에 대해 알아보면 네트워크 통신에서 컴퓨터 간 데이터를 주고받을 수 있게 해주는 인터페이스를 의미한다. 즉, 네트워크를 통해 두 프로그램이 서로 대화 할 수 있도록 연결해주는 다리 같은 역할을 한다고 볼 수 있다.소켓은 운영체제에서 제공하는 기능으로, 주로 TCP/IP 같은 네트워크 프로토콜 위에서 동작한다.예를 들어, 우리가 편지를 주고받을 때 우체통이 필요하듯이, 네트워크에서는 소켓이 그 역할을 하게된다. 소켓은 IP 주소와 포트 번호로 식별되며, 이를 통해 특정 기기와 특정 애플리케이션을 연결한다. 웹 소켓(WebSocket)은 양방향 실시간 통신을 제공하며, 주로 채팅, 알림, 실시간 업데이트 같은 기능에 사용된다. HTTP를 기반으로 초기 연결을 설정하지만, 이후..

🖥️ Back-end 2025.04.01

데이터베이스 락(Lock) 이란?

다중 사용자 환경에서 데이터의 일관성과 무결성을 유지하기 위해 사용되는 메커니즘으로, 여러 트랜잭션이 동시에 동일한 데이터에 접근할 때 발생할 수 있는 충돌을 방지하고, 데이터가 예상치 못하게 변경되거나 손상되는 것을 막는 역할을 한다.즉, 한 트랜잭션이 특정 데이터에 대해 작업을 하고 있을 때 다른 트랜잭션이 그 데이터에 접근하지 못하도록 잠그는 것 이다. 비관적 락(Pessimistic Locking) : 데이터에 대한 접근을 제어하기 위해 사용된다. 데이터베이스에서 특정 행이나 테이블에 대해 락을 걸어, 다른 트랜잭션이 동시에 동일한 데이터에 접근하거나 수정하지 못하게 한다. // 공유 락 @Lock(LockModeType.PESSIMISTIC_READ) @Query("select ..

🖥️ Back-end 2025.03.31

자바의 Record 란?

Java 16에서 정식 출시된 불변 데이터 객체를 간단히 정의하기 위한 특별한 클래스 형태로, 주로 데이터를 담는 "데이터 홀더" 역할을 한다.DTO , 값 객체 (Value Objects) 등의 다양한 용도로 사용할 수 있다.기존의 클래스와 달리 모든 필드가 final 키워드로 선언되며, 객체 생성 후 변경할 수 없다는 특징이 있다.또한 필드를 선언하면 자동으로 getter, equals(), hashCode(), toString() 등 메서드를 자동으로 생성해줘서 보일러 플레이트 코드를 줄일 수 있다. 이러한 특성으로 멀티 스레드 환경에서 데이터가 의도치 않게 변경되지 않고 안전하게 전달할 수 있다.보일러 플레이트 코드 : 반복적인 코드를 줄일 수 있다. 기존에 사용하던 Classpublic clas..

🖥️ Back-end 2025.03.27

DDD (Domain Driven Design) : 도메인 주도 설계 도전 1일차

간단하게 복잡한 소프트웨어 시스템을 개발할 때, 비즈니스 도메인(업무 영역)을 중심으로 설계하고 구현하는 접근 방식이라고 이해를 해보겠습니다. 도메인 : 시스템이 해결하고자 하는 비즈니스 문제의 영역 ex) 쇼핑몰, 금융 시스템...엔티티 : 고유한 식별자를 가진 객체 ex) User 객체, Order 객체...값 객체 : 고유한 식별자가 필요 없는 객체. 주로 그 자체에 속성 값이 중요하다.  ex) 주소를 나타내는 Address 객체애그리게이트 : 관련 엔티티와 값 객체의 묶음. 한 개의 애그리게이트 루트가 전체 애그리게이트를 대표하고, 이 루트를 통해서만 애그리게이트에 접근할 수 있다. ex) 루트 = Order 객체, 애그리게이트 = OrderItem 객체...레포지토리 : 엔티티의 영속성을 관리..

🖥️ Back-end 2025.03.13

웹 사이트의 동작 원리

사용자는 접속하고 싶은 브라우저의 주소를 입력하게 되면 원하는 브라우저를 볼 수 있게된다. 예를 들어 www.google.com으로 로 접속하면 우리는 google 화면을 볼 수 있다. 그렇다면 내부적으로는 어떻게 동작하는지도 알아보자  우선 OSI 7계층에 대해서 간단하게 알아보면OSI 7계층 모델은 네트워크 통신을 7개의 계층으로 나누어 설명하는 참조 모델이다. 상위 계층으로 갈수록 사용자와 가까운 부분을 다루게 된다고 볼 수 있다.물리 계층 : 네트워크 장비 간의 물리적 연결을 담당한다. ex) 비트 전송, 전기적 신호 변환, 케이블 및 하드웨어 연결데이터 링크 계층 : 인접한 네트워크 장비 간의 데이터 전송을 관리한다. ex) 오류 감지 및 수정, MAC 주소 관리 등.네트워크 계층 : 데이터가 ..

🖥️ Back-end 2025.03.11

Jackson 이란?

Java에서 JSON을 처리하기 위한 라이브러리로, JSON 데이터의 직렬화(Serialization) 및 역직렬화(Deserialization)를 쉽게 수행할 수 있도록 도와준다. ObjectMapper : JSON과 Java 객체 간의 변환을 수행하는 클래스. writeValueAsString(), readValue()등의 메서드를 통해 JSON 데이터를 손쉽게 변환할 수 있다.// Jackson 라이브러리에서 제공하는 클래스.ObjectMapper obj = new ObjectMapper();// 객체형태의 값을 String으로 직렬화 한다.String json = obj.writeValueAsString(new User("이름", 20)); // User 클래스에는 Getter가 필요하다.Syst..

🖥️ Back-end 2025.03.05

RabbitMQ 란?

대규모 시스템에서 수배만 명의 사용자가 동시에 접속하고 상호작용할 수 있는 시스템을 구축해야 하는 상황에서 안정성과 신뢰성을 유지하면서 고성능을 제공해야 한다.카톡이나 라인 같은 메시징 시스템을 개발한다고 했을 때, 사용자 수를 고려해서 초당 요청량을 생각해 보자, 시스템 모니터링을 통해 하루에 몇 명의 사용자가 접속하는지 알 수 있다. 그중에서 제일 높은 피크의 범위를 견딜 수 있게 애플리케이션을 개발해야 한다. Queue를 통해서 대규모 스트림 처리를 할 수 있는데, 이번에는 RabbitMQ에 대해 학습해 보았다. Queue : 선입선출(First In, First Out, FIFO) 구조를 따르는 선형 자료구조입니다. 먼저 들어간 데이터가 먼저 나오는 방식으로 동작하며, 일상생활에서 줄을 서는 느낌..

🖥️ Back-end 2025.03.04

Redis 기본 문법 알아보기

인메모리 저장소와 Redis 란? - Redis Stack 설치MySql, Oracle 등 관계형 데이터베이스는 테이블의 형태로 데이터를 저장한다. 서비스가 종료가 되어도 데이터베이스의 데이터는 계속 남아있는 영속성, 항상 일관된 데이터를 유지하는 일관성이seungg8361.tistory.com Redis가 설치가 완료되었다면, 문법을 테스트해 보자-- String-- Map-- SET -> 문자열 자료형을 의미-- GET -> 문자열 자료형을 가져온다 -> 문자열 데이터를 반환-- user:email -> key 의 역할-- .... ex) SET user:email alex@example.comGET user:email-- key 이름 변경RENAME user:email user:emails--..

🖥️ Back-end 2025.03.03