본문 바로가기

분류 전체보기154

[네트워크] OSI 7계층이란 무엇인가 0. OSI 7계층이 등장하게 된 배경컴퓨터 네트워크가 발전하면서 각 회사마다 자신들만의 독자적인 네트워크 프로토콜을 개발했다. 이로 인해서 서로 다른 시스템 간 통신이 불가능한 문제가 발생했다.이런 문제 해결을 위해 국제표준화기구(ISO)에서 1984년에 개방형 시스템 간 상호 연결(Open Systems Interconnection, OSI) 모델을 제안했다.계층을 나눈 이유복잡성 관리 : 각 계층은 자신의 역할에만 집중할 수 있다.유지보수 : 한 계층의 기술 업데이트가 다른 계층에 영향을 주지 않는다.계층마다 데이터에 설명, 포장(보안) 혹은 변환이 되어 전달된다.사용자가 데이터를 보내면 총 14계층을 거친다. 즉 하나의 계측은 일방적이지 않고 양방향이다.1. 제 7계층 : 응용 계층(Applica.. 2025. 1. 17.
[확률, 복권] 즉석 복권 기능을 개발하려면 어떤 것들을 고려해야 할까? 0. 즉석 복권을 개발할 때 고려해야할 점들은 무엇이 있을까?개발자 혹은 관리자가 복권의 결과를 미리 알 수 있으면 안된다.문제가 생겼을 때 다시 복구하거나 재연할 수 있어야한다.가령 어떤 실수로 1등이 1명이어야하는데 10명이 나왔다고 하자, 과연 누가 진짜 1등이었을까?!기획적인 측면에서 어떤 추가해야 좀더 의미있는 복권 기능이 될 것인가?1. 단순 확률 게임이 아닌 RandomSeed를 관리해보자예를들어 100개의 복권중에 1개만 당첨이라고 한다면 random을 통해 0.01미만이 나와야 당첨이라고 하자.여기서 0.01이하가 아니라 미만인 이유는 랜덤이 0을 포함하여, 0이상 1미만의 수가 나오기 때문이다.실제로 0.01이 나와서 당첨될 확률도 매우 낮겠지만, 공정한 확률은 0~0.00999999... 2025. 1. 15.
[RDB, NoSQL] 시계열 데이터는 어디에 저장하면 될까 0. 차트에 사용하는 시계열 데이터는 어떻게 저장할까?삼성전자의 초, 분, 시간, 일, 월 단위 등 다양한 차트 데이터가 있다고 한다면, 이 모든 데이터를 한 곳에 저장하는건 매우 비효율적이닌까 제외하자.그렇다면 RDB에서 '삼성전자 초단위', '하이닉스 시간 단위'와 같이 모든 차트 데이터를 저장하려면 종목 수 x 차트 종류 만큼 테이블을 만들어야 한다.NoSQL은 당연히 그만큼의 스키마를 만들고 관리해주어야 한다.일정시간마다 데이터가 삽입되고, 그 데이터들을 읽을 경우가 많다.1. RDB로 했을 때 장점과 단점은 무엇일까?장점ACID 특성 : 트랜잭션 무결성을 보장해준다복잡한 쿼리와 조인 수행스키마를 정의하여 데이터 구조를 강제한다.단점확장성 제한수직 확장이 주로 이루어지며, 수평 확장이 어렵다.대규.. 2025. 1. 15.
[SSE, Redis Pub/Sub, RDB] 확장성 있는 알림 기능 구현[SSE, Redis Pub/Sub, RDB] 확장성 있는 알림 기능 구현 0. 확장성이란 무엇인가?확장성(Scalability)이란 소프트웨어가 증가하는 부하나 수요를 처리할 수 있는 능력을 의미한다. 즉, 사용자가 늘어나거나, 데이터가 증가하거나, 새로운 기능이 추가되더라도 시스템이 성능 저하 없이 원활하게 작동할 수 있는지를 나타내는 개념이다.확장성이라고 하면 수평적 확장 혹은 수직적 확장 등 주로 DB나 서버 인스턴스에서 많이 들어봤을 개념이다.1. 알림 기능에서 내가 정의한 확장성다음과 같은 상황에서 코드 수정이 필요없거나 최소화 하도록 하자.다중서버로 확장사용자 A가 a 서버와 연결되어 있지만, b 서버에서 A 사용자와 관련된 이벤트가 발생했을 때 알림이 잘 전송되어야 한다.다양한 형태의 알림 기능 증가매도, 매수, 서버 공지, 이벤트 당첨 등 다양한 알림 형태에 대.. 2025. 1. 15.