목록IT/소프트웨어 공학 (15)
잡동사니
안녕하세요. yeTi입니다. 오늘은 조직에서 격는 소통의 어려움을 광장이라는 소통 공간을 활용해서 해서 해소하는 방법을 공유해보고자 합니다. 우리는 광장을 가지고 있나요? 광장은 많은 사회적 정치적 의미가 있지만 이번 글에서는 맥락과 피드백의 관점에서 언급하고자 합니다. 광장에서 맥락과 피드백이란 무엇일까요? 이렇게 상상해보면 좋을꺼 같습니다. 우리가 광장에 앉아있을 때 누군가가 공연을 합니다. 다른 이들은 공연을 볼 수 있는 기회가 생겼고 공연이 마음에 들었으면 화답합니다. 그리고 경우에 따라서 공연에 자연스럽게 참여하기도 하고 누군가는 이어가기도 합니다. 이렇게 어떤 공연자에 의해 만들어진 공연이라는 맥락에서 다수의 사람들이 피드백을 주고 받으며 공연을 풍부하게 만들어 나갑니다. 반면 영화관에서 하는..
안녕하세요. yeTi입니다. 오늘은 Eventual Consistency 에 대해 다뤄보고자 합니다. 유영모님의 가이드를 따라가다가 거대한 자료의 수집채로 해당글을 씁니다. 정의 Eventual consistency에 따르면 결과적 일관성은 분산 환경에서 고가용성을 보장하기 위한 일관성 모델이라고 설명하고 있습니다. Eventual consistency is a consistency model used in distributed computing to achieve high availability that informally guarantees that, if no new updates are made to a given data item, eventually all accesses to that ite..
안녕하세요. yeTi입니다. 오늘은 개발의 결과가 예상한 결과와 같을까? 에 대한 생각을 공유해보고자 합니다. 전에 재밌는 현상을 먼저 소개하고자 합니다. 아래 인용구는 안영회 대표님의 브런치의 현장과 의사소통을 돕는 협업도구 두레이 에서 발췌했습니다. 한국에서 일할 때와 달리 중국에서는 서로 대화가 어려우니 내 말을 이해했는지 거듭해서 확인하고 기록도 하며, 화면이나 코드로 재차 확인하니 도리어 결과가 빨리 나왔던 것이다. 결과는 다르다 현업에서 지속적으로 코드기반 대화하기 를 수행하고 있고 최근에 사내 사이드 프로젝트를 진행해보면서 우리가 협의한 개발 목표와 실제 개발된 결과는 각자가 예상한 결과와 다를 수 있다는 것을 느꼈습니다. 코드리뷰차 상대방의 코드를 보다보면 협의를 진행하면서 내가 예측한 로..
안녕하세요. yeTi입니다. 근래에 가지고 있는 개인적인 관심사 중 하나는 소통이 개발에 미치는 영향 입니다. 좋은 설계하기 (feat. 의사소통) 이번에는 흔히 어려워하는 기획문서의 수준에 대한 얘기를 해보려고 합니다. 기획의 목적 기획의 목적 은 무엇일까요? 서비스 오너십을 가진 대상과 함께 서비스의 방향성을 정의하고 다른 구성원에게 정의한 서비스를 원만히 만들어낼 수 있도록 생각을 공유를 해주는 것 이라고 생각합니다. 그렇다면 기획서의 목적에 부합하는 문서인 기획서 는 일률적인 수준을 가져야 할까요? 저는 전달해야하는 구성원의 규모와 의사소통 수준에 따라서 달라져야한다고 생각합니다. 기획의 수준 - 2명 & 같은 공간 (Case 1) 만일 구성원이 다음과 같다고 가정해 보겠습니다. 기획자 1명 (오..
안녕하세요. yeTi입니다. 오늘은 페어 프로그래밍이나 코드 리뷰가 가지는 특성을 다른 시각으로 바라보고 시도해본 경험을 공유해보고자 합니다. 대화의 중요성 개발 활동이란 만들고자 하는 제품을 만들어내는 활동이고, 이는 대부분 하나의 서비스를 출시하기 위해서 다양한 분야의 사람들과 협의, 협업, 소통 이라는 활동을 진행합니다. 이 때, 중요한것은 서로의 생각을 일치시키고 공감하며 문제 해결을 위해 합심하는 것입니다. 하지만 현실에는 장벽이 존재합니다. 협업을 진행함에 있어서 언어라는 도구를 사용해서 소통을 하지만 생각을 온전히 일치시키기 힘들고, 물리적으로 떨어져있는 시람과도 소통해야합니다. 또한 사람의 기억에는 한계가 존재하기 때문에 기록을 통하여 이전에 합의했던 내용을 남겨둘 필요성도 있습니다. 이를..
안녕하세요. yeTi입니다. 오늘은 검수하는 문화와 이로인해 변화한 설계의 목적에 대해 얘기해보고자 합니다. 계기 안영회 대표님의 폭포수 방식 설계는 기술 부채를 남긴다 라는 글을 몇번을 읽었는지 모르겠습니다. 사회 초년생부터 궁금증을 가지고 있었던, 왜 그런 개발 환경을 가지게 됐는지에 대한 궁금증을 해소할 수 있는 기회였다고 생각하고 있었던거 같습니다. 그러는 와중에 궁금증에 대한 답을 할 수 있는 표현을 발견했습니다. 소프트웨어 개발이 아니라 검수를 위한 결과물로 쓰이기에 그들의 표기법은 매력적일 수 있습니다. 검수 단계에서 계약서에 합의한 금액 지불이 적절한가 하는 문제에만 초점을 맞춥니다. 검수 검수 라는 행위는 발주처 입장에서 목표한 제품을 수행 업체가 제공하였는지를 확인하는 절차이고, 만일 ..
안녕하세요. yeTi 입니다. 오늘은 현업에서 사용하고 있는 협업툴을 잘 활용하여 업무를 유기적으로 할 수 있는 방법을 공유하고자 합니다. 기본 약속 업무중에 하는 대부분의 활동은 이슈안에 존재한다. 업무적인 내용은 누구나 볼 수 있어야 하고 참여할 수 있어야 한다. 슬랙 (Slack) 슬랙을 사용해야하는 이유는 주제에 유연한 참여와 가지치기식 논의, 임시 저장, 리마인더 입니다. 기업용 메신저나 카톡을 생각하고 슬랙을 접하면 평범하기 그지없는 그저그런 메신저일 뿐입니다. 하지만 시각을 바꿔서 보면 다른 강점이 존재합니다. 의사결정을 빠르게 진행하고 유연하게 공유할 수 있습니다. 논의 주제에 필요한 누구든 즉시 해당 주제에 참여시킬 수 있고 참고인을 언제든 참조시킬 수 있어 의사결정을 빠르고 넓게 할 수..
안녕하세요. yeTi입니다. 오늘은 백기선님의 디자인 패턴 강의를 본 후기를 기록하려고 합니다. 수강 계기 디자인 패턴은 주기적으로 공부를 시도하는 영역인대도 불구하고 끝을 보기가 쉽지 않은거 같습니다. 같은 이유로 시도할 때가 되서 본게 아닌가 싶습니다. 싱글톤 패턴 싱글톤 패턴은 프로그램내에 유일한 인스턴스를 가지게하고 싶을 때 사용할 수 있는 패턴입니다. 구현 방법으로 간단하게 syncronozed 키워드를 사용하는 방법과 클래스 로드시점에 인스턴스를 생성하는 eager initialized 방법 인스턴스를 생성하는 시점에 syncronozed 를 활용하는 double checked locking 방법 static 키워드의 단일 인스턴스의 특성을 활용하는 static inner class 방법이 있..
안녕하세요. yeTi입니다. 오늘은 Jenkins를 활용하여 CI(Continous Integration) 환경을 구성해보겠습니다. 설치 환경 Jenkins : 2.164.2 Git : Bonobo 6.3.0 Gradle : 4.5 Slack : https://slack.com/intl/en-kr/ 개략적인 흐름은 다음과 같습니다. 의 흐름은 다음과 같습니다. 개발자는 소스를 Git에 push 한다. Git은 hook을 하여 Jenkins에 빌드 시작을 알린다. Jenkins는 소스를 빌드하고 테스트한 후 성공시 WAR를 생성한다. Jenkins는 Slack으로 빌드 결과, 테스트 결과, Commit log를 알린다. 1. Git 연결 Repositories에 Git 서버 정보를 설정하고 빌드할 bran..
안녕하세요. yeTi입니다.오늘은 Jenkins에서 배포서버를 선택하여 배포하는 설정에 대해 알아보겠습니다. 이전 글2018/11/26 - [IT/소프트웨어 공학] - [Jenkins] SVN 연결하기 설치 환경- OS : Window 7 64bit- 설치 버전- Jenkins 2.121.2 1. Jenkins에서 프로젝트를 선택하고 구성으로 들어갑니다.2. 빌드 환경를 선택 후 정보를 추가합니다. 관련 글2018/08/03 - [IT/소프트웨어 공학] - [Jenkins] 배포서버를 선택하여 빌드하기