본문 바로가기

전체 글156

MySql ON DUPLICATE KEY UPDATE 구문 MySql에서 데이터가 없으면 INSERT, 이미 데이터가 있으면 UPDATE*하나의 쿼리로 두 가지 경우를 해결할 수 있다.  ▷ 사용법 INSERT INTO [TABLE] ( [COLUMN1], [COLUMN2], [COLUMN3], [COLUMN4] ) VALUES ( [VALUES1], [VALUES2], [VALUES3], [VALUES4])ON DUPLICATE KEY UPDATE[COLUMN2] = [VALUES2],[COLUMN3] = [VALUES3],[COLUMN4] = [VALUES4];  ▷ Example /** 테스트 테이블 생성 */CREATE TABLE test( TEST_ID varchar(225) NOT NULL, TEST_NAME varchar(225) NOT.. 2023. 8. 2.
Custom Annotation 생성 Example 간단한 Custom Annotation 생성, 확인*메타 어노테이션 관련 자세한 설명 생략*Reflection 설명 생략  import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 사용자 정의 어노테이션 생성 */@Target(ElementType.TYPE) // @interface 어노테이션의 적용 위치를 설정하는 옵션@Retention(RetentionPolicy.RUNTIME) // @interface 어노테이션의 적용범위로 어떤 시점까지 사용될 지 결정하는 옵션@in.. 2023. 7. 26.
Lombok이란? 간편한 코드 작성, 가독성, 유지보수를 편리하게 해주는 Lombok*자세한 설명 생략  ▷ Lombok 이란? Java의 라이브러리로 반복되는 메소드를 Annotation을 사용해서 자동으로 작성해 주는 라이브러리*Annotation(@) : 작성한 코드에 대해 추가적인 정보를 제공하여 기능을 실행*Annotation 종류 :    - 표준 어노테이션(Java에서 기본적으로 제공)    - 메타 어노테이션 (Annotation을 정의하는데 사용)    - 사용자 정의 어노테이션(사용자가 직접 정의)Lombok을 이용해서 작성한 코드는 컴파일 과정에서 Annotation을 이용해 코드를 생성 후 자동 컴파일  ▷ 참고 [자바] 자주 사용되는 Lombok 어노테이션Engineering Blog by Dale.. 2023. 7. 25.
Docker 란? 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼*자세한 설명 생략  ▷ Docker 란? Container 기반의 오픈소스 가상화 플랫폼하나의 Host OS위에 Docker를 설치하여 다수의 Container를 생성하고 관리*Container : 리눅스 자체 기능을 사용한 프로세스 단위의 독립된 환경 안의 가상공간*Container에 필요한 커널은 Host OS의 커널을 공유하여 사용  (애플리케이션을 구동하는데 필요한 패키지만 있으면 Container 구동)    *커널 : 컴퓨터 자원을 관리하는 OS의 핵심 부분(쉘 : 사용자와 커널 사이의 인터페이스)VM보다 가볍고 빠르고 효율적확장성과 이식성이 뛰어남Docker가 설치돼 있다면 Image를 통해 Container 실행 가.. 2023. 7. 24.
TDD, BDD, DDD란? 다양한 개발 방법론 중 TDD, BDD, DDD의 기본 개념을 간단히 소개*자세한 설명 생략  ▷ TDD(Test Driven Development) - 테스트 주도 개발*코드 양 증가(테스트 코드들의 관리 이슈)로 빠른 생산성이 요구되는 시점에는 적용이 어려움 테스트 코드를 먼저 작성(단위 테스트)짧은 개발 서클을 반복하는 개발 방식요구사항에 따른 테스트 케이스를 설정해당 코드를 리팩토링 하는 과정으로 프로그래밍을 진행작동하는 깔끔한 코드를 작성새로운 기능 추가 시 기존 기능들과 성능 평가  ▷ BDD(Behavior Driven Development) - 행동 주도 개발 TDD에서 파생테스트 코드 자체가 요구사항이 되도록 개발하는 방식(통합 테스트)코드가 수행할 행위에 대한 명세를 먼저 작성  ▷ D.. 2023. 7. 23.
PWA 란? PWA의 기본 개념을 간단히 소개*자세한 설명 생략  ▷ PWA(Progressive Web App)이란?     - Web에 최신 기술을 더하여 브라우저가 있는 환경(데스크톱, 태블릿, 모바일)이면       어디에서나, 마치 Native App과 같은 사용성을 가진 Web App을 제공하고자 하는 시도이자 방법론         *HTML, CSS, 자바스크립트와 같은 웹 기술들을 사용해 App과 같은 기능을 갖춘 Web App         *푸시 알림 등 Native App의 기능 제공         *Native App, Web App의, Hybrid App의 : 아래 참고     - 최초 구글이 PWA라는 이름으로 방법론과 개념을 제시하였고,      자신들의 브라우저인 Chrome에 새롭게 개.. 2023. 3. 14.
HTML5 란? HTML5의 기본 개념을 간단히 소개*자세한 설명 생략  ▷HTML5 란?    *모바일 웹에 핵심 기술    *최신 버전의 웹 브라우저들은 모두 HTML5를 지원     - HyperText Markup Language의 약자로 HTML의 5번째 버전을 의미      * HTML : 웹페이지를 만드는 데 사용되는 Markup Language로, 각 웹페이지는 HTML 태그를 통해 구성       * HyperText : 다른 페이지로 이동하거나 같은 페이지 내의 다른 데이터로 이동하는 것(링크)      * Markup Language : 태그를 이용하여 문서나 데이터의 구조를 명시하는 언어     - 기존 HTML 보다 표현할 수 있는 기능들이 다양해서 더 많은 표현 가능       *브라우저 내에 .. 2023. 3. 9.
WebSocket vs Socket vs Socket I.O 간단한 개념 소개를 통해 어떻게 다른지 파악*자세한 설명 생략  ▷ 소켓(Socket) 이란? *Socket 통신 : Server도 Client에게 요청을 보낼 수 있는 양방향 통신(연결유지) - 네트워크상에서 동작하는 프로그램 간 통신의 종착점 - 소켓을 통해 데이터 통로가 생성 - Server-Client 통신 구조 - Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식(연결유지)  ▷ 소켓(Socket)의 유형*소켓은 일반적으로 Transport 계층에 속해있는 TCP 프로토콜을 말한다.     -  TCP(Transmission Control Protocol / Stream Socket)         - 연결 지향형 소켓         - 신뢰성 보장      .. 2023. 2. 17.
카프카(Kafka)란? 카프카의 기본 개념을 간단히 소개*자세한 설명 생략  ▷ 카프카(Kafka) 란?     - 고성능 분산형 데이터 스트리밍 플랫폼     *스트리밍 플랫폼(Streaming Platform) : 데이터 스트림을 읽고 쓰고 저장하고 처리하는 시스템     *데이터 스트림(이벤트 스트림, 스트리밍 데이터) : 끊임없는 지속적인 데이터 흐름     - Message Broker 역할을 할 수 있도록 구현(발행/구독)    - 기존 메시징 시스템과는 달리 Message를 메모리 대신 파일 시스템에 쌓아두고 관리  ▷ 카프카(Kafka) 주요 구성     - KafkaCluster : 여러 개의 Broker를 구성한 클러스터(확장성, 고가용성)    - Broker : 카프카 애플리케이션이 설치된 서버 또는 노드.. 2023. 2. 7.
728x90
728x90