일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 전략패턴
- 테스트코드책
- formik react-query submitting not working
- 헤드퍼스트전략패턴
- 시스템설계면접예시
- 시스템설계
- 리액트구글애널리틱스
- 디자인패턴
- git commit merge
- awss3
- 리팩터링2판테스트
- react
- 가상면접으로대규모시스템
- 시스템설계면접팁
- cypressBDD
- react-ga
- s3이미지다운로드됨
- 가상면접2장
- formik submitting not working
- file not found Error
- gitsquash
- FirebaseAnalytics
- 리팩토링2판4장
- cypress React
- 시스템설계방법
- git squash
- Git commit 합치기
- 가상면접3장
- git commit 협업
- 시스템설계면접
- Today
- Total
목록전체 글 (276)
mingg IT
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zji0b/btspVOol7Gp/LXuuetS4frc7Z3VucFNKmK/img.png)
내 나이만큼(27)권을 읽는 것을 올해 목표로 정했는데 반년이 지난 지금 과연 몇 권이나 읽었을지, 또 어떤 책을 읽었는지 정리해 보고자 한다. 1. 리팩토링 2판 몇 년동안 세 번째 읽은 것 같은데 매번 내가 어떤 업무에 포커싱 하느냐에 따라서 다른 시각으로 보인다. 이번에는 테스트 코드쪽을 재밌게 읽었다. https://mingg123.tistory.com/259 [리팩토링] 리팩토링 2판 리뷰 1장 https://mingg123.tistory.com/141 [리팩토링] 리팩토링 2판 1장 리뷰 리팩토링 2판 예시 1번 프로그램이 새로운 기능을 추가하기에 편한 구조가 아니라면, 먼저 기능을 추가하기 쉬운 형태로 리팩토링 mingg123.tistory.com 2. 헤드 퍼스트 디자인 패턴 디자인패턴에 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/t4Nlh/btspgnC6wgg/9Xvyklh2f04ygYlXJs4Ow1/img.png)
쿼리의 성능을 향상시킨 경험에 대해 적어보려고 한다. 처음부터 내가 해당 방식을 이용한 것은 아니다. 아래의 시행 착오를 겪었었고, 최종적으로 선택한 방안에 대해 공유하려고 한다. 쿼리 모두 분해 SUBSTRING, CONVERT 등 없에고 자바 로직으로 해결 함수 인덱스 적용 VirtualColumn 추가 및 인덱스 적용 문제 사용하고있는 검색 쿼리가 매우 느려서 개선이 필요했다. @Query("SELECT u FROM User u WHERE " + "u.completed = true AND " + "(u.username = :searchTerm OR " + "SUBSTRING(u.phone, LENGTH(u.phone) - 7) = :searchTerm OR " + "LOWER(u.userId) = ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bcZ74Y/btsn87H2uXe/v2XEGTzg5eHXKm0Aw1ug31/img.png)
라이브나 스테이징 DB내 데이터를 로컬로 옮겨와 테스트 해야할 상황이 발생했다. 사실 라이브용 DB를 덤프뜨는 건 실제 서비스에 무리가 갈 수도 있고, 용량이 커질수록 다 비용이기 때문에 지양하는게 최대한 좋다. 이로인해 덤프뜨는 작업을 자주 하지 않는데, 할 때마다 겪은(반복적인) 문제에 대한 해결책을 정리하고자 한다. mysql-client path를 못 찾는 현상(/opt/homebrew/opt/mysql-client/bin) mysql-client를 설치했다면 opt내 path를 찾아와야하는데 도저히 안 보인다. 해결법 command + shift + g 로 검색창을 띄운뒤 path를 붙여넣기 한다. 드디어 찾았다. 이제 선택하고 Start를 누르면 dump가 떠진다. the SUPER, SYST..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bf7mUV/btsmYK1yykR/F6YTWj5B26JJuv4RG1cyjk/img.png)
3장 시스템 설계 면접 공략법 시스템 설계 면접의 평가 요소 설계 능력의 기술적 측면 협력에 적합한 사람인지 압박이 심한 상황도 잘 헤쳐 나갈 자질이 있는지 모호한 문제를 건설적으로 해결할 능력이 있는지 좋은 질문을 던질 능력능력이 있는지 과도한 엔지니어링을 하는지 효과적 면접을 위한 4단계 접근법 1단계 문제 이해 및 설계 범위 확정 면접 질문에 대해 바로 나의 생각을 답하는 것 보단 시스템 구축에 필요한 정보를 모아야 한다. 아래는 질문 예시이다. 구체적으로 어떤 기능들을 만들어야 하나? 제품 사용자 수는 얼마나 되나? 회사의 규모는 얼마나 빨리 커지리라 예상하나? 석, 달, 여섯 달, 일년 뒤의 규모는 얼마나 되리라 예상하나? 회사가 주로 사용하는 기술 스택은 무엇인가? 설계를 단순하게하기 위해 활..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ctAeVi/btsmQDig5As/sWlH8moc7R2IsRvOGFALO0/img.png)
개략적인 규모 추정 시스템 용량이나 성능 요구사항을 개략적으로 추적하는 행위 2의 제곱수데이터 볼륨의 단위를 2의 제곱수로 표현 응답 지연 값연산별 처리 속도 ns(나노초), us(마이크로초), ms(밀리초)이다. 아래는 쉽게 시각화 한 수치이다. 메모리는 빠르지만 디스크는 아직도 느리다디스크 탐색(seek)은 되도록 피해라단순한 압축 알고리즘은 빠르다(데이터를 인터넷으로 전송하기 전에 가능하면 압축해라)데이터 센서는 보통 여러 지역으로 분산되어 있고, 센서들 간에 데이터를 주고받는 데는 시간이 걸림 고가용성시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력을 의미함. 100%에 가까울수록 시스템이 단 한 번도 중단된 적 없음을 나타냄. 아마존, 구글, 마이크로소프트등은 99% 이상을 제..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Lqble/btsmRrBSFmC/VKcFVk9qvzHKFzBzM1GLWK/img.png)
Xcode를 이용하여 테스트용 아이폰에 앱을 빌드하려고 했는데 해당 에러가 발생했다. 분명히 몇 달 전까지만 해도 잘되었는데.. 왜 갑자기 안되니 원인을 살펴보니 등록한 애플 계정에서 라이센스가 업데이트 되어 동의를 해라는 의미였다. 해결 방법 1. Apple developer에 로그인 한다. https://developer.apple.com/account 로그인 - Apple idmsa.apple.com 계정에 들어가서 확인해보면 사용권 계약이 업데이트 되었다고 적혀있다. 2. 동의 버튼을 클릭하면 된다. 나는 팀에서 사용하는 라이센스를 쓰고 있기 때문에 권한을 요청드렸다. Try again 버튼을 클릭하니 에러가 사라졌다. 이후 정상적으로 빌드 성공~!
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b1bnjB/btsmheKwD9T/tJl4MS6bn4b4OWp8m1Ddc0/img.png)
1장 사용자 수에 따른 규모 확장성 단일 서버 구조 사용자는 도메인 api.mysite.com인 웹 사이트에 접속한다 접속을 위해 DNS가 도메인을 IP 주소로 변환한다. (보통 제3 사업자가 운영하는 유료 서비스를 이용한다) IP 주소로 변환되고 나면 HTTP 요청이 전달된다 요청 받은 웹 서버는 HTML 페이지나 JSON 응답을 반환한다. 데이터베이스 사용자 수가 증가하면 서버 하나로는 부족하기 때문에 여러 서버를 두어야함 하나는 웹/모바일 트래픽 처리 용도이고, 하나는 데이터베이스 처리 용도이 데이터베이스 종류 관계형 데이터베이스 MYSQL, Oracle, PostgresSQL 테이블과 열, 컬럼으로 표현함 Join 이 가능 비 관계형 데이터베이스 NoSql 이라 부름 GouchDB, Neo4j, ..
내가 진행하고 있는 프로젝트의 사용자가 11만명에 가까워지면서 대규모 시스템에 관심을 가지게 되어 읽어보려고 한다. 1장 사용자 수에 따른 규모 확장성 https://mingg123.tistory.com/240 [가상 면접 사례로 배우는 대규모 시스템 설계 기초] 1장 사용자 수에 따른 규모 확장성 1장 사용자 수에 따른 규모 확장성 단일 서버 구조 사용자는 도메인 api.mysite.com인 웹 사이트에 접속한다 접속을 위해 DNS가 도메인을 IP 주소로 변환한다. (보통 제3 사업자가 운영하는 유료 서비 mingg123.tistory.com 2장 개략적인 규모 추정 https://mingg123.tistory.com/251 [가상 면접 사례로 배우는 대규모 시스템 설계 기초] 2장 개략적인 규모 추정..