분류 전체보기
-
TypeScript에서 인터페이스와 타입의 사용방법과 차이점Javascript 2023. 3. 16. 01:09
인터페이스(Interfaces) 인터페이스는 TypeScript에서 객체의 타입을 정의하는 방법 중 하나입니다. 인터페이스는 객체가 가져야 할 프로퍼티, 메소드 등의 구조를 정의합니다. interface Person { name: string; age: number; greet: () => void; } 위의 예제에서 Person 인터페이스는 name과 age라는 두 개의 프로퍼티와 greet라는 메소드를 가져야 함을 정의합니다. 이제 Person 인터페이스를 사용하여 해당 구조를 가진 객체를 만들 수 있습니다. const person: Person = { name: 'John', age: 30, greet: () => console.log('Hello!') }; 인터페이스는 상속이 가능하며, 클래스에서..
-
자바 오버로딩, 오버라이드Java 2023. 3. 16. 01:08
오버로딩 (Overloading) 오버로딩은 하나의 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것입니다. 오버로딩된 메소드들은 서로 다른 매개변수 타입, 개수, 순서 등을 갖습니다. 호출할 때 인자에 따라 맞는 오버로딩된 메소드가 자동으로 선택됩니다. public class Calculator { public int sum(int x, int y) { return x + y; } public int sum(int x, int y, int z) { return x + y + z; } public double sum(double x, double y) { return x + y; } } 오버라이딩 (Overriding) 오버라이딩은 상위 클래스가 정의한 메소드와 동일한 이름, 매개변수, 반환형을 갖..
-
Spring Entity, DTO, VOSpring 2023. 3. 16. 01:06
HTML 삽입 미리보기할 수 없는 소스 Spring Framework에서 Entity, DTO, VO는 데이터를 표현하고 전달하는 데 사용되는 클래스입니다. 이들은 각각 다른 목적을 가지며 일반적으로 Spring 애플리케이션에서 사용됩니다. Entity Entity는 데이터베이스 테이블과 일치하는 클래스입니다. 보통 JPA(Java Persistence API)를 사용하여 데이터베이스와 상호작용하며, 데이터베이스의 각 열에 해당하는 클래스 속성을 가지고 있습니다. Entity는 데이터베이스 테이블과 일치하기 때문에 테이블의 각 레코드를 표현합니다. DTO DTO는 Data Transfer Object의 약어입니다. DTO는 애플리케이션 내에서 데이터를 전송하는 데 사용되며, 일반적으로 Entity 클래스..
-
Spring Interceptor, Filter, AOP 와 각 차이점Spring 2023. 3. 16. 01:02
HTML 삽입 미리보기할 수 없는 소스 Interceptor Spring Interceptor는 스프링 프레임워크에서 제공하는 기능으로, 컨트롤러의 메서드 호출 전후에 원하는 처리를 수행할 수 있습니다. 일반적으로 로그인 여부 체크, 권한 체크, 인증 토큰 체크 등의 기능을 수행합니다. Interceptor는 HandlerInterceptor 인터페이스를 구현하고, WebMvcConfigurer 인터페이스를 구현하여 설정할 수 있습니다. Interceptor의 특징은 다음과 같습니다. 컨트롤러의 메서드 호출 전후에 처리를 수행합니다. 컨트롤러가 처리하는 요청만 가로챕니다. HandlerInterceptor 인터페이스를 구현합니다. Filter Filter는 Servlet API에서 제공하는 기능으로, 요..
-
JWT(JSON Web Token) 와 OAuth기타 2023. 3. 16. 01:00
HTML 삽입 미리보기할 수 없는 소스 JWT( JSON Web Token)와 OAuth는 모두 인증과 권한 부여를 위한 프로토콜이지만, 각각 다른 역할을 수행합니다. JWT는 JSON 형식으로 인코딩된 데이터를 포함하는 토큰 기반의 인증 방식입니다. JWT는 인증에만 사용되며, 사용자가 로그인하면 JWT를 생성하고 이를 사용하여 클라이언트가 서버에 인증을 요청할 수 있습니다. JWT는 서버가 사용자를 인증하기 위해 사용자 이름과 암호를 확인할 필요 없이, 서명된 토큰을 분석하여 인증합니다. 이러한 특징 때문에 JWT는 로그인된 사용자를 지속적으로 인증하는 데 사용되는 세션 쿠키나 토큰과 같은 기존 인증 방식보다 더 안전하고 효율적입니다. OAuth는 사용자가 제 3자 애플리케이션에 대한 액세스 권한을 ..
-
Java Generic 이란Java 2023. 3. 16. 00:56
HTML 삽입 미리보기할 수 없는 소스 Java에서 제네릭은 데이터 타입의 안정성을 보장하는 기능입니다. 제네릭을 사용하면 컴파일 시에 타입 체크를 수행하고, 실행 시에 타입 에러를 방지할 수 있습니다. 이를 통해 개발자는 컴파일 시에 타입 안정성을 보장받고, 런타임에서 발생하는 예외를 줄일 수 있습니다. 제네릭을 사용함으로써 얻을 수 있는 장점은 다음과 같습니다. 타입 안정성: 제네릭을 사용하면 타입 안정성을 보장받을 수 있습니다. 컴파일러는 컴파일 시에 제네릭 타입을 체크하므로 런타임에서 타입 에러를 방지할 수 있습니다. 코드 재사용성: 제네릭을 사용하면 여러 종류의 데이터 타입을 처리하는 메서드나 클래스를 만들 수 있습니다. 이렇게 만든 코드는 다양한 타입의 객체에서 재사용이 가능합니다. 가독성: ..
-
RDB와 NoSQLDB 2023. 2. 22. 22:43
1. RDB vs NoSQL 2. NoSQL - Nosql의 4가지 데이터베이스 유형 1. Key-Value Store 일반적으로 해시 테이블 데이터구조와 매우 유사함. 쓰기가 매우 빠르며 읽기 및 업데이트 속도가 빠르다. DynamoDB, Redis 등 2. Wide Column-Oriented Store 행마다 각 각 다른 수의 스키마를 가질 수 있다 아래 그림과 같이 이름(key)에 해당하는 값에 스키마들이 상이한 것을 볼 수 있다. 대량의 데이터의 압축, 분산처리 ,집계 쿼리 (SUM, COUNT, AVG) 및 빠른 쿼리 동작 속도가 특징 3. Document-Oriented Database 복잡한 구조의 데이터를 작업할 때 더 나은 성능, 인덱싱 지원 쿼리 처리에 있어서 데이터를 파싱해서 연산을..
-
Using an API Gateway (feat. API gateway를 사용하지 않을 경우)MSA 2023. 2. 22. 21:04
Direct Client-to-Microservice Communication (마이크로서비스 직접 호출) 이 패턴에서는, 클라이언트는 각 마이크로서비스에 직접 호출할 수 있습니다. 각 마이크로스비스는 퍼블릭한 엔드포인트를 가지고 있을 수 있습니다. ex) https://serviceName.api.company.name 위 URL은 마이크로서비스의 로드밸런서에 맵핑되며, 사용가능한 인스턴스에 요청을 분산시킵니다. 모바일 클라이언트는 위 나열된 서비스에 요청합니다. 이 패턴의 문제점은 각 리퀘스트를 분리해서 작성해야 된다는것입니다. 더 복잡한 구조의 경우 작성하는 리퀘스트가 더많아질 수 있습니다. 다른 문제는 일부 프로토콜은 웹 친화적이지 않다는 것입니다. 한 서비스는 RPC를 사용하고 한서비스는 AMQ..