SE Concepts
-
대규모 시스템에서 발생하는 데이터 처리 (feat. 패스트캠퍼스 온라인 'THE RED : 4천만 MAU를 지탱하는 서비스 설계와 데이터 처리 기술')SE Concepts 2021. 5. 19. 08:01
이번 글에서는 강의에서 다뤄진 2번째 주제인 '대규모 시스템에서 발생하는 데이터 처리' 부분을 살펴보겠습니다. 역시 이전 글과 같이 넓은 시각에 대한 공유는 존재하나, 전체적인 구조와 디테일에 있어서 정리가 잘 되어 있지 않은듯 하여 주제별로 다른 리소스를 참고하였습니다. 이전글: 확장성 및 안정성 있는 시스템에 관하여 (feat. 패스트캠퍼스 온라인 'THE RED : 4천만 MAU를 지탱하는 서비스 설계와 데이터 처리 기술') 아래와 같은 구조로 데이터의 종류에서부터 저장, 처리와 같은 방향성을 가지고 전달드려 보겠습니다: 데이터 종류 데이터 모델과 쿼리 언어 데이터 저장 데이터 처리 데이터 종류 데이터의 종류는 다양한 관점으로 구분해볼 수 있습니다. 단순히 파악을 위해서만이 아니라 특정 상황에서 그..
-
확장성 및 안정성 있는 시스템에 관하여 (feat. 패스트캠퍼스 온라인 'THE RED : 4천만 MAU를 지탱하는 서비스 설계와 데이터 처리 기술')SE Concepts 2021. 5. 13. 00:44
이번 주제에서는 '카카오페이지 기술전략이사 윤진석' 님이 진행하신 강의에 대하여 초반부를 제외한 '확장성 및 안정성 있는 시스템', '대규모 시스템에서 발생하는 데이터 처리'와 관련해 각각 주제를 정리하며 수업 내용의 요약을 곁들여보려 합니다. 다음글: 대규모 시스템에서 발생하는 데이터 처리 (feat. 패스트캠퍼스 온라인 'THE RED : 4천만 MAU를 지탱하는 서비스 설계와 데이터 처리 기술') 총 2개의 페이지로 나누어 이번 글에서는 전자인 '확장성 및 안정성 있는 시스템' 부분을 살펴보겠습니다. 개인적으로 강의 내용 중 넓은 시각에 대한 공유는 존재하나, 전체적인 구조와 디테일에 있어서 정리가 잘 되어 있지 않은듯 하여 주제별로 다른 리소스를 참고하였습니다. 웹의 확장성이란 웹 확장성을 이루는..
-
품질의 집 (House of Quality)SE Concepts 2021. 4. 5. 20:30
품질 기능 전개(QFD, Quality Function Deployment)의 기본적인 디자인 도구인 '품질의 집 (House of Quality)'는 1972년 미쯔비시 고베 조선소에서 탄생하였습니다 (1966년으로 언급되기도 합니다 [1]). 이후 도요타와 도요타 공급업체에서 품질의 집을 다양한 방식으로 개발해 나갔습니다. 품질의 집은 일본의 가전, 가구, 의류, 반도체 등의 다양한 제조업에서 성공적으로 도입되었습니다. method to transform qualitative user demands into quantitative parameters, to deploy the functions forming quality, and to deploy methods for achieving the des..
-
DDD란? ((Business) Domain-Driven (Software) Design)SE Concepts 2021. 3. 28. 14:02
최근 외주로 운영 되던 서비스를 내재화하는 작업을 담당하게 되면서, 특정 도메인의 목적을 위해 구현된 소스코드를 이해하는 데에는 순전히 '기술적'인 사항만 존재하지 않는다는 사실을 절실히 깨달았습니다. '모바일 쿠폰 서비스'라는 컨택스트 상에서는 당연하고 상식적인 흐름이, 그러한 컨택스트를 제외한 '기술적'요소들만을 살펴보았을 때는 터무니 없이 복잡하고 어렵게 느껴졌습니다. 또한, 서비스에 요구사항을 전달하는 그 근본에는 '도메인'이 존재하기 때문에 서비스에 대한 이해는 '도메인에 대한 깊은 이해'에 기반한다는 점을 실감하고 있습니다. 많은 소프트웨어가 실패하고, 그러한 소프트웨어의 실패의 원인들은 대다수 '커뮤니케이션'과 관련된 문제점을 포함한다고 합니다 [2]. 이 부분에서 DDD(Domain-Dri..
-
레거시를 파악하고 변경해나가기: 우선순위와 고려사항들SE Concepts 2021. 3. 18. 22:20
최근 외주 인력이 운영하던 서비스를 내재화하는 팀으로 이동하게 되었습니다. 2000년대 중반에 시작되어 10년이 넘는 기간 동안 여러 회사와 다양한 외주 인력으로 관리 되던 서비스는 Spring, DWR, Struts, JSP, Apache Mina 등 다양하고 오래된 프레임워크를 사용하였습니다. 문서화도 잘 되어 있지 않고 단기간에 이제 계약이 끝나가 자세한 인수인계를 받기 어려운 서비스를 파악해가면서, 어떻게 30개로 흩어져 있는 코드를 BitBucket, 소스코드를 효율적으로 파악할 수 있을까?라는 생각을 많이 하였습니다. [1]의 Working Effectively with Legacy Code는 한 가지의 레거시 코드를 어떻게 안정적으로 변경해나갈 수 있을까?라는 부분에 Testing과 Scop..
-
책 '구글에서의 소프트웨어엔지니어링'의 '문화' 요약SE Concepts 2021. 1. 27. 23:10
Oreilly의 Trending에 올라와 있는 "Software Engineering at Google"의 Culture 부분을 읽고, 앞 부분부터 참 좋은 내용이 많다는 생각이 들었습니다. 저 개인적으로도 그 내용을 체화하기 위해 아래 요약으로 그 핵심을 전달하며 공부해보려 합니다. 이 부분은 읽으면서 전반적으로 느낀 점은, 아래의 사항들이 '추상적'인 언급이 아니라 프로세스화 되고, 가능하다면 기술로 구현되고, 장기적으로 경제적 이득이 되기에 행하고 있다는 점입니다. 여기서 '경제적 이득'이라는 부분은, 마틴 파울러가 Unittest가 실제로 코드 운영유지에 효율적이기에 해야한다고 하는 것과 유사한 맥락입니다. 팀으로 일하기 지식 공유하기 평등을 위한 엔지니어링 어떻게 팀을 리드하는가? 많은 사람을 ..
-
브라우저 핑거프린팅(Browser Fingerprinting)이란?SE Concepts 2021. 1. 23. 21:58
통합적인 관점에 기반한 온프레미스 데이터 플랫폼 구조 비교분석 이 글의 원문은 11번가 데이터 플랫폼 팀에서 데이터 엔지니어로 근무(20190923 ~ 20201115)하며 사내 블로그에 작성한 '통합적인 관점에 기반한 11번가 온프레미스 데이터 플랫폼 구조 비교분석'입니 kadensungbincho.tistory.com 디바이스 핑거프린팅(Device Fingerprinting)이란 식별(Identification)을 위해 수집된 원격의 컴퓨팅 기기의 하드웨어 및 소프트웨어 정보를 말합니다 [1]. 브라우저 핑거프린팅은 브라우저를 통해서 이뤄지는 디바이스 핑거프린팅을 말합니다. 기본적으로 Persistent 쿠키를 읽을 수 없거나 클라이언트 ip가 숨겨져 있거나, 또는 한 기기에서 다른 브라우저를 사용..