Engineering WIKI/Docs
-
로그스태시 개념 뿌수기Engineering WIKI/Docs 2023. 10. 19. 07:30
로그는 시스템이나 애플리케이션 상태 및 행위와 관련된 풍부한 정보를 포함. 일반적으로 로그를 처리하려면 필요한 정보를 수집하고 추출, 분석하는 과정이 필요 로그스태시는 주로 ETL(Extract, Transform, Load) 엔진으로 사용 로그 = 타임스탬프 + 데이터 로그스태시는 오픈소스 데이터 수집 엔진으로, 실시간 파이프라인 기능을 갖춤 로그스태시 핵심 특징플러그형 데이터 파이프라인 아키텍처 : 플러그인은 데이터 처리를 위한 파이프라인 구축에 있어 다양한 입력, 필터, 출력을 혼합, 일치, 조율하는 데 사용확장성 : JRuby 언어로 작성된 로그스태시는 플러그형 파이프라인 아키텍처를 지원하므로 사용자 요구 사항에 따라 맞춤형 플러그인을 손쉽게 구축중앙 집중형 데이터 처리 : 로그스태시가 제공하는 ..
-
DAO, DTO, VO, Entity 개념 뿌수기!Engineering WIKI/Docs 2023. 9. 21. 06:07
DAO(Data Access Object) 란? repository := DAO (거의 비슷함) 김영한님 설명 이 둘은 거의 같다고 생각하셔도 무방합니다. 좀 더 깊이있게 차이를 설명하자면, repository는 엔티티 객체를 보관하고 관리하는 저장소이고, DAO는 데이터에 접근하도록 DB접근 관련 로직을 모아둔 객체 입니다. 둘 다 개념 차이일뿐 실제로 개발할 때는 비슷하게 사용합니다. 실제로 DB에 접근하는 객체이다. Persistence Layer(DB에 data를 CRUD하는 계층)이다. Service와 DB를 연결하는 고리의 역할을 한다. SQL를 사용(개발자가 직접 코딩)하여 DB에 접근한 후 적절한 CRUD API를 제공한다. JPA 대부분의 기본적인 CRUD method를 제공하고 있다. ..
-
Reverse Proxy, Forward Proxy 개념 뿌수기!Engineering WIKI/Docs 2023. 8. 19. 08:20
개념 프록시 서버 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 중계 서버라고 생각하면 된다. 클라이언트와 서버가 직접 통신하지 않고 중계 서버인 프록시 서버를 사용하여 보안, 트래픽 분산 등 여러 장점을 가질 수 있도록 해준다. 장점 보안 : 프록시 서버를 사용하게 되면 클라이언트나 서버의 IP를 모두 숨길 수 있다. 실제 서버 또는 클라이언트의 IP를 숨기고 프록시 서버의 IP만 공개됨에 따라 해킹 대비 가능. 성능 : 캐싱 기능과 트래픽 분산으로 성능 향상을 가져올 수 있다. 캐싱 기능은 자주 사용되는 동일한 요청을 캐싱하여 재활용하는 방식 실제 서버로 다시 호출하지 않고 프록시 서버가 대신 응답을 주어 서버의 자원 ..
-
CIDR / 사이더 개념 뿌수기!Engineering WIKI/Docs 2023. 8. 18. 05:44
개념 CIDR은 기존 네트워크 클래스로 나눠서 정의하던 IP정보를 클래스 없이 유연하게 나눠줄 수 있는 방식의 라우팅 기법 원래는 클래스라는 단위로 A,B,C,D,E를 나누어서 네트워크를 사용한다. 하지만 클래스로 나누게 되는 IP들은 유연성이 없고 IP의 개수가 많기 때문에 좀 더 유연하게 사용하고자 CIDR이라는 개념이 나오게 된 것이다. 내 IP = 192.168.0.20 (10진수) 1100 0000. 1010 1000. 0000 0000. 0001 0100 (2진수) IPv4는 32비트이며 따라서 2진수로 표현할 경우 32개의 숫자가 나오게 된다. 또한 8개씩 묶어서 .(점)을 찍게 되며 8개씩 묶은 단위를 옥텟(octet)이라고 하는데, 이렇게 나눠진 IP 주소는 이제 서브넷 마스크가 아닌 C..
-
@Retention 어노테이션 개념 뿌수기 (RetentionPolicy SOURCE vs CLASS vs RUNTIME)Engineering WIKI/Docs 2023. 8. 17. 23:06
핵심 요약 Retention ⇒ ‘보유’를 뜻 하는 명사 SOURCE: 소스코드까지만 유지 (즉, 컴파일 과정에서 어노테이션 정보는 사라짐) CLASS: 클래스파일 까지만 유지 (런타임시 유지안됨) RUNTIME: 런타임 시점까지 유지 (Reflection API 로 어노테이션 정보 조회 가능)@Retention 어노테이션은 어노테이션의 라이프 사이클 / 즉, 어노테이션이 언제까지 살아 남아 있을지를 정하는 것입니다. SOURCE 정책 Java → Class파일로 변환시 삭제되고, 실제 동작하는 소스로 변경 됨. lombok의 Getter/Setter등이 해당 됨. Class로 파일로 변환 시 Getter/Setter 어노테이션은 실제 get(), set() 메소드로 치환되고 사라짐. RUNTIME 정책..
-
Gradle 개념Engineering WIKI/Docs 2023. 5. 29. 15:29
Gradle 개념 Chatgpt 설명 Gradle 개념 빌드 스크립트 (Build Script): 빌드 스크립트는 Gradle의 핵심입니다. 일반적으로 Groovy 또는 Kotlin으로 작성되며 프로젝트의 빌드 구성, 작업 및 종속성을 정의하는 데 사용됩니다. 빌드 스크립트는 빌드해야 하는 항목과 빌드 방법을 지정하는 역할을 합니다. 작업 (Tasks): 작업은 Gradle이 수행하는 작업 단위입니다. 작업은 소스 코드 컴파일, 테스트 실행, 문서 생성 또는 JAR 파일 생성과 같은 개별 작업을 나타냅니다. Gradle은 다양한 기본 제공 작업을 제공하며 프로젝트의 특정 요구에 맞게 사용자 지정 작업을 정의할 수도 있습니다. 프로젝트: 프로젝트는 구축 중인 소프트웨어 프로젝트를 나타냅니다. 작업, 종속성..
-
SOLID 5가지 설계 원칙Engineering WIKI/Docs 2023. 5. 27. 16:16
2021.01.17 - [Engineering WIKI/Docs] - 객체지향 (SO) 2021.01.17 - [Engineering WIKI/Docs] - 객체지향 (LID) 객체지향 설계 개념 클래스(class): 공통되는 것들을 묶어서 대표적인 이름을 붙인 것(추상화 결과) 인스턴스(instance): 클래스가 메모리 공간에 할당된 실체 객체(object): 명확한 의미를 담고 있는 대상(설계자 관점), 클래스에서 생성된 변수(개발자 관점), 유일한 식별자, 상태 존재, 연산가능한 메서드 클래스 class 객체 object 핸드폰 설계도 핸드폰 자동차 설계도 자동차 붕어빵 틀 붕어빵 SOLID 객체 지향 프로그래밍(OOP: Object Oriented Programming) 대표적 원칙 단일 책임 ..
-
퍼사드 패턴 (Facade Pattern) 개념 및 코드 예제Engineering WIKI/Docs 2022. 12. 30. 12:45
Facade는 "건물의 정면"을 의미하는 단어로 어떤 소프트웨어의 다른 커다란 코드 부분에 대하여 간략화된 인터페이스를 제공해주는 디자인 패턴을 의미합니다. 퍼사드 객체는 복잡한 소프트웨어 바깥쪽의 코드가 라이브러리의 안쪽 코드에 의존하는 일을 감소시켜 주고, 복잡한 소프트웨어를 사용 할 수 있게 간단한 인터페이스를 제공해줍니다. 동기 어떤 사람이 영화를 보고자 합니다. 영화를 보기 위해서는 다음과 같은 과정을 거치게 됩니다. 음료를 준비한다 → TV를 켠다 → 영화를 검색한다 → 영화를 결제한다 → 영화를 재생한다. public void view() { Beverage beverage = new Beverage("콜라"); Remote_Control remote= new Remote_Control();..