전체보기(187)
-
Strategy Pattern
Strategy Pattern이란 Strategy Pattern이란 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화하는 인터페이스를 정의하여 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 젼략을 바꿔주기만 함으로써 행위를 유연하게 확장하는 방법을 말합니다. 간단히 말해서 객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고 동적으로 행위의 수정이 필요한 경우 전략을 바꾸는 것만으로 행위의 수정이 가능하도록 만든 패턴입니다. Strategy Pattern 예를 들어, 기차와 버스 클래스가 있고, 이 두 클래스는 Movable 인터페이스를 구현하다고 가정하겠습니다. 그리고 버스와 기차 객체를 사용하는 Client도 있습니다. public inte..
2024.01.10 -
WEB 3.0
WEB 3.0이란 WEB 3.0은 인공지능과 블록체인을 기반으로 맞춤형 정보를 제고하고 데이터 소유를 개인화하는 3세대 인터넷입니다. 기존에 사용하던 서비스에서 인공지능을 통해 개인 맞춤형 정보를 얻고, 블록체인을 통해 개인의 정보 소유 및 보안을 강화하는 지능형 웹 기술입니다. 앞선 WEB 세대별 특징 WEB 1.0 WEB 1.0은 읽기 중심의 초기 인터넷 기술입니다. 과거의 웹 페이지는 소유자가 제공하는 정보만을 확인할 수 있었습니다. 단순히 뉴스와 책 등을 인터넷으로 표현했다고 생각하면 됩니다. 사용자는 정보를 게시할 수 없고, 단순히 웹페이지에서 제공하는 정보만을 확인할 수 있습니다. WEB 2.0 WEB 2.0은 이전의 읽기 중심에서 쓰기가 가능해졌습니다. 이에 따라 다양한 정보의 상호작용이 가..
2023.12.24 -
3-Tier Architecture
3-Tier Architecture란 3-Tier Architecture는 애플리케이션을 프레젠테이션 계층 또는 사용자 인터페이스, 데이터가 처리되는 애플리케이션 계층 그리고 애플리케이션과 관련된 데이터가 저장 및 관리되는 데이터 계층이라는 3개의 논리적이고 물리적인 컴퓨팅 계층으로 구성되는 소프트웨어 애플리케이션 아키텍처입니다. 3-Tier Architecture 상세 설명 프레젠테이션 계층 프레젠테이션 계층은 사용자가 애플리케이션과 상호작용하는 사용자 인터페이스 및 커뮤니케이션 계층입니다. 해당 계층의 목적은 정보를 표시하고 사용자로부터 정보를 수집하는 것입니다. 예를 들어 웹 브라우저, 데스크탑 애플리케이션, GUI 등에서 보여지는 화면 부분이라고 볼 수 있습니다. 애플리케이션 계층 애플리케이션 계..
2023.11.01 -
Full Text Index
Full Text Index 배경 일반적으로 mysql에서 문자열을 검색할 때, 텍스트 내용이 어마어마한 경우에는 성능이 저하됩니다. 이를 해결하기 위해 Full Text Index가 만들어졌습니다. Full Text Index은 첫 글자 뿐 아니라 중간의 단어나 문자응로도 인덱스를 생성해 주기 때문에 순식간에 검색 결과를 얻을 수 있습니다. Full Text Index 인덱싱 Stop-word parser 공백이나 Tab, 문장 기호 또는 사용자가 정의한 문자열을 기준으로 토큰을 나누는 기법입니다. ex) 아빠가 방에 들어갔다. -> 아빠가/방에/들어갔다 N-gram parser n-gram 기법을 이용하여 할당한 토큰의 크기 n만큼씩 데이터를 인덱스로 파싱해두었다가 사용하는 기법입니다. ex) 아빠가..
2023.09.30 -
@Async 사용법
@Async 사용법 @EnableAsync @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } @Service public class MessageService { @Async public void print(String message) { System.out.println(message); } } @RequiredArgsConstructor @RestController public class MessageController { private final MessageService messa..
2023.07.31 -
Node.js
Node.js란 Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다. 즉, Node.js를 토앻 다양한 자바스크립트 애플리케이션을 실행할 수 있으며 서버를 실행하는데 주로 사용됩니다. 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도 소프트웨어 없이 동작하는 것이 가능하며, 이를 통한 웹서버의 동작에 있어 더 많은 통제에서 벗어나 여러 가지 기능을 가능하게 합니다. 이벤트 기반 Non Blocking I/O 모델 Node.js는 이벤트 기반 Non Blocking I/O 모델을 구현하고 있습니다. 여기서 이벤트 기반이란 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 의미합니다. 즉, 이벤트 기반 시스템에서는 특정 이벤..
2023.07.26