일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 가상면접으로대규모시스템
- 시스템설계방법
- gitsquash
- awss3
- 시스템설계면접예시
- 리팩터링2판테스트
- git commit merge
- 시스템설계면접팁
- git squash
- formik submitting not working
- 디자인패턴
- 가상면접2장
- 리팩토링2판4장
- 가상면접3장
- FirebaseAnalytics
- formik react-query submitting not working
- Git commit 합치기
- 시스템설계면접
- react-ga
- react
- git commit 협업
- file not found Error
- 테스트코드책
- 시스템설계
- s3이미지다운로드됨
- 전략패턴
- cypress React
- 헤드퍼스트전략패턴
- cypressBDD
- 리액트구글애널리틱스
- Today
- Total
목록BackEnd (49)
mingg IT
EC2 배포 ci/cd Actions를 구현하고 있던 와중에 아래와 같은 명령어가 발생했다. nohup: failed to run command 'java': No such file or directory 원인은 사실 너무 간단했다. 우분투 환경에 java가 설치되어 있지 않았던 것. 해결 방법 $ sudo apt-get update $ sudo apt-get install openjdk-17-jdk 난 17버전을 설치했다. java -version 으로 확인이 가능하다.
드디어 올 것이 왔다. 미루고 미루다가 미룰 순 없어서 애플 로그인을 구현했다. Rest-API 방식을 이용한 예시는 많은데, Spring Security Oauth2.0 Client를 이용한 레퍼런스가 다른 SNS 로그인에 비해 매우 적었다. 개발하는 기간동안 나름 고생을해서 이번에 정리해두려고 한다. application.yml에 apple 정보 추가 security: oauth2.client: registration: apple: clientId: {애플로부터 받은clientId} clientSecret: {애플로부터 받은 key 파일}.p8 redirectUri: "${backend-rooturl-origin}/login/oauth2/code/apple" authorizationGrantType:..
쿼리의 성능을 향상시킨 경험에 대해 적어보려고 한다. 처음부터 내가 해당 방식을 이용한 것은 아니다. 아래의 시행 착오를 겪었었고, 최종적으로 선택한 방안에 대해 공유하려고 한다. 쿼리 모두 분해 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) = ..
라이브나 스테이징 DB내 데이터를 로컬로 옮겨와 테스트 해야할 상황이 발생했다. 사실 라이브용 DB를 덤프뜨는 건 실제 서비스에 무리가 갈 수도 있고, 용량이 커질수록 다 비용이기 때문에 지양하는게 최대한 좋다. 이로인해 덤프뜨는 작업을 자주 하지 않는데, 할 때마다 겪은(반복적인) 문제에 대한 해결책을 정리하고자 한다. mysql-client path를 못 찾는 현상(/opt/homebrew/opt/mysql-client/bin) mysql-client를 설치했다면 opt내 path를 찾아와야하는데 도저히 안 보인다. 해결법 command + shift + g 로 검색창을 띄운뒤 path를 붙여넣기 한다. 드디어 찾았다. 이제 선택하고 Start를 누르면 dump가 떠진다. the SUPER, SYST..
3장 시스템 설계 면접 공략법 시스템 설계 면접의 평가 요소 설계 능력의 기술적 측면 협력에 적합한 사람인지 압박이 심한 상황도 잘 헤쳐 나갈 자질이 있는지 모호한 문제를 건설적으로 해결할 능력이 있는지 좋은 질문을 던질 능력능력이 있는지 과도한 엔지니어링을 하는지 효과적 면접을 위한 4단계 접근법 1단계 문제 이해 및 설계 범위 확정 면접 질문에 대해 바로 나의 생각을 답하는 것 보단 시스템 구축에 필요한 정보를 모아야 한다. 아래는 질문 예시이다. 구체적으로 어떤 기능들을 만들어야 하나? 제품 사용자 수는 얼마나 되나? 회사의 규모는 얼마나 빨리 커지리라 예상하나? 석, 달, 여섯 달, 일년 뒤의 규모는 얼마나 되리라 예상하나? 회사가 주로 사용하는 기술 스택은 무엇인가? 설계를 단순하게하기 위해 활..
개략적인 규모 추정 시스템 용량이나 성능 요구사항을 개략적으로 추적하는 행위 2의 제곱수데이터 볼륨의 단위를 2의 제곱수로 표현 응답 지연 값연산별 처리 속도 ns(나노초), us(마이크로초), ms(밀리초)이다. 아래는 쉽게 시각화 한 수치이다. 메모리는 빠르지만 디스크는 아직도 느리다디스크 탐색(seek)은 되도록 피해라단순한 압축 알고리즘은 빠르다(데이터를 인터넷으로 전송하기 전에 가능하면 압축해라)데이터 센서는 보통 여러 지역으로 분산되어 있고, 센서들 간에 데이터를 주고받는 데는 시간이 걸림 고가용성시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력을 의미함. 100%에 가까울수록 시스템이 단 한 번도 중단된 적 없음을 나타냄. 아마존, 구글, 마이크로소프트등은 99% 이상을 제..
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장 개략적인 규모 추정..