개발
[네트워크] 로드 밸런싱(Load balancing)
로드 밸런싱이란? 로드 밸런싱이란 부하 분산을 위해서 가상(virtual) IP를 통해 여러 서버에 접속하도록 분배하는 기능을 말한다. 로드 밸런싱에서 사용하는 주요 기술은 다음과 같다. NAT(Network Address Translation): 사설 IP 주소를 공인 IP 주소로 바꾸는 데 사용하는 통신망의 주소 변조기이다. DSR(Dynamic Source Routing protocol): 로드 밸런서 사용 시 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 스위치의 IP 주소가 아닌 클라이언트의 IP 주소로 전달해서 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념이다. Tunneling: 인터넷상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념으로, 데이터를 캡슐화..
[CS] 프레임워크(Framework)와 라이브러리(Library)의 차이
프레임워크(Framework)란? 프레임워크는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 커넥션 등의 기능들을 위해 뼈대(구조)를 제공한다. 개발자는 이러한 뼈대 위에서 코드를 작성해 원하는 애플리케이션을 개발할 수 있다. 프레임워크는 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 상호 협력하는 클래스와 인터페이스의 집합이라고 할 수 있다. 쉽게 말해 프레임워크는 개발자가 개발을 쉽게 할 수 있도록 뼈대를 제공해준다고 생각하면 된다. 예를 들어 Java 개발에서 사용되는 Spring 프레임워크나 Python 개발에 사용되는 Django, 안드로이드 앱개발에 사용되는 Android 등이 있다..
[Spring] 스웨거 (Swagger) v3 설정하기
2.설정 https://springdoc.org/#properties OpenAPI 3 Library for spring-boot Library for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the OpenAPI description.Generates automatically the OpenAPI file. springdoc.org 1) build.gralde에 관련 의존성 추가 dependencies { implementation 'org.springdoc:springdoc-openapi-ui:1.6.9' } 2) yml 설정 추가 springdoc: swagger-ui: path: /swagger-ui.html ..
[MYSQL/SQL] HEX , UNHEX 16진수 데이터
/* [HEX , UNHEX 사용해 16진수 데이터 표시 및 복호화 원본 데이터 표시 실시] 1. HEX : 정수값 및 문자열 값을 HEX 값으로 출력해줍니다 2. UNHEX : HEX로 된 값을 다시 복호화 디코딩을 수행해서 표시해줍니다 */ -- [쿼리문 실행 실시] SELECT HEX (10) AS "정수 10 HEX 값", HEX (11) AS "정수 11 HEX 값", HEX ('TWOK') AS "STRING TO HEX", UNHEX ('54574F4B') AS "HEX TO UNHEX"; 연관된 글 : 참고: 39. (MYSQL/SQL) HEX , UNHEX 사용해 16진수 데이터 표시 및 복호화 원본 데이터 표시 실시
[JAVA] Lombok 어노테이션
@Data @Data는 @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정해주는 매우 유용한 어노테이션입니다. @Data public class User { // ... } 사용 방법은 다른 어노테이션들과 대동소이합니다. 클래스 레벨에서 @Data 어노테이션을 붙여주면, 모든 필드를 대상으로 접근자와 설정자가 자동으로 생성되고, final 또는 @NonNull 필드 값을 파라미터로 받는 생성자가 만들어지며, toStirng, equals, hashCode 메소드가 자동으로 만들어집니다. @Builder 어노테이션 만일 이 어노테이션이 없었다면 After 부분을 일일이 직접 구현해줘야했다. // Before: ..
[Spring] Swagger 어노테이션
@Tag = api 그룹 설정 Open API 3.0 Swagger v3 Target: ANNOTATION_TYPE, METHOD, TYPE name: 태그의 이름 description: 태그에 대한 설명 Tag에 설정된 name이 같은 것 끼리 하나의 api 그룹으로 묶는다. 주로 Controller나 Controller의 Method 영역에 설정한다. @Tag(name = "posts", description = "게시물 API") @RestController @RequiredArgsConstructor @RequestMapping("/api/v1/") public class PostsApiController { ... @Schema = api Schema 설정 Open API 3.0 Swagger ..
[Spring] 빌더 패턴(Bulider Pattern)
1. 빌더 패턴이란? 생성과 관련된 디자인 패턴으로, 동일한 프로세스를 거쳐 다양한 구성의 인스턴스를 만드는 방법 빌더 패턴은 GoF 디자인 패턴 중 생성 패턴에 해당하고 주로 복잡한 단계를 거쳐야 생성되는 개체의 구현을 서브 클래스에게 넘겨줄 때 많이 사용된다. 빌더의 생성자나 메소드에서 유효성 확인을 할 수 있고, 많은 매개변수들을 혼합해서 확인해야 하는경우, build 메소드에서 호출하는 생성자에서 확인할 수 있다. 또, 실패하면 예외를 발생시켜 어떤 매개변수가 잘못되었는지 확인도 할 수 있다. 1-1. 정의(Definition) GoF 디자인 패턴 중 생성 패턴에 해당한다. 빌더 패턴은 복잡한 객체를 생성하는 클래스와 표현하는 클래스를 분리하여, 동일한 절차에서도 서로 다른 표현을 생성하는 방법을..