728x90

TIL, WIL 89

04. 06 TIL : 인터넷/ 전송 계층(IP, TCP, UDP)

IP 프로토콜- 지정한 IP 주소에 데이터를 패킷 단위로 전달한다 IP 프로토콜의 단점- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송할 수 있다- 패킷이 중간에 사라져도 송신 클라이언트에서 그 손실 여부를 확인할 방법이 없다- 패킷을 보낸 순서를 보장하지 않는다(데이터의 순서가 보장되지 않는다)- 같은 IP를 사용하는 서버 내 애플리케이션에 대한 구분이 어렵다 IP 프로토콜의 단점을 보완한 프로토콜 : TCP/UDP*cf) TCP/IP 프로토콜 (OSI 7계층과 비교 가능)데이터를 주고받기 위한 규칙과 절차를 정희하며, TCP/IP 프로토콜을 중심으로 설계되었다.1) 응용 계층사용자와 직접 상호작용하는 계층으로 데이터 형식 변환, 암호화 사용자 인터페이스 등 제공 : HTTP, FTP, ..

TIL, WIL/TIL📘 2025.04.06

03. 07 TIL : 카프카 세팅 및 실행, 테스트

스프링 카프카 실행하기 1. 아파치 제공 카프카 다운로드 및 압축풀기 2. 압축 푼 폴더로 이동해 2-1) Zookeeper 실행 ~ 기본포트 : 2181bin>zookeeper-server-start.sh config/zookeeper.properties  2-2) Kafka 서버 실행 ~ 기본포트 : 9092bin>zookeeper-server-start.sh config/server.properties (config/server.properties에서 설정 변경 가능 (예: listeners=PLAINTEXT://localhost:9092) 3. 토픽(데이터 관리 단위) 생성 ex) 채팅시스템용 토픽 : bin/kafka-topics.sh --create --topic chat-messages --..

TIL, WIL/TIL📘 2025.03.07

02. 28 TIL : Statc 상태 값 선언(직접 참조) vs RDB 데이터 쿼리를 통한 조회

요즘 실무 중 해당 트레이드 오프에 대한 고민을 많이 하게 된다 Staic으로 설정하는 경우와 이를 DB에서 관리하는 경우의 트레이드 오프에 대한 간단한 정리 1) Static 장점- DB 호출을 줄일 수 있다- DB 접근 실패할 경우에도 로직에 문제가 생기지 않는다- 코드 직접 참조 방식이 아니기 때문에 개발 간 불편함 발생 가장 핵심이 직접 참조가 불가능하다는 점인 듯 하다.해당 참조 방식을 통해 상태 값에 대해 컴파일 시점에서 값의 타입을 점검할 수 있고,해당 데이터를 DB에서 관리하는 경우, 리팩토링 시 값 조회를 위해 IDE가 아닌 DB 프로그램(별도로 나눠서 실행하고 있는 경우)을 실행해서 조회해야 한다 2) DB 관리장점- 상태 값의 수정 발생 시 서버의 재기동 없이 바로 반영 가능- 개발 ..

TIL, WIL/TIL📘 2025.02.28

02. 26 TIL : Collectors.groupingBy() 외 ~ List<Object> list를 특정 요소로 mapping

list list 안의 요소를 분류할 때 일반적으로 stearm().fileter() 방법을 많이 사용한다 하지만 이 방법으론 필터에 해당하는 요소가 있는 리스트를 발라내는 것밖에 할 수 없다. 특정 요소의 값을 기준으로 전체 리스트를 분류하고 싶은 경우,strream().collect(Collectors.groupingBy(Object:getField)); 를 사용 가능하다 이 방식을 통해 하나의 Field로 분류된 Map> 타입인 map이 생성된다. 이제 리스트 별로 분류된 인스턴스에 서로 다른 작업이 가능해진다 일반적으로 이 방법을 많이 사용하며, GPT가 추천해주는 다른 방법으로는, 1) 리스트가 아닌 다른 자료구조에 분류 Map> groupedSetMap = stream() .collect..

TIL, WIL/TIL📘 2025.02.26

02. 19 TIL : GPT API 도입 간 참고할 점 : 웹 검색에 대해

** GPT API 도입 시 2025년 현재, 어떤 API 모델도 웹 검색 기능을 제공하고 있지 않다. 따라서, 해당 기능이 필요한 경우,  1) 웹 브라우저가 있는 ChatGPT (Pro 사용자용 GPT-4-turbo Browsing 기능)ChatGPT Plus를 사용하면 OpenAI의 웹 브라우징 기능이 활성화되어 URL을 직접 입력하고 뉴스 내용을 요약할 수 있습니다.그러나 API에서는 해당 기능이 제공되지 않습니다2) Python/Java 등의 웹 스크래핑 + GPT API 조합 (추천 ✅)뉴스 기사의 HTML을 크롤링한 후, 해당 텍스트를 GPT API에 전달하여 요약할 수 있습니다.BeautifulSoup (Python) 또는 Jsoup (Java) 같은 라이브러리를 사용하면 웹에서 기사 내용..

TIL, WIL/TIL📘 2025.02.19

01. 06 TIL : YEARWEEK()의 연말 연초 값 이슈

YEARWEEK() 쿼리 함수를 사용한 기간 사칙 연산의 경우, 연말 연초 간 연도가 변경될 때문제ex) YEARWEEK(2024-12-29) + 1 = '202452' + '000001'을 수행하고, 이 결과 값은 '202453' ~ 2024년의 주차는 52주차까지 있기 때문에, 해당 조건절을 통해 데이터가 아무것도 나오지 않게 된다. 해결YEARWEEK(DATE_ADD(2024-12-29, INTERVAL 1 WEEK)) 방식으로 함수를 사용하면, 해당 함수는 정상적으로 '202501'을 반환하게 된다. 빼기 등 다른 사칙연산의 경우에도 동일하게 적용 가능하다

TIL, WIL/TIL📘 2025.01.06

12. 24 TIL : DB의 대소문자 별칭 구분

문제 : 로컬에서는 이상 없이 동작하는 코드가 개발 환경으로 올리면 호출되지 않음-> 왜 그런지 살펴보다가 쿼리를 Dbeaver로 날려보니까 별칭의 대소문자를 구분하지 않았다는 것을 알게되었다 시도한 것 :1) IDE 이슈인지 구글링 : 관련 내용 없음2) 팀원들에게 공유 : DB 설정 때문이라는 점을 알려주셨다 해답 :MYSQL은 기본적으로 테이블 및 별칭의 대소문자를 구분하지 않지만,초기 설정 및 이후에 변경(MYSQL 재시작 필요)을 통해 구분하게 할 수 있다 my.cnf에서 lower_case_table_names 설정 lower_case_table_names의 값을 1로 설정시 : 대소문자 구분 X, 0으로 설정 시 : 대소문자 구분 O

TIL, WIL/TIL📘 2024.12.24

12. 06 TIL : 구독형 결제 구현 간 배운 점

토스 페이먼츠에서 제공하는 결제에 대해 확실하게 경험을 쌓을 수 있었다. 이번 스프린트에서 가장 많이 다룬 JSONObject인듯 하다 그 전엔 별 생각없이 사용하던ObjectMapper, JSONObejct, JsonObject의 차이(심지어 JSONObject는 org.json.simple.JSONObject와 org.json.JSONObject 라이브러리가 다르기 때문에어떤 것을 사용해야할 지 고민이 필요하다) 다음 주에 프론트와 소통 및 QA를 통해, 출시 전 수정사항을 반영할 생각에 기분이 들뜬다

TIL, WIL/TIL📘 2024.12.06

12. 04 TIL : ObjectMapper vs JSONObject

특징 Jackson - ObjectMapper json-simple - JSONObject 복잡한 JSON 처리 뛰어남 (자바 객체로 변환 가능, 중첩 구조 처리) 단순한 구조에 적합 (복잡한 구조는 처리하기 어려움) 성능 우수 (큰 JSON을 빠르게 처리) 매우 빠름 (간단한 JSON 파싱 시 성능 우수) 타입 매핑 강력함 (자바 객체와 JSON 매핑, 제네릭 지원) 제한적 (JSONObject만 제공, 자바 객체와의 매핑 없음) 커스텀 직렬화/역직렬화 지원 (커스텀 직렬화 및 역직렬화 가능) 지원하지 않음 ..

TIL, WIL/TIL📘 2024.12.04
728x90