Web_Backend/DB2024. 1. 2. 16:32[DB, SQL] 데이터베이스, PostgreSQL설치, SQL구문(SELECT, WHERE, BETWEEN, IN, LIKE, ILIKE, ORDER BY, DISTINCT, COUNT, DATE)

오늘 수강한 강의 : 【한글자막】 데이터 역량 강화를 위한 SQL 부트캠프오늘의 강의 정리 📗데이터베이스란데이터베이스란 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 집합데이터를 구조화하여 저장함효율적인 검색, 삽입, 업데이트 및 관리를 위해 조직되어짐.왜 데이터베이스를 사용해야 하는가파일 처리 시스템문제점중복 : 각 파일마다 필요한 데이터를 각각 가지고 있어야 하므로 전체적인 시간과 노력, 경제비용에 있어서 효율이 낮음비일관성 : 데이터에 변경사항이 조금만 있어도 각 파일에서 해당되는 데이터를 모두 변경해야 -> 한꺼번에 수정이 되지 않으면 데이터값이 서로 다름(비일관성)응용프로그램 개발 문제데이터 추가 및 검색 문제데이터 베이스의 특징데이터의 독립성물리적 독립성 : 데이터베이스 크..

Web_Backend/Javascript2023. 12. 27. 10:15[JS] 고급 자바스크립트, DOM을 사용한 작업(전역변수, window, document, DOM, drilling, Manipulation, DOM 조작, insertAdjacentHTML, innerHTML, CSS 제어, class제어)

오늘 수강한 강의 : 【한글자막】 100일 코딩 챌린지 - Web Development 부트캠프오늘의 강의 정리 📗전역변수 window브라우저에 활성화된 윈도우와 관련된 많은 유틸리티 정보과, 기능이 저장되어있음.브라우저의 탭을 의미하기도 함.보안상의 이유로 웹사이트에서 코드를 실행할 때에는 윈도우 객체를 이용해 현재 열고있는 탭의 정보에 엑세스 해야함(다른탭 X)브라우저 안의 모든 요소들이 소속된 객체로, 최상위에 있기 때문에 어디서든 접근이 가능(전역 변수임)var을 이용해 전역 변수를 만들면 window 객체에 key와value가 저장됨.let , const 사용시 window 객체에 추가되지 않음.var a = "apple"; console.log(window.a); //"apple"..

Web_Backend/Spring2023. 12. 26. 17:05Spring boot Gradle 프로젝트는 Build시에 Test를 실행할 까?(Feat.. jacoco CI 적용일지)

obsidian에서 작성중 Feat… CI 적용기(jacoco + checkStyle + sonar cloud + Github Action)

Web_Backend/Kafka2023. 12. 26. 16:58[Kafka] 8장 ‘정확히 한 번’의미구조(멱등성)

7장 : 신뢰성 있는 데이터 전달에서는 ‘최소 한 번’ 전달에 초점을 맞췄다면, 이번 장에서는 ‘정확히 한 번’에 초점을 맞춘다. 신뢰성을 보장한다고 하더라도 여전히 메시지 중복의 가능성은 남아있다. 하지만, 이벤트를 읽어서 평균을 구하고 결과값을 산출하는 애플리케이션을 예로 들면, 특정 이벤트가 중복해서 쓰여짐으로써 평균값이 잘못 계산되는 오류가 발생될 수 있고, 이로 인해서 “더 강력한 보장(정확히 한 번 exactly-once semantics)”을 제공할 필요가 있다. 이번 장에서는 카프카의 ‘정확히 한 번’의미구조를 사용하는 방법과, 권장되는 활용 사례, 그리고 그 한계에 대해서 살펴본다. 카프카의 ‘정확히 한 번’의미구조는 두 개의 핵심 기능(명등적 프로듀서 idempotent producer..

Web_Backend/Kafka2023. 12. 26. 16:45[Kafka] 6장 카프카 내부 매커니즘

카프카 프로덕션 환경에서 운용하기 위해서나, 카프카를 사용하는 애플리케이션을 개발하기 위해 꼭 내부 메커니즘을 알아야 하는 것은 아님. 하지만 트러블 슈팅, 혹은 실행되는 방식을 이해하는 데에 도움이 될 것. 또한 카프카 튜닝 시 명확한 의도를 가지고 설정값을 잡아주는 등 특히 도움이 될 것으로 봄. 이 장에서는 특히 아래 4가지 주제를 중점으로 다뤄볼 것. 카프카 컨트롤러 카프카에서 복제(replication)가 작동하는 방식 카프카가 프로듀서와 컨슈머의 요청을 처리하는 방식 카프카가 저장을 처리하는 방식(파일 형성, 인덱스 등) 6.1 클러스터 멤버십 기존 버전 카프카 : 주키퍼 사용. 각 브로커는 고유한 식별자(브로커 설정 파일에 정의되었거나, 자동으로 생성된)를 가짐 브로커 프로세스 시작 때마다 ..

[Kafka] 4장. 카프카 컨슈머
Web_Backend/Kafka2023. 11. 2. 19:11[Kafka] 4장. 카프카 컨슈머

카프카 컨슈머 : 중요 개념 1. 컨슈머와 컨슈머 그룹 1) 컨슈머 그룹이란? 카프카의 데이터 읽기는 다른 메시지 시스템의 읽기와 약간 다르다 여러 프로듀서들이 해당 토픽에 메시지를 쓰는 속도가 컨슈머가 메시지를 처리하는 속도보다 빠르다면 하나의 컨슈머만으로 처리한다면 추가되는 메시지 속도를 따라갈 수 없다 당연히 토픽을 소비하는 컨슈머의 수를 늘려야 한다 다수의 프로듀서들이 같은 토픽의 메시지들을 쓸 수 있는 것과 마찬가지로 다수의 컨슈머들이 같은 토픽의 메시지들을 분담해 읽을 수 있어야 한다 카프카 컨슈머들은 컨슈머 그룹에 속한다. 다수의 컨슈머가 같은 토픽을 소비하며 같은 컨슈머 그룹에 속하면 각 컨슈머가 해당 토픽의 서로 다른 파티션을 분담해 메시지를 읽을 수 있다. 2) 컨슈머 그룹의 컨슈머 수..

[Kafka] 3장. 카프카 프로듀서 : 카프카에 메시지 쓰기
Web_Backend/Kafka2023. 11. 2. 16:54[Kafka] 3장. 카프카 프로듀서 : 카프카에 메시지 쓰기

* 이 글은 카프카 핵심 가이드 - 대규모 실시간 데이터와 스트림 처리 [ 개정증보판 ]를 읽고 스터디 후 작성한 글입니다. 3장. 카프카 프로듀서 : 카프카에 메시지 쓰기 카프카 사용 예시 큐, 메시지 버스, 데이터 저장 플랫폼 등으로 활용 프로듀서(데이터를 씀)나 컨슈머(데이터를 읽어 올 때 사용) 혹은 두 가지 기능을 모두 수행하는 애플리케이션 생성해야 함. 즉, 아파치 카프카는 개발자들이 카프카와 상호작용 하는 애플리케이션을 개발할 때 사용 할 수 있는 ‘클라이언트 API’와 함께 배포됨 프로듀서를 사용하는 방법에 대해 배움 프로듀서의 디자인 프로듀서 주요 요소의 전체적인 모습 KafkaProducer와 ProducerRecord객체 생성법 카프카에 레코드 전송하는 법 카프카가 리턴할 수 있는 에..

[Kafka] 1. 카프카 시작하기
Web_Backend/Kafka2023. 11. 2. 16:32[Kafka] 1. 카프카 시작하기

* 이 글은 카프카 핵심 가이드 - 대규모 실시간 데이터와 스트림 처리 [ 개정증보판 ] 를 읽고 작성한 글 입니다. 1.1 발행/구독 메시지 전달 1.2 카프카 입문 카프카에 저장된 데이터는 순서를 유지한 채로 지속성 있게 보관, 결정적(deterministic)으로 읽을 수 있음. 확장 시 성능을 향상하고 실패가 발생하더라도 데이터 사용에는 문제가 없도록 시스템 안에서 데이터를 분산시켜 저장할 수 있음. “분산 커밋 로그” “분산 스트리밍 플랫폼” 아파치 카프카 주요 기능 : 일정 기간 동안 메시지를 지속성 있게 보관하는 보존 기능 특정 기간, 특정 사이즈에 도당 할 때 까지 보존하도록 설정 가능(만료 시 삭제) 1.2.1 메시지와 배치 메시지 : 데이터의 기본 단위(단순히 바이트의 배열→ 특정한 형..

[Java] collectionFramework_Set_HashSet이란?
Web_Backend/Java2023. 9. 18. 13:44[Java] collectionFramework_Set_HashSet이란?

1. CollectionFramework란? 자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미함. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것. 자바의 인터페이스(interface)를 사용하여 구현됨. 2. Collection Framework 주요 인터페이스 List 인터페이스 Set 인터페이스 Map 인터페이스 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만, Map 인터페이스는 구조상의 차이로 인해 별도로 정의됨. 즉, List 인터페이스와 Set 인터페이스의 공통된 부분을 Collection 인터페이스..

[Docker] 도커... 그래서 그게 뭔데...?
Web_Backend/Docker2023. 9. 8. 17:15[Docker] 도커... 그래서 그게 뭔데...?

AWS 비용 줄이기 프로젝트 2일 차, EC2 인스턴스 하나에 프로젝트들을 전부 올리기 위해 방법을 구상하던 중, 요새 그렇게도 많이 들려오는 Docker라는 놈이 궁금해졌고 하나의 인스턴스에 여러 개의 프로젝트를 단순히 띄우는 것이 아닌 도커 컨테이너를 통해 띄우는 방향으로 잡고 진행해보고자 했다. 대략적으로 건너건너 들은 바로는 Docker를 통해 여러 개의 컨테이너를 동시에 띄울 때에는 Docker Compose를 사용하는 것 같은데, 우선 가장 기본적인 Docker를 통해 Ec2 인스턴스에 간편하게 프로젝트를 띄우는 것을 먼저 시도해보고자 한다. 1. Docker 그게 뭔데? Docker란 컨테이너 기반의 가상화 기술이지만, 기본의 Virtual machine과는 다르게 Host의 OS를 공용함으..

[mysqlDump] DB 합치기.. 그거 어떻게 하는건데.....? feat.. mysqldump
Web_Backend/DB2023. 9. 6. 22:01[mysqlDump] DB 합치기.. 그거 어떻게 하는건데.....? feat.. mysqldump

1. 안녕하세요? AWS에 벽돌 12,000장쯤 사준 YanaKo94입니다. RDB 인스턴스를 줄여야할 필요성의 대두..(feat 비용절감... 어디부터 해볼까..!) 그렇다, 프로젝트를 AWS RDS와 EC2를 통해 배포한 지 어언 1년가량이 흘렀고... 나의 AWS 관련 비용 지출은 이제는 조금 자신 있게 "아마존에 벽돌 낭낭히 사줬습니다"라고 할 수 있을 정도가 되어버렸다. 프로젝트를 내리고 싶지 않았기에 결국 비용 절감을 위해 기존 배포방식을 변동하기로 결심했고, EC2의 경우 인스턴스를 합치기 전에 CD를 구축하면서 업로드받는 resorce를 인스턴스 내부에 저장하는 방식에서 S3 storage로 변경하는 것이 필요하다고 판단해 우선 RDB부터 정리를 시작했다. 2. mysqldump, 뭐하는 ..

Web_Backend/Java2023. 6. 20. 17:21[JAVA] 재귀함수 vs 반복문

재귀함수란? 📌 자기 자신을 호출하는 함수 재귀함수를 많이 호출하면 Call stack max 에러 발생 반복문이란? 📌 특정 구문을 특정 수만큼 반복하는 함수 재귀함수와 반복문 비교 실행 속도 : 반복문이 재귀함수보다 더 빠름 재귀함수 : 매개변수, 리턴값, 리턴시 돌아가야 하는 위치 등의 정보가 스택에 저장됨 반복문 : 필요 없음(오버헤드 없음) 가족성 : 재귀함수가 가독성이 더 좋음 변수 사용 : 재귀함수 사용 시 변수 사용을 줄일 수 있음 꼬리 재귀함수란? 📌 재귀함수의 오버헤드를 줄이기 위한 방법 일반 재귀 function factorial (number) { if(number === 1) return 1; return n * factorial(n - 1); } 꼬리 재귀 : 재귀함수를 호출한 ..

image