목록IT Paradigm (22)
잡동사니
안녕하세요. yeTi입니다. 오늘은 도메인 주도 설계 의 2부의 읽은 후기를 기록하려고 합니다. 도메인을 격리하자 도메인의 격리를 보편적으로 할 수 있는 방식은 LAYERED ARCHITECTURE 입니다. 객체지향 프로그램을 개발하면서 가장 쉬운 방법으로 도메인 코드와 도메인과 관련없는 코드를 혼재하는 것입니다. 그러나 이렇게 되면 도메인과 관련된 코드를 확인하고 추론하기가 힘들어지고 모델 주도적인 객체를 구현하는 것이 비현실적인 이야기가 돼버립니다. 객체지향의 5대원칙 중 하나인 관심사의 분리가 중요한 요소로 언급되는 것처럼 소프트웨어 시스템을 분리하는 방법 중 보편적으로 사용하는 것이 LAYERED ARCHITECTURE 입니다. 그 외의 다수의 패턴들이 풀고자 했던 문제 중 하나는 느슨한 결합을 ..
안녕하세요. yeTi입니다. 오늘은 마틴 파울러의 테스트 커버리지 를 계기로 삼아 테스트 커버리지를 알기위해 노력했던 경험을 공유하고 스스로 정의내린 테스트 커버리지의 의미를 공유하고자 합니다. 숙제 지난 4년간 풀지못한 숙제가 있습니다. 테스트 커버리지가 가지는 가치는 무엇일까? 테스트 커버리지를 100% 달성했다는 것은 무엇을 의미할까? 테스트 커버리지가 높아도 버그는 있어. 노력 1 - 소프트웨어 테스팅 2019년 07월 K-MOOC 의 강좌 중 하나인 소프트웨어 테스팅 을 접하게 됩니다. 해당 강의를 보며 완벽한 테스팅은 기술적으로 불가능하다는 것은 명시적으로 느끼고 테스트 기법이나 커버리지의 종류에 대해 접할 수 있는 기회가 되었습니다. 그러나 실무에서 사용할 수 있는것은 없어서 아쉬움이 남았습..
안녕하세요. yeTi입니다. 오늘은 도메인 주도 설계 의 1부의 읽은 후기를 기록하려고 합니다. 책을 선택한 이유 조영호님의 객체지향의 사실과 오해를 보면 도메인 모델을 기반으로한 객체 설계를 말합니다. 도메인 모델로 객체 지도를 만들어라. 그리고 JPA 의 repository 의 주석을 보면 DDD 에 의해 정의된 메카니즘이라고 표현합니다. 그렇게 DDD 를 읽기 시작했습니다. 현실의 복잡성을 풀어나가자 그런데 서문을 읽고 장황하게 설명된 표현들이 도메인 모델을 이해하고 현실의 복잡성을 풀어나가는것이 소프트웨어 개발의 본질이라고 말하는거 같습니다. 머릿속에서 명쾌하게 정리되는 느낌은 없지만 좋은 설계를 목표로, JPA가 지향하는 메카니즘을 이해하는 것을 목표로 읽어나가야 겠습니다. 지식을 보전하고 계승..
안녕하세요. yeTi입니다. 오늘은 객체지향의 사실과 오해 읽은 후기를 기록하려고 합니다. 책을 선택한 이유 OOP 에 대해 알고 싶은 마음에 개념의 창시자이신 Alen Kay 님의 The early history of SmaillTalk 을 읽고 깊은 감명을 받아 기록으로 남겼습니다. OOP의 기원 (feat. 객체와 메시지) 이 후 조용호 님의 오브젝트 를 읽어볼까 하다가. 뭔가 상세한 지식을 접하기 전에 객체와 메시지에 대한 시야를 넓히고 싶다는 생각에 객체지향의 사실과 오해 를 선택했습니다. 저는 책의 서문을 주의깊게 읽는 스타일인데요. 조용호 님이 이 책을 집필하신 동기나 목적이 제가 알고 싶어하는 부분과 일맥상통(一脈相通) 하다는 느낌을 받아 이 책을 잘 선택했다는 기쁨을 느낄 수 있었습니다...
안녕하세요. yeTi입니다. 오늘은 테스트 코드는 도입하고 싶은데 프로젝트 일정에 안 좋은 영향을 줄거같은 걱정을 해소해 드릴 수 있는 근거를 공유해보고자 합니다. 개요 현업에서 개발하시는 분들(개발자 혹은 리더) 과 대화를 하다보면 간혹 다음과 같은 질문을 받습니다. 테스트코드를 작성하면 개발일정을 맞추기가 힘든데 어떻게 도입할 수 있을까요? 그 동안 저도 프로젝트 일정을 늦추는 요인은 된다고 생각하고 있었는데요. 근래에 그렇지 않다 라는 생각이 들어 그 생각을 공유합니다. 프로젝트 일정과 개발 일정 테스트 코드는 개발 일정은 지연 요소가 될 수 있더라도 프로젝트 일정은 단축 요소라고 생각합니다. 왜에 대해서는 아래에 계속해서 얘기해 보겠습니다. 왜 지연요소라고 인식하는가? 코드를 타이핑(코딩) 하는 ..
안녕하세요. yeTi입니다. 오늘은 OOP(Object-Oriented Programming) 라는 개념을 만든 Alan Kay 님의 ACM 프로그래밍관련 논문인 The Early History Of Smalltalk 를 읽고 후기를 공유해보고자 합니다. Introduction Smalltalk's design—and existence—is due to the insight that everything we can describe can be represented by the recursive composition of a single kind of behavioral building block that hides its combination of state and process inside it..
안녕하세요. yeTi입니다. 오늘은 테스트 주도 개발을 읽은 후기를 기록하려고 합니다. 저자에게 테스트란? 최근 이력서를 정리하다가 잊혀졌던 기억이 상기되는 경험이 있었습니다. 4년전에 K-MOOC에 대해 소개하는 글을 남긴적이 있습니다. 그 당시에 해당 플랫폼으로 다양한 강의를 청강했는데요. 소프트웨어 공학 : 왜, 무엇을, 어떻게?라는 강의는 들은 기억이 있는데 소프트웨어 테스팅 강의는 들은 기억이 없었습니다. 기억에 없는것을 보니 스스로 얻은 것은 없었구나. 하는 회의적인 기분도 들면서 한편으로는 어떻게 테스트 하는 것이 의미가 있는 활동인지에 대해 고민했었구나. 하는 생각이 들기도 했습니다. 아무튼 이후에 저비용 고품질의 서비스를 만들자. 라는 생각으로 JUnit을 활용하여 테스트라는 것을 만들어..
안녕하세요. yeTi입니다. 오늘은 1년간 MSA 적용기 에 이어서 MSA 를 하는 이유에 대한 생각을 공유해보고자 합니다. MSA의 시작 저는 2018년 AI플랫폼 이라는 것을 만들기 위한 연구소에 입사를 하게 됐고 이 때부터 제안서에 써져있는 MSA 라는 개념을 적용하기 위해 시작했습니다. MSA 는 어떻게 하는거지? 다짜고짜 MSA 를 하려니 뭐하나 명확한것이 없었습니다. 왜 MSA를 해야되는지부터 단위 서비스의 규모는 어느 정도 여야하는지, 나누는 기준은 무엇인지, 팀의 규모는 어느 정도여야 하는지, 우리 팀의 규모는 3명인데 개발은 어떻게 해야하는지, ... 스스로 정확히 정의를 하지 못하니 대외적으로 명확한 확신에 의한 설명이 불가능 했습니다. MSA 왜 해요? 개발활동의 목적은 저비용(돈, ..
안녕하세요. yeTi입니다. 오늘은 XP 를 읽으면서 느낀 익스트림 의 의미로 회의에 임하는 자세 를 개선한 후기를 공유하고자 합니다. 만족스럽지 못한 회의 이전엔 회의에 참석할 때 개별 자료를 찾아보기 위해서 노트북을 들고 참석했습니다. 간혹 회의에 관련된 자료를 사전에 공유받지 못한 경우 회의 주제를 파악 하다가 회의가 종료되는 경우가 있는데요. 이럴 때는 무의미한 시간을 허비했다는 생각에 기분이 좋지 못한 경우가 있습니다. 익스트림의 가치 문득 눈에 들어온 브런치의 제목이 있었습니다. 나만 잘하면 전체가 나아지는 XP 그리고 이어진 XP의 가치 내가 통제할 수 없는 것은 받아들이고 통제할 수 있는 것으로 익스트림 두 문장을 보고 문득 스스로 익스트림하게 행동하고 있나? 라는 생각이 들었습니다. 뒤이..
안녕하세요. yeTi입니다. 오늘은 XP 를 읽고 느낀점들을 공유해보려고 합니다. 계기 XP(eXtreme Programming) 를 처음 접한건 2009년 대학생 시절 소프트웨어 공학 강의를 들으며 잠결에 본 XP 라는 구문이었습니다. 이후 안영회 대표님의 브런치 의 XP 넘어서기 연재를 보며 개발과는 연관성이 없는 행동들이 개발을 잘 되게 해준다는 것을 느끼고 회사에 도서 신청을 하여 읽어보게 됐습니다. 아기 발걸음 XP에서 제시하는 작은 실천이 변화의 시작이라는 의미에 아기 발걸음 을 먼저 실행해본 후에 책을 읽게 됐는데요. 처음에 미심쩍었던 소통, 함께 앉기, 나부터 잘하기 와 같은 것들을 해보며, 원활하지 않았던 파트내 정보의 교류가 시간이 지날수록 원활해진다는 것을 체감했습니다. 개발 프로세스..