
들어가며프로젝트에 들어가며 ID 이외의 속성으로 DB를 조회하는 방법을 선택했다. 기본키 이외의 방법으로 DB의 조회를 할 때 "데이터 조회를 빠르게 하기 위해" 인덱스를 적용하였다. 인덱스란?(INDEX)이번 프로젝트에 사용한 DB는 MySQL 8.0 버전을 사용하였다.인덱스는 PK(기본키)가 아닌 특정 속성 또는 속성들로 INDEX를 통해 미리 정렬되어, 데이터를 빠르게 조회하기 위해 사용한다.요는 "빠르게 데이터를 조회하기 위해"가 주목적이다. B-tree vs Hash TableMySql에는 기본적으로 B-tree를 사용한다. B-tree 의 시간 복잡도는 O(log n)이며, 하나의 노드 안에 다량의 데이터를 갖고 있다는 특징을 갖는다. 다량의 데이터를 갖고 있기 때문에 DB의 호출이 줄어 ..

들어가며.URL Shortener toy project를 진행하면서 긴 URL을 단축하는 방법에 대해 조사하게 되었고 프로젝트의 제약사항인 1억건의 요청에도 서비스가 원활하게 운영되는 설계 솔루션을 배우기위해 가상 면접 사례로 배우는 대규모 시스템 설계 기초 " 8장 URL단축설계 챕터를 공부하기로 마음 먹었다. 1 단계 : 문제 이해 및 설계 범위 설정1-1. 요구 사항1. Url 단축 : 주어진 긴 URL을 훨씬 짧게 줄인다.트래픽의 규모은?1억건을 가정한다.단축 Url의 문자 제약 사항은?영문자와 숫자로만 이루어져 있어야한다. 2. Url 리다이력션 (redirection) : 축약된 Url로 HTTP 요청이 오면 원래 Url로 안내3. 높은 가용성과 규모 확장성, 그리고 장애 감내가 요구 ..

Character Class 자체에서 지원하는 클래스words.addAll(numbers);return words.toArray(new String[0]);와 같이 List 에서 배열로 넘겨주는 방식Hash 를 사용하는 자료구조가 왜 빠를까?- JAVA 8에서 HashMap 을 사용 할 때 해시 충돌이 일어나면 일정수준 (8개 ) 이상이 되면 LinkedList 에서 Tree 구조로 저장되게 됨.참고 : https://jennyuni.notion.site/Hash-95db59ea6d9049a585798f96b8d27889 Hash 란 무엇인가? - 공유용 | Notion해싱과 해시함수jennyuni.notion.site

들어가며. 사이드 프로젝트를 진행하면 자동배포 구현을 담당하게 되었다. 우리가 흔히 알고 있는 CI/CD를 완벽하게 구현하기 보다 자동 배포에 집중하여 구현했다. GIthub Actions 을 적용하여 프로젝트 main 브랜치에 push 및 merge 되었을 때 Github Actions에서 프로젝트를 자동 빌드하여 jar 파일을 이미지화 후 Docker hub에 push 이후 EC2 환경에 접근하여 해당 image 파일을 pull 하여 docker 로 배포 CI / CD 란? 1.1 지속적 통합 CI 는 Continuous Integration 의 줄인 표현이다. 풀어서 설명하면 개발자를 위해 빌드와 테스트를 자동화하는 과정이다. CI는 변경 사항을 자동으로 테스트해 애플리케이션에 문제가 없다는 것을 ..

들어가며. 개발을 하면서 트래픽이라는 단어를 들어봤을 것이다. 실제로 프로젝트를 진행하면서 트래픽을 어떤식으로 처리 할 것인지 고민하게 되었다. 이번 글은 트래픽에 대한 개념과 어떤 방법으로 트래픽을 처리하는 것인지 정리 해보는 글이다. 트래픽(Traffic). 사전적인 의미는 교통량을 의미하며 경유하는 양 이다. 웹에서는 방문한 사람들의 "데이터를 주고받는 양"을 의미한다. 웹 트래픽 분석을 하는 데이터로는 방문자 수 방문자 당 페이지 뷰 평균 수 평균 방문 시간 평균 페이지 뷰 시간 도메인 클래스 트래픽이 많은 시간대 요청을 가장 많이 받은 페이지 요청을 가장 많이 받은 엔트리(entry) 페이지 요청을 가장 많이 받은 출구(exit) 페이지 최상위 경로 참조자 를 분석하여 트래픽 그래프에 적용된다...

👉 들어가며 . 이번 글은 로그인 방식으로 Session 방식과 token 방식의 장단점을 정리한 글이다. 서비스 로그인 기능을 구현하면서 Session과 token 중 어느 방식으로 구현 할 지에 고민했던 적이 있었다. 고민했던 내용을 정리하는 게시글이다. Session. Session은 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법을 말한다. 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라고 한다. 서버에서 사용자의 인증정보를 관리한다. 세션을 사용해도 결국 클라이언트와 서버는 쿠키로 연결된다. 단, 중요한 차이는 중요한 정보를 클라이언트가 아닌 서버에서 관리한다는 것이다. 설명 장점 - 서버에서 직접 사용자 인증 정보를 관리하기 때문에 보안성이 좋다. - ..

👉 들어가며 String과 Arrays의 사용법을 정리한 글이다. 최근 코딩 테스트를 진행하면서 String 관련 작업에서 막혀 시간을 많이 소비한 경험이 있었다. 생각처럼 자유롭게 배열과 String을 다루는 것이 부족하다고 느끼게 되었다. 이번 기회에 String과 Arrays 관련 내용을 정리해보려 한다. 1-1. String 클래스 String은 Class의 인터페이스로 java.long에서 관리된다. 다른 문자 타입과는 다르게 타입이 아닌 자료형 이기 때문에 String을 생성하게 되면 heap에서 자료를 만들고 스택 부분은 heap의 주소를 저장하는 형식으로 String 은 생성된다. String은 문자열은 생성하는 방법과 추출, 비교, 찾기, 분리, 변환 등을 제공합니다. 1-2. Strin..
- Total
- Today
- Yesterday
- Algorithm
- AWS
- codingtest
- CS
- docker
- 데이터 배이스
- 프로젝트
- DB
- cd
- MYSQL
- DevOps
- Session
- 인덱스
- 회고
- 성능개선
- CI/CD
- Hash
- spring boot
- CI
- network
- java
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초 #대규모 #개발 #설계 #대규모솔루션 #캐시 #study
- index
- Github Actions
- Submodule
- 공부
- 트래픽
- Project
- token
- Traffic
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |