본문 바로가기

전체 글293

[Web] 대용량 트래픽 시스템 설계 - 이런 질문을 들었다. Server를 설계할 때 user가 100명이라면 어떻게 만들 것인가? 1000명이라면? 1만명이면? ** AWS의 Auto Scaling 은 고려하지 않는다. (Cost 관리 및 User 증가에 따른 DB의 I/O 속도 감소를 제어 불가) [1~100] - Traffic 을 고려하지 않아도 됨. - 서비스 Application 과 Database를 직접 연결 - 서버 Application 에서 request를 받고, db를 local에 호출하여 결과를 보냄 [100~1K] - 항상 일정한 수의 user가 들어오면 Scale up(수직 확장, 서버 스펙 업그레이드) 을 한다. - 불규칙하게 들어오면 Scale out(수평 확장, 서버 수 증가) 를 한다. - Scale out 을.. 2022. 8. 3.
[Network] Load Balancing (로드밸런싱) - Server에 가해지는 부하(load) 를 분산(balancing) 하는 장치 또는 기술 - client와 server pool(분산 network를 구성하는 서버들의 그룹) 사이에 위치 - 서버 1대에 트래픽이 집중되어(client의 request 폭증) load가 걸리지 않도록 관리 1) Health Check - Server들 (혹은 다음 Node)을 주기적으로 Health Check 하며 Server 장애 여부를 판단 - 이를 통해 Server 몇 대에 이상이 생겨도 정상 Server로 Traffic을 넘기는 Fail-over 가 가능 - TCP/UDP 분석이 가능하여 Firewall 역할도 수행 - [Layer Check 방법] ==> L3 Check : ICMP를 통해 Server의 IP .. 2022. 8. 2.
[Network] Topology (토폴로지) - Network의 Node 등을 도식적으로 배치하는 작업 (Node 들의 연결 모양) - 다수의 device가 Network link로 상호 연결된 방식/형태/모양 - 종류로는 Mesh, Tree, Ring(Loop), Star(Hub & Spoke), Bus Topology 가 있음 - 물리&논리적 Topology 2가지로 구성 ==> 물리적 Topology : - 다양한 Network Node(또는 기기)와 Node 사이의 링크(또는 통신 회선)를 물리적으로 배치하고 연결한 구조 - Connector 는 서로 다른 물리적 Network 케이블을 나타내며, Node는 물리적 Network Device(스위치 등)을 나타냄 ==> 논리적 Topology : - Network 내에서 스위치(switch).. 2022. 8. 1.
[Programing] Localization 이란? - user 나 고객의 필요에 맞춰 특정 언어의 needs나 문화, 욕구(소비)하는 보기 좋은 느낌(look-and-feel)으로 product 나 service 를 적응시키는 것 - 성공적인 localization 은 지역 문화에 맞게 개발하는 것. - '문화에 맞춘 번역(초월 번역)'이란 표현으로 많이 쓰임 - British 영어에서 z 를 s 로 변환 - 해당 국가나 지역의 시간대, 화폐, 국가 공휴일, 지역 색상 민감도(빨강 파랑 뭐 그런...), 생산품이나 서비스 이름 번역, 지역적 특색 등을 고려하는 것 https://www.techtarget.com/searchcio/definition/localization 2022. 7. 31.
[Programing] Application 이란? - 개발자들 사이에서 흔히 Application이라는 단어를 쓴다. 명확한 뜻은 무엇인가? - Type of a software that allows you to perform specific tasks. - 사실 정확하게 정의된 뜻이 아닌 '편의성 통칭 단어' 로 생각하면 된다. - 실무에서 프로젝트의 완성물 자체를 Application이라고 하기도 하고, 아니 작은 DB cube 덩어리를 Application이라고 하기도 한다. - 네이버 지도 서비스를 생각해보자. pc에서 지도 검색을 하고 특정 장소를 선택하면, 새로운 브라우저 창을 띄우지 않고 그 내부에서 iframe 형식으로 서비스를 띄운다. user가 보면 1개의 브라우저 이므로 1개의 Application 이지만, 코드로는 main view.. 2022. 7. 30.
[Network] Segmentation (세그멘테이션) - network 를 여러 개의 segment나 subnet으로 나누는 아키텍쳐 방식. 각각이 소규모 network 역할 - network 관리자는 세분화된 정책에 따라 subnet 간 traffic 흐름을 제어 가능 - segment를 통해 모니터링 및 성능 개선, 기술 문제를 Localization, 보안 강화를 이룸 - 물리적, 논리적 Segmentation 으로 구성 ==> 물리적 Segmentation : 대규모 network를 소규모 network 모음으로 분할 (1개를 여러개로 잘라서 씀) ==> 논리적 Segmentation : 2가지 기본 방법{가상 로컬 영역 네트워크(VLAN) 또는 네트워크 주소 지정 방식} 중 하나를 사용하여 생성 - 게스트 무선 네트워크 - 사용자 그룹 액세스 - .. 2022. 7. 29.
[Network] HTTP 와 HTTPS 차이 - http 에 secure 인 s 가 추가된게 HTTPS - http Protocol의문제점은 서버에서 브라우저로 전송되는 data가 암호화되지 않은 것 (도난 당하기 쉬움) - HTTPS 는 SSL 인증서를 통해 통신 data를 암호화 및 복호화하여 주고 받아 훨씬 안전 - HTTPS 는 TLS(전송 계층 보안) protocol을 통해 보안 유지. ==> @@ TLS : - data 무결성을 제공하기에 data가 전송 중 수정 및 손상을 방지 - 사용자가 자신이 접근하는 웹사이트와 통신하고 있음을 인증하는 기능 - HTTPS를 적용하면 검색엔진 최적화(SEO)로 구글 크롤링에 접근성을 높여 검색 순위가 높아짐(user 방문 증가) - AMP(Accelerated Mobile Pages, 가속화된 모바.. 2022. 7. 28.
[Linux] vi (vim) 편집기 [vim 편집기 열기] cmd 로 terminal 입장 vi 입력 ==> vim 편집기가 열림 [vim 편집기 종료] :q ==> vim 종료 :q! ==> 변경 내용 무시하고 강제 종료 :wq ==> 변경된 내용을 저장하고 종료 [vim에 새로운 파일 생성 및 편집] // 터미널에서 입력 vi new.txt ==> new.txt 라는 파일 생성 // vim이 열린 상태에서 // [i,a,o,I,A,O] 키 중 하나를 아무거나 입력 ==> 입력 모드로 전환 // vim의 입력모드 상태에서 // [esc] 키 입력 ==> 명령 모드로 전환 [입력 모드 단축키] // [i] : 현재 커서의 위치부터 입력 // [a] : 현재 커서의 위치 다음 칸부터 입력 // [o] : 현재 커서의 다음 줄에 입력 // [.. 2022. 7. 27.