분류 전체보기
-
아파치 카프카 문서보고 공부하기 #1SPRING 공부/기타 2022. 12. 26. 04:09
아파치 카프카의 핵심 기술 '이벤트 스트리밍' 이벤트 스트리밍은 소프트웨어가 상시 작동 할 수 있도록 하는 기술적 기반이다. 데이터베이스, 센서, 모바일 장치, 클라우드 서비스등 이벤트 소스로부터 실시간으로 데이터를 캡처하는 작업을 한다. 또한, 이 데이터를 다른 대상에게 라우팅(최적의 경로 전송)을 해준다. 사용할 수 있는 예시로는 다음과 같다. 증권, 은행, 보험등 실시간으로 지급 및 금융 거래 처리 물류, 자동차 , 화물 등 실시간 추적 모니터링 IoT나 기타장비에서 센서데이터 지속적으로 캡처하고 분석 소매업, 호텔, 여행 과 같은 고객 주문 수집, 대응 병원과 같은 곳에서 응급 상황이 발생할 때 적시에 치료를 하기위해 모니터링 회사 여러부서에서 생성한 데이터들을 연결, 저장, 소비 가능하게 함 데..
-
RFC 문서SPRING 공부/기타 2022. 12. 3. 03:02
RFC란 Request For Comments의 약자로 의견 요청이라는 뜻이 담겨져있다. 위키에 따르면. 인터넷 기술에 적용 가능한 새로운 연구 , 혁신 , 기법등을 아우르는 메모를 의미한다. 인터넷 협회에서 기술자, 컴퓨터 과학자들이 RFC메모 형태로 의견을 제출해서, 또 다른 전문가의 비평을 받거나 생각을 전달한다.또한 인터넷 국제표준화 기구(IETF)는 일부 RFC를 인터넷 표준으로 받아들이기도 한다. https://www.rfc-editor.org/standards 여기를 확인하면 표준으로 채택된 RFC문서가 무엇이 있는지 확인할 수 있다. Document Retrieval » RFC Editor (rfc-editor.org) 이곳에서 RFC문서들을 확인할 수 있는데, 우리가 사용하는 어플리케이션..
-
자바 Heap DumpJAVA공부/JVM 2022. 11. 4. 02:08
JAVA 어플리케이션을 사용하다보면 발생할 수 있는 메모리 누수 혹은 Out Of Memory Error 문제, Permanent Full 문제를 분석해야할 때 Heap Dump 분석을 통해 해결점을 찾을 수 있다. Heap : 자바프로그램에서 참조형 데이터 타입을 갖는 객체(인스턴스), 배열, 메타정보 및 Object들에 대한 참조 정보 등이 저장되는 메모리 공간이다. Dump : 기억 장치의 내용을 출력장치로 출력한다는 의미로 쓰인다. 위에 대한 문제는 같은코드를 실행하더라도 모든 환경에서 항상 발생하는 것은 아니고 개발환경에서는 잘 작동되지만 운영환경에서 데이터 & 환경 차이로 인해 발생 할 수 있다. 만약 임의로 해당 Out Of Memory Error에러를 표출하고 싶으면 List list = ..
-
Mapstruct를 정확히 알고 사용하기카테고리 없음 2022. 10. 16. 15:16
MapStruct란 ?? 구성 접근 방식에 대한 규약을 기반으로 자바 빈 유형 간의 매핑 구현을 크게 단순화하는 코드 생성기이다. 생성된 매핑 코드는 일반 메서드 호출을 사용하므로 빠르고, Type-Safe하며, 이해하기 쉽다. 사용하는 이유 다중 계층 애플리케이션은 종종 서로 다른 객체 모델(예: 엔티티 및 DTO) 간에 매핑하는데, 이러한 매핑 코드를 작성하는 것은 지루하고 오류가 발생하기 쉬운 작업이다. MapStruct는 이 작업을 최대한 자동화하여 단순화할 수 있도록 도와준다. 사용방법 MapStruct는 Java 컴파일러에 연결된 어노테이션 프로세서로, 원하는 IDE 내에서뿐만 아니라 명령줄 빌드(Maven, Gradle 등)에서도 사용할 수 있다. MapStruct는 적절한 기본값을 사용하지..
-
ModelMapper 정확히 알고 사용하기카테고리 없음 2022. 10. 4. 06:43
회사에서 디버깅중 ModelMapper에 대한 오류가 떠서 이것이 정확히 가이드라인대로 사용하고 있는지 파악하고 작동원리를 파헤쳐 보자. ModelMapper 용도 : 자바에서 한 객체에서 다른 객체로 데이터 값을 넣어줄 때 OO.set 메서드를 사용해서 각 값을 입력해주어야 하거나, 값 매핑을 해주는 새로운 메서드를 만들어야 하는데. 이 것은 개발자에게 매우 단순 반복 작업이 될 수 있다. 이 때 ModelMapper 라이브러리를 활용하면 이 단순반복 작업을 해당 라이브러리가 자동으로 할 수 있게 해준다. 원리 : 리플렉션을 이용해서 Type비교를 해주고 설정한 매핑되는 방식, 매핑 전략 에 따라서 각종 프로퍼티(속성) 접근, 변경 , 무시 등이 일어 날 수 있게 도와준다. 사용하기 : 1. 의존성 추..
-
옵저버 패턴디자인 패턴 2022. 9. 7. 00:35
객체 하나의 상태가 변할 때마다 등록된 객체들에게 자신의 상태값을 전달하는 패턴입니다. 예시로, 상품을 구매하였을 때 알림을 전달해주는 프로그램을 작성해봅시다. 해당 내용을 설명하자면, 상품 구매 시스템에서 구매가 일어나면 구매정보 객체로 해당 내용들을 전달하고 홈페이지, 관리자앱, 회원앱으로 해당 정보들을 혹은 메시지를 전달하게 됩니다. 코드를 작성해 보겠습니다. 1. 초기 코드 작성 public class Homepage, ManagerApp, MemberApp { public static void notify(String productName, int count, String buyer, String buyDt){ System.out.println("Homepage Logg ======> \n pr..
-
전략 패턴디자인 패턴 2022. 8. 23. 08:39
들어가기전에... 디자인 패턴을 공부 & 사용하는 이유 코드 짠걸로 의사소통을 할 때, "A라는 클래스가 존재 할 때, A클래스에 새로운 데이터가 들어오면 A클래스에 의해 관리되는 객체들에게 이 데이터를 전송해줄 수 있고, 관리되는 객체들은 언제든지 관리에서 이탈하거나 참여할 수 있는 코드를 만들었어" 라는 말은 사실 '옵저버패턴'을 이야기 한 것입니다. '옵저버패턴'을 정확히 이해하고있으면 앞의 장황한 설명보다 훨씬 빠르게 의사전달을 할 수 있습니다. 코드를 수정 하거나 작성할 때, 나의 설계디자인이 잘 못 된것은 아닌지 되짚어 볼 수 있습니다. 많은 사람들이 오랜 시간 고민해서 찾아낸 디자인 패턴은 유연성, 재사용성, 관리하기 쉬운 시스템을 만들 수 있게 도와줍니다. 물론, 무조건 디자인패턴을 도입하..
-
Git 명령어 정리하기툴 사용법/Git 2022. 7. 14. 02:25
자주 쓰이는 Git 명령어를 사용해보자 1. Windows Command Prompt 시작 - > 실행 - > cmd dir : 현재 디렉토리내의 파일 출력 cd [이동위치] : 디렉토리 이동 2. Git 설정 git config --global user.name [유저이름] : 글로벌 유저이름 설정 git config --global user.email [유저이름] : 글로벌 유저이메일 설정 git config --global core.eol native / crlf / lf : 개행처리에 대한 설정 OS 별 CRLF 차이로 인한 문제를 막기 위해 OS 별로 다음과 같이 설정한다. Windows 일때 : git config --global core.autocrlf true Linux, OSX 일때 : ..