일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Crawling
- 소켓
- 자바스크립트
- TCP
- 가천대
- type challenge
- 프로그래머스
- dfs
- ip
- javascript
- Node.js
- Nestjs
- socket
- 타입 챌린지
- 문자열
- 알고리즘
- 프로그래머스 레벨 2
- typescript
- 타입스크립트
- dp
- Algorithm
- 그래프
- 쉬운 문제
- BFS
- 크롤링
- 레벨 1
- HTTP 완벽 가이드
- 백준
- 수학
- HTTP
- Today
- Total
목록프로그래밍/Backend (17)
kakasoo
시작하기 전에 블록체인을 어떻게 활용할 수 있을까. 최근에 읽고 있는 책에서는 데이터를 저장하고 꺼내는 데 사용하는 도구 5가지를 가르쳐줬다. 이 5가지 도구는 우리가 잘 아는 데이터베이스부터 캐시와 인덱스, 메시지 큐, 배치 시스템 이렇게 5가지다. 나는 이 책에서 말한 것과 같이, 백엔드가 이제는 데이터 도구들을 엮는 역할만 수행할 거라는 점에서 언뜻 동의한다. 서버는 이제 데이터를 꺼내고 저장하는 모든 연산을 외부 도구들에게 맡길 것이고, 데이터의 형태를 변환하는 등의 최소한의 연산을 제외한다면, 이 도구들 간의 커뮤니케이션을 수행하는 데 대부분의 자원을 사용할 것이라는 생각이다. 다만 언뜻이라고 말한 부분은, 내가 좋은 의미로도 나쁜 의미로도 아직 주니어 개발자이기 때문이다. 확신은 할 수 없다...
결론부터 말하자면, 시스템 설계에서 가장 적합한 부하 매개변수를 고른 정한 다음, 그걸 기준으로 부하를 판단해야 한다. 트위터에서는 팬 아웃이라는 용어를, 트윗 1건 당 팔로워에게 전송해야 하는 메시지의 수를 설명하는데, 이와 같은 SNS 사례는 서버 측이 겪을 수 있는 가장 큰 트래픽 중 하나를 보여준다. 확장성의 의미 시스템의 데이터 양, 트래픽, 복잡도가 증가하면서, 이를 처리할 적절한 방법들이 필요해진다. 시스템이 현재 안정적으로 동작한다고 해서 미래에도 안정적으로 동작할 거란 보장은 없다. 성능 저하를 유발하는 흔한 이유 중 하나는 부하 증가다. 사용자의 수는 단순히 10배 증가했다고 할 수 있지만, 그게 10만에서 100만으로, 100만에서 1,000만으로 증가하는 등, 절대적인 수에서도 큰 ..
데이터의 양, 복잡성, 변하는 속도 등 데이터가 주요 도전 과제인 애플리케이션을 데이터 중심적이라 한다. NoSQL, RDB, message Queue, cache, index, 일괄처리 또는 스트림 처리 프레임워크 등, 애플리케이션은 데이터를 다루기 위한 많은 기술들을 조합해서 사용하는데, 이 기술들의 트레이드오프를 올바르고 정확하게 이해해야 한다. 다행히도 이런 기술들에는 변하지 않는 원리가 있다. application 개발 방법 변천의 원동력 대기업들이 가진 엄청난 양의 데이터와 트래픽을 다루기 위한 효과적인 도구 필요 Lean하게, 적은 노력으로 가설을 테스트하고 시장을 빠르게 검증할 필요 CPU의 병렬 처리 ( 멀티코어 ) 성능 향상과 고성능 네트워크 AWS 같은 IaaS 덕택에 소규모 팀도 쉽..

개발자들에게 중요한 것은 기술 스택이다. 하지만, 무조건 기술 스택만 중요한 건 아니다. 커머스에서 일한 개발자라면, 다음 직장 역시 커머스일 때, 당장의 기술 스택이 다르더라도 일단 와서 배우라고 말할 수 있다. 기술 스택 말고도 분야에 대한 이해도가 있는지, 시리즈 ( 투자 라운드 ) 에 따라 자신이 수행해야 할 역할을 이해하고 있는지, 창업가 정신을 가지고 있는지, 조직을 리드해본 경험이나 인간관계에 대해 깊이 고찰해본 경험이 있는지도 고려할 부분이다. 똑같은 기술 스택을 가진 사람이라고 하더라도, 커머스 개발자는 커머스 개발자고, 게임 서버 개발자는 게임 서버 개발자가 될 것이다. 또 제너럴리스트가 있다면 스폐셜리스트가 있을 것이고, 경력이 쌓여가면서 기술 스택으로 구분되는 일이 점차 적어질 것이..
인터넷에 이 둘의 장단점에 대한 많은 글이 있지만, 그래서 뭘 써야 하는지 결론은 없어서, 뇌피셜을 적는다. 토큰과 세션의 차이 예전에는 서버가 모든 걸 해주었다. 결혼식 방명록을 session이라고 해보자. session은 방명록처럼, "유저 1이 왔다 갔습니다." 라고 적는 방식이다. 이 때, 서버의 유저 수가 몇 천, 몇 만을 넘으면 어떻게 될까? 모든 걸 기록 하는 방식인 세션에서는 "야, 저번에 축의금 낸 사람 누구지?" 라는 질문에 답하기 위해서, 로그를 뒤져봐야 하는 수고를 해야 한다. 세션은 유저의 인증을 위함인데, 이 인증 자체가 서버에 큰 부하를 주게 된다. 물론, 이 경우 서버의 수를 늘리면 해결할 수 있다. 하지만 여러 명이 방명록을 나눠 적는 셈이니, 서로의 기록이 달라지게 된다...