TIL

TIL

23.09.08

1. 토미의 [인프라 구조 개선하기 part1] 강의를 들었다. 최근에 대규모 시스템 설계 관련 책을 조금 봐서 그런지 이해도 잘되고 매우매우매우 재밌었다!!! 가용성, 성능, 규모 확장성 등등을 고려해 개선을 쭉쭉 해나간다고 무조건 좋은게 아니고, 다중화를 하기 때문에 고려해야하는 부분이 점점 늘어난다! 우테코는 ec2 인스턴스 4개로만 운영하기 때문에 인프라 아키텍처로 많은 시도를 해볼 수는 없다는게 아쉽다 ㅠㅠ 2. [인덱스] 테코톡 싹 봤다. 인덱스 : DB의 검색속도를 향상시키기 위해 full table scan range scan b-tree clustering index : 인덱스에 실제 데이터 실제 데이터 자체가 정렬 테이블당 1개 존재 가능 리프 페이지가 데이터 페이지 생성방법 PK NO..

TIL

23.09.07

1. 톰캣 1,2단계 미션 리뷰 반영해서 제출했다. https://github.com/woowacourse/jwp-dashboard-http/pull/341 [톰캣 구현하기 - 1,2단계] 오잉(이하늘) 미션 제출합니다. by hanueleee · Pull Request #341 · woowacourse/jwp 안뇽하세요 하디씨?! 제가 리뷰어인줄 알았는데 하디가 리뷰어였군요 😋 이번 미션 참 쉽지 않았는데요... 리팩토링 갈 길이 멀어 보입니다..^^ 제가 구현한 로직은 다음과 같습니다! 사용자 요 github.com Optional 이번 미션에는 Map이 참 많이 등장한다. 그러다 보니 map.get()연산이 자주 발생하는데 이로 인해 null체크가 빈번하게 필요하다. 처음에는 급해서 그냥 if (어..

TIL

23.09.06

1. Process vs Thread 테코톡에 올라온 Thread 관련 영상들을 싹 시청했다. Process : 자원 할당 단위 Thread : 작업 단위 실행 단위 : cpu core에서 실행하는 하나의 단위로 프로세스와 스레드를 포괄하는 개념 (하나의 cpu core에 한순간에 적재되는 그 것!)(부연 설명이 없는) 프로세스 : 단일 스레드 프로세스 📍 Program vs Process vs Processor Program 실행 되기 전 명령어, 코드 및 정적인 데이터의 묶음 Process 실행 중인 Program 운영체제로부터 시스템 자원을 할당받는 작업의 단위 Processor CPU Program이 Process가 되려면? 1) Process가 필요로 하는 재료들이 Memory에 올라감 Code..

TIL

23.09.05

1. 알고리즘 문제를 2개 풀었다. 1) 백준 2559 처음엔 좀 이렇게 무지성 코드 였고ㅎ (부끄럽지만 공개......) 더보기 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); K = Integer.parseInt(st.nextToken()); nums = new int[N+1]; sums = new int[N+1]; st = new StringT..

TIL

23.09.04

1. 우테코 Tomcat 만들기 미션 [step2. 로그인 구현하기]를 완성하고 PR 제출했다. https://github.com/woowacourse/jwp-dashboard-http/pull/341 [톰캣 구현하기 - 1,2단계] 오잉(이하늘) 미션 제출합니다. by hanueleee · Pull Request #341 · woowacourse/jwp 안뇽하세요 하디씨?! 제가 리뷰어인줄 알았는데 하디가 리뷰어였군요 😋 이번 미션 참 쉽지 않았는데요... 리팩토링 갈 길이 멀어 보입니다..^^ 제가 구현한 로직은 다음과 같습니다! 사용자 요 github.com 3) Cookie에 JSESSIONID 값 저장하기 Cookie 클래스를 추가하고 HTTP Request Header의 Cookie에 JSES..

TIL

23.09.03

1. 우테코 Tomcat 만들기 미션 [Step1. HTTP 서버 구현하기]를 완성했다. 우테코에서는 레벨4동안 스프링 직접 만들어보기 시리즈를 진행한다고 한다! 그 중 첫번째 미션은 직접 Tomcat 만들기!! 두둥~~ 말로만 듣던 servlet container를 직접 만들어본다! 큰 구조는 다음과 같다. (Http11Processor) 1. InputStream으로 input을 byte로 읽고, InputStreamReader로 byte를 문자로 읽는다. 최종적으로 BufferedReader을 사용한다. 2. BufferedReader로 input을 쫙 읽어서 HttpRequest로 만든다. 3. Handler들을 Map형태로 관리하는 HandlerFinder를 통해 해당 request를 처리할 수..

TIL

23.09.01

1. 책 [가상 면접 사례로 배우는 대규모 시스템 설계 기초]의 [2장. 개략적인 규모 추정]을 읽었다. 📍개략적인 규모 추정 보편적으로 통용되는 성능 추시상에서 사고 실험을 행하여 추정치를 계산하는 행위 어떤 설계가 요구사항에 부합할 것인지를 보기 위한 것 📍 2의 제곱수 데이터 볼륨의 단위를 2의 제곱수를 표현하면 어떻게 되는지를 우선 알아야 한다. 1바이트 = 8비트 (최소 단위)(ASCII 문자 하나가 차지하는 메모리 크기) 축약형 2의 제곱 근사치 이름 1KB 2^10B 1,000(1천) 1킬로바이트 1MB 2^20B 1,000,000(1백만) 1메가바이트 1GB 2^30B 1,000,000,000(10억) 1기가바이트 1TB 2^40B 1,000,000,000,000(1조) 1테라바이트 1PB..

TIL

23.08.31

1. (어제 듣다 남은) 영한님의 JPA 활용2편의 [섹션 4 : API 개발 고급 - 컬렉션 조회 최적화] 강의를 들었다. 📍 v3.1 엔티티를 DTO로 변환 - 페이징과 한계 돌파 컬렉션을 페치 조인하면 페이징이 불가능하다. 컬렉션을 페치 조인하면 일대다 조인이 발생하므로 데이터가 예측할 수 없이 증가한다. 일대다에서 일(1)을 기준으로 페이징을 하는 것이 목적이다. 그런데 데이터는 다(N)를 기준으로 row 가 생성된다. Order를 기준으로 페이징 하고 싶은데, 다(N)인 OrderItem을 조인하면 OrderItem이 기준이 되어 버린다. 이 경우 하이버네이트는 경고 로그를 남기고 모든 DB 데이터를 읽어서 메모리에서 페이징을 시도한다. 최악의 경우 장애로 이어질 수 있다. 그러면 페이징 + 컬..

오잉머신
'TIL' 카테고리의 글 목록 (9 Page)