분류 전체보기 (93) 썸네일형 리스트형 Java - 커맨드패턴(Command Pattern) 커맨드패턴(Command Pattern)이란? : 객체의 행위(메소드)를 클래스로 만들어 캡슐화 하는 패턴. 커맨드패턴은 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계한다. 어떤 객체에서 다른 객체의 메소드를 실행하려면 참조를 하고 있어야 하는 의존성이 발생하는데, 이 의존성을 제거할 수 있다. 커맨드패턴 구현예제 public class Main { public static void main(String[] args) { // 채널변경 Channel channel = new Channel(); MyHome home = new MyHome(); home.setCommand(new ChannelCommand(channel)); home.touch1(); hom.. Java - try-with-resources를 통한 자원해제방법 최근에 FileReader, BufferedReader를 공부하면서, 버퍼의 자원해제 관련하여 새로 알게된 내용이 있어 남겨둔다 = FileReaderTests.java package com.ys.test.lab; import com.ys.test.lab.common.File; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.util.List; import static org.junit.jupiter.api.Assertions.assertEquals; public class FileReaderTests { File file; @BeforeEach public void load() { this.fi.. Spring - Mybatis FrameWork 여러 스키마 적용하기 MyBatis FrameWork 개념 및 설정 Spring - Mybatis FrameWork 개념 및 설정 MyBatis란? : 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM 프레임워크이다. Hibernate나 JPA처럼 새로운 DB프로그래밍 패러다임을 익혀야하는 부담 없이 SQL 쿼리를 그대로 사용한다. 따라 xggames.tistory.com Spring의 Mybatis에서 기본적으로 DataBase 설정 및 주요 컴포넌트의 역할에 대해서 알아본 적이 있다. 그렇다면 스키마가 여러개인 경우에는 어떻게 설정해야할까? application.yml spring: my-lab-db1: datasource: jdbc-url: jdbc:mysql://localhost:3306/my_lab_db.. Java - 정규표현식 정리 정규 표현식 문법 기호 설명 [] 한 개의 문자 ([abc]: a,b,c중 하나의 문자, [^abc]: a,b,c 이외 하나의 문자, [a-zA-Z] a~z A~Z중 하나의 문자) \d 한 개의 숫자 ([0-9]와 동일) \D 숫자를 제외한 모든 문자 \s 공백 문자 \S 공백 문자가 아닌 나머지 문자 \w 알파벳이나 숫자, 언더바 \W 알파벳이나 숫자 (언더바는 제외) ? 없음 또는 한 개 * 없음 또는 한 개 이상 + 한 개 이상 {} 횟수 또는 범위를 나타냄 {n} 정확히 n개 {n,} 최소한 n개 {n, m} n개에서부터 m개까지 () 그룹핑 (소괄호 안의 문자를 하나의 문자로 인식) ^ 문자열의 시작 $ 문자열의 종료 . 임의의 한 문자 | 패턴 안에서 or 연산을 수행할 때 사용 자주 사용하는.. 쿠버네티스(Kubernetes) - 베이그런트 (Vagrant) (!) mac OS 기준으로 작성합니다. 베이그런트(vagrant)는 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요할 때 시스템을 사용할 수 있는 상태로 만들어준다. 이를 프로비저닝(provisioning)이라고 하는데, 프로비저닝을 하면 필요할 때 환경을 매우 쉽고 간단하게 구현할 수 있다. 베이그런트는 독립적으로 사용되는 도구가 아니며, 가상 머신을 생성하거나 조작하는 기능을 직접 제공하지는 않고 프로바이더라는 개념이 있어서 가상머신을 관리하는 도구(버추얼박스, 도커 등)와 조합해서 사용한다. 버추얼박스(virtualbox)는 이노테크(InnoTek)에서 개발한 가상화 소프트웨어로 오라클에서 배포한다. 버추얼박스는 현존하는 대부분의 운영 체제를 게스트 운영 체제로 사용할 수 .. 쿠버네티스(Kubernetes) - 기본적인 사용방법 파드 생성 = nginx-pod.yaml apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: container-name image: nginx = 파드 생성 명령어 (kubectl) # 파드를 생성한다. --image=nginx는 생성할 이미지의 이름 [root@m-k8s-ys vagrant]# kubectl run nginx-pod --image=nginx # 파드 확인 [root@m-k8s-ys vagrant]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx-pod 1/1 Running 0 41s [root@m-k8s-ys vagrant]# kubectl create .. Java - 자료구조와 컬렉션 프레임워크 출처: https://static.javatpoint.com/images/java-collection-hierarchy.png 출처: https://media.vlpt.us/images/wo_ogie/post/d8a7523a-0aa7-41d0-a593-dd10bef6881f/image.png 컬렉션 프레임워크(collection framework)란? 자바에서 데이터를 저장하는 클래스들을 표준화한 클래스 집합. 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해놓음 자료구조 Collection Collection은 객체의 모음, 그룹이다. Iterable 인터페이스를 상속받으므로 Iterable 인터페이스는 내부에 Iterator 인터페이스를 반환하는 iterator() .. 쿠버네티스(Kubernetes) - 이해하기 쿠버네티스 컨테이너 인프라 환경 이란, 리눅스 운영 체제의 커널 하나에서 여러 개의 컨테이너가 격리된 상태로 실행되는 인프라 환경이다. 컨테이너는 하나 이상의 목적을 위해 독립적으로 작동하는 프로세스이다. 개인 환경에서는 딱히 필요하지는 않겠지만, 기업 환경에서는 다수의 개발자 혹은 관리자들이 수백대에서 수천대의 서버를 관리하기 때문에 일관성을 유지하는 것이 매우 중요하다. 이러한 컨테이너 인프라 환경에서 사용할 수 있는 컨테이너 오케스트레이션중 하나가 쿠버네티스(Kubernetes)(이하 k8s)이다. k8s는 다른 오케스트레이션 솔루션보다는 시작하는데 어려움이 있지만, 쉽게 사용할 수 있도록 도와주는 도구들이 있어서 설치가 쉬워지고 있다. 또한 다양한 형태의 k8s가 지속적으로 계속 발전되고 있어서 .. 인프라 환경 관련 개념정리 컨테이너(container) : 하나의 운영 체제 커널에서 다른 프로세스에 영향을 받지 않고 독립적으로 실행되는 프로세스 상태. 도커(Docker) : 컨테이너 환경에서 독립적으로 애플리케이션을 실행할 수 있도록 컨테이너를 만들고 관리하는 것을 도와주는 도구. 쿠버네티스(Kubernetes) : 다수의 컨테이너를 관리하는 데 사용. 컨테이너의 자동 배포 - 동작 보증 - 부하에 따른 동적 확장 등의 기능을 제공한다. - 컨테이너 관리 - 필요한 인프라 기능을 통합하고 관리 - API Gateway, 서비스 디스커버리, 이벤트 버스, 인증 및 결제 등 다양한 서비스를 효율적으로 관리할 수 있는 환경을 제공하며, 내외부적으로 연결해준다 모놀리식 아키텍처 vs 마이크로서비스 아키텍처 모놀리식 아키텍처 (Mon.. Java - 빌더 패턴(Builder Pattern) 빌더 패턴(Builder Pattern)이란? : GoF(Gang of Four) 디자인 패턴 중 생성패턴(Creational)에 해당하며, 빌더패턴은 복잡한 객체를 생성하는 클래스와 표현하는 클래스를 분리하여 동일한 절차에서도 서로 다른 표현을 생성하는 방법을 제공한다. 자바에서는 생성자에 값을 담아 보낼때, 어떤 값을 전달하는지 알기가 힘들며, 또 인자가 많아지면 더더욱 확인이 어려워진다. - GoF 디자인패턴 더 알아보기: https://velog.io/@namezin/GoF-design-pattern 점증적 생성자 패턴(telescoping construtor patter) : 클래스 내에 오버로딩을 통해 생성자를 여러개 작성하는 것 = 장점 - 선택적으로 인자를 받을 수 있다. = 단점 - 인자.. 이전 1 2 3 4 5 6 7 ··· 10 다음