전체 글 247

2024 토스 컨퍼런스 참가 홍보👍

https://toss.im/slash-24 토스 개발자 컨퍼런스 SLASH24참가 신청 8.23-9.2 / 본 행사 9.12 COEXtoss.im 주위에서 알려준 개발자 컨퍼런스인데, 개인적으로 참 잘 쓰고 또 어떻게 이렇게 커다란 시스템을 유기적으로 잘 구축했나 궁금했던 토스에서 개발자 컨퍼런스를 한다고 하여 냉큼 신청해봤다. 벌써부터 너무 재밌어 보이는 세션들 대규모 차세대 프로젝트(앞으로도 이정도 규모의 차세대는 한 10년간은 없지 않을까 싶은) 경험을 가지고 있는데, 정말 엉망진창인 상태로 오픈을 했기 때문에 그럼 토스는 어떻게 했는가?가 너무 궁금하다.그 내용들이 쏙쏙히 컨퍼런스안에 있는 것 같다. MSA로 고생했던 것들에 대한 내용도 있고, 관심있어 보이는 프론트 내용도 있고, 아직은 설레발..

ETC/잡담 2024.08.23

Git과 SVN 고찰

si 프로젝트는 늘 새로 접하는 기술을 만나게 된다.이번엔 SVN을 사용하게 되어 왜 아직 여기는 SVN에 머물러있는지, Git을 쓰면 안되는 것인지 공부해보려고 한다.최신 기술이 정답은 아니지만, 더 나은 기술이 있음에도 써온 관례로 인해서 예전 기술을 고집하지 않았으면 좋겠다.Git이란?- 현재 제일 많이 사용되는 형상관리(버전관리) 도구- 소스코드를 여러 개발 PC와 저장소에 분산해서 저장 SVN이란?- 아파치 서브버전- 중앙 저장소 방식, Trunk라는 중심이 되는 저장소가 존재   Git vs SVN차이점Git: 개발자별로 저장소를 가짐 - 각 저장소가 각각의 주체가 되기 때문에 버전 관리를 개발자가 할 수 있음 - 중앙 저장소에 영향을 주지 않기 때문에 로컬 환경에서 작업이 자유로움 SVN: ..

IT/고찰 2024.06.19

Log에 대한 고찰

2023.08.15 - [IT/고찰] - Comment에 대한 고찰 Commit Message와 Comment에 이은 고찰 시리즈 3탄, Log Log 필요성 로그는 프로세스의 흐름, 장애 파악 등 정보 수집에서 중요한 역할을 담당합니다. 오류가 발생하면 가장 먼저 어디서 잘못되었는지 로그 검색을 통해 정보를 알아냅니다. 하지만 잘못된 로그들은 오히려 개발자들에게 혼란을 가중시킵니다. 또한, 의미없는 로그 데이터들로 인해 중요한 정보를 보기까지 많은 어려움을 겪게 됩니다. 실제로 프로젝트를 진행하면서 정말 중요한 흐름만 기록을 했다면, 에러가 난 부분을 명확하게 표현했다면 간단하게 고쳐질 문제들이 대부분이었습니다. 그러나 그 원인을 찾기까지 정말 수많은 시간을 소모하였습니다. Commit Message,..

IT/고찰 2023.08.25

Comment에 대한 고찰

2023.08.02 - [IT/고찰] - Commit Message에 대한 고찰 Commit Message에 대한 고찰에 이은 고찰 시리즈 2탄 사실 주석은 필요하지 않다 로버트 C 마틴의 Clean Code 책에서 주석은 필요 악인 존재입니다. 주석은 코드로 의도를 표현하지 못해서 남기는 것이라 말하기도 합니다. 2021.10.30 - [IT/책] - [Clean Code] 4장, 주석 [Clean Code] 4장, 주석 Clean Code - 로버트 C. 마틴 4장, 주석 주석은 코드로 의도를 표현하지 못해서, 실패를 만회하기 위해서 사용함 🔴 주석은 필요 악 🔴 - 주석을 유지/보수하기 어려움 - 주석이 코드를 항상 따라가 honeywater97.tistory.com 그리고 주석을 지양해야 하는 이..

IT/고찰 2023.08.15

Commit Message에 대한 고찰

회사 프로젝트를 진행하면서 메시지가 담고 있는 의미에 대해서 종종 생각하게 되었습니다. 코드로 모든 걸 나타낼 수 있다면 가장 좋겠지만, 코드에 온전히 나의 의도를 담는 것은 쉽지 않습니다. 따라서, 가장 자주 사용하는 메시지인 Coimmit, Comment, Log의 작성법에 대해서 정리해보고자 합니다. 메시지를 잘 적는 것은 협업에서 반드시 필요한 기본적인 습관입니다. 기록으로 소통이 가능하기 때문입니다. Commit Message 필요성 1. Git을 사용하면 반드시 커밋 메시지를 남기도록 되어있습니다. 그렇기 때문에 많은 개발자들은 의미없이 커밋 메시지를 적기도 합니다. ex) "제발", "이번엔 성공" 등 2. 커밋메시지는 단순히 소스코드를 올리거나 억울함을 호소하기 위한 것이 아닙니다. 코드의..

IT/고찰 2023.08.02

[데이터설계] 8장, 분산 시스템의 골칫거리

8장, 분산 시스템의 골칫거리 결함과 부분장애 하드웨어 문제 - 하드웨어는 올바르게 동작하면 항상 같은 연산 결과를 냄 - 완전히 실패하거나 아니면 완전하게 동작함 부분 장애 - 비결정적인 장애 - 성공 여부를 알 수 없기 때문에 더욱 어려움 신뢰성 없는 네트워크 분산 시스템은 비공유 시스템을 의미한다. 즉, 네트워크로 연결된 다수의 장비 - 각 장비는 자신만의 메모리와 디스크를 가지고 있어, 다른 장비의 메모리나 디스크에 접근 할 수 없다. - 네트워크가 유일한 통신 수단 비동기 패킷 네트워크 - 다른 노드로 메시지(패킷)을 보낼 수 있지만, 도착을 보장하지 않음 - 타임아웃으로 해결 네트워크 결함 네트워크 분단(분리): 네트워크 결함 때문에 다른 쪽과 차단이 되는 것 결함 감지 - 시스템은 결함이 있..

IT/책 2022.10.10

[데이터설계] 3장, 저장소와 검색 - 트랜잭션

트랜잭션 OLTP(온라인 트랜잭션 처리) 애플리케이션이 일부 키에 대한 적은 수의 레코드를 찾는 대화 형식의 접근 패턴 - 사용자 대면이므로 대량의 요청을 받을 수 있음 - 부하 처리를 위해 애플리케이션이 작은 수의 레코드만 사용 - 애플리케이션은 키의 일부만 사용하는 레코드 요청, 저장소 엔진은 요청한 키의 데이터를 찾기 위해 색인 사용 (디스크 탐색 병목) OLAP(온라인 분석 처리) 비즈니스 인텔리전스에 필요한 데이터베이스 패턴 - 비즈니스 인텔리전스: 비즈니스 분석가가 회사 경영진의 더 나은 의사결정을 돕도록 하는 질의 - OLTP보다 적은 수의 질의를 다룸 - 짧은 시간에 많은 수의 레코드 탐색 (디스크 대역폭 병목) 데이터 웨어하우스 - OLTP 시스템의 읽기 전용 복사본 - 데이터 분석가가 ..

IT/책 2022.08.21

[데이터설계] 3장, 저장소와 검색

목표: 단순한 정리가 아니라 남에게 설명할 수 있는 글이 되자 3장, 저장소와 검색 로그 - 로그는 append-only 파일로, 연속된 추가 전용 레코드를 의미한다. - read시, 검색비용에 O(n)이 소모된다. 검색비용을 줄이기 위한 효과적인 방법 색인 어떤 부가적인 메타데이터를 유지하는 것 색인은 데이터베이스의 내용에 영향을 미치지 않는, 파생된 추가적인 구조이다. 특징 - 쓰기 과정에서 오버헤드 발생: 데이터를 추가할 시, 매 번 색인도 갱신해야 한다. - 필요이상으로 오버헤드를 발생시키지 않으면서 읽기 질의 속도를 향샹시키는 색인을 선택해야 한다. 1. 해시색인 Bitcask(Riak의 기본 저장소 엔진) - 인메모리 해시 맵: 사용 가능한 램에 모든 키가 저장 > 한 번의 디스크 탐색으로 디..

IT/책 2022.08.18

[데이터설계] 2장, 데이터 모델과 질의 언어

1. 데이터 중심 애플리케이션 설계가 책의 전체 이름이지만 너무 길어서 데이터 설계로 줄인다. 2. 1장은 기능적 요구사항, 비기능적 요구사항, 신뢰성, 확장성, 유지보수성에 대해서 다룬다. 다른 곳에서 많이 다뤘던 이야기이므로 PASS 데이터 중심 애플리케이션 설계 - 2장, 데이터 모델과 질의 언어 관계형 모델 - 데이터(테이블): 관계와 튜플로 구성 - 비즈니스 데이터 처리 시 유용 ex) 트랜잭션 처리, 일괄 처리 NoSQL: Not Only SQL - 다중 저장 지속성: 폭넓은 다양성 객체 관계형 불일치 임피던스 불일치(impedance mismatch): 관계형 테이블 저장 시, 애플리케이션 코드와 데이터 베이스 모델 객체 사이 전환 계층 - 객체 관계형 매핑(ORM) 프레임워크를 사용 일대다..

IT/책 2022.08.13