전체 글

안녕하세요. 사진과 철학에 관심이 많은 웹 프론트엔드 개발자 오원종입니다. 시간이 지나도 꾸준히 읽힐 수 있는 글을 쓰고 싶습니다. 재미있는 일만 하면서 살고 있는 사람입니다.
Ch 05. 팀 이끌기 구글은 리더 역할을 두 가지로 구분 관리자(manager) : 사람을 이끔 테크 리드(tech lead) : 기술 관련 책임을 짊 5.1 관리자와 테크 리드 5.1.1 엔지니어링 관리자 구글은 엔지니어링을 아는 사람만이 소프트웨어 관리자가 될 수 있도록 한다. → 소프트웨어 경험이 있는 관리자를 고용하거나, 기존 소프트웨어 엔지니어를 관리자로 훈련시킨다. 거시적인 측면에서 엔지니어링 관리자는 자신이 관리하는 팀의 구성원 모두(테크 리드도 포함) 성과(performance), 생산성(productivity), 행복(happiness)을 책임져야 한다. 동시에 팀에서 만드는 제품의 사업적 요구까지 충족시켜야 한다. 5.1.2 테크 리드 테크 리드는 제품의 기술적인 면, 즉 기술과 관련..
사내에서 디미터 법칙을 주제로 작은 세미나를 준비했었는데, 그 내용을 정리해 보았습니다. Table Of Contents 디미터 법칙(Law Of Demeter) 결합도 통제(Coupling Control) 정보 은닉(Information Hiding) 메시지와 인터페이스 참고 자료(Reference) 디미터 법칙 위키피디아에서는 디미터 법칙에 대해 다음과 같이 정의하고 있다. 💡 The Law of Demeter (LoD) or principle of least knowledge is a design guideline for developing software, particularly object-oriented programs. In its general form, the LoD is a specif..
· 끄적끄적
안녕하세요. 오웬입니다. 저는 지난 2주간(10.09~10.23) 부산으로 워케이션을 다녀왔어요. 저희 회사에 부산 오피스에서 근무를 할 수 있는 제도가 올해 새로 생겼는데, 예전부터 디지털 노마드로 살아보고 싶은 마음을 가지고 있었던 저였기에 주저하지 않고 바로 신청을 했고 다녀오게 되었습니다. 요즘에 주변을 보면 몇몇 회사들이 워케이션 제도를 도입해서 실행하고 있고, 또 도입을 고려중인 곳도 있는 것으로 보이는데, 이 글이 그러한 분들에게 조금이나마 도움이 되기를 바라는 마음에 블로그 포스팅을 해보려고 합니다. 워케이션을 떠나기 전 지금 회사를 약 2년 반 정도 다니고 있는데, 휴식 없이 계속해서 일을 하다 보니 조금 리프레시가 필요했습니다. 휴가를 길게 다녀오는 것은 여건상 쉽지가 않았고 그래서 그..
지난 10월 8일 롯데타워에서 열린 2022 FEConf에 다녀왔다. 정말 오랜만에 열린 오프라인 컨퍼런스 참석이었고, FEConf도 처음 참석해서 그런지 모든 부분이 신기하고 재밌었다. 발표도 깊은 주제로 알찬 내용이 많았었다. 프론트엔드 분야 한정 컨퍼런스인데 생각보다 사람들이 많이 몰려서 놀랐다. 티켓팅은 1분만에 마감이 되었던 것으로 기억을 한다. 컨퍼런스를 다녀오고 나서 관심있는 세션들에 대한 요약 내용을 적어보려고 한다. 모든 세션을 다 정리하지는 못했다. 이날 중반 이후부터 컨디션이 급격히 안 좋아졌는데, 앞부분은 집중해서 들었으나 뒷 부분은 거의 버티면서 겨우겨우 앉아 있었다. 감사하게도 주최측에서 풀버전 녹화 영상을 유튜브에 공유해 주었으니 관심 있으신 분들은 이 영상을 보는 편이 좋겠다..
4 properties to transform objects position scale rotation quaternion Object3D를 상속받는 모든 클래스들은 위의 4가지 속성을 가진다. 예컨데, 여기에는 PerspectiveCamera나 Mesh가 있다. 이러한 속성들은 행렬(matrix)으로 컴파일 된다. position objects position 속성은 다음과 같이 3차원에서 x,y,z 축을 의미 사용하는 단위 1은 단위로 인식하면 되고, 경우에 따라 다 다른 값을 가질 수 있다. (e.g. 1cm, 1m, 1km 등등) mesh.position.x = 0.7 mesh.position.y = -0.6 mesh.position.z = 1 mesh.position.x = 0.7 mesh.po..
Part I. 전제 Chapter 1. 소프트웨어 엔지니어링이란? 해당 챕터에서는 소프트웨어 엔지니어링과 프로그래밍의 차이에 대하여 다룬다. 소프트웨어 엔지니어는 시간의 흐름과 언젠가 변경될 가능성에 더 신경써야 한다. 소프트웨어 엔지니어링은 흐르는 시간 위에서 순간순간의 프로그래밍을 모두 합산한 것이다. (Software Engineering is programming integrated over time) 시간이 프로그램에 미칠 영향 알 수 있는 방법 → ‘이 코드의 예상 수명은?’ 소프트웨어 기대 생애 동안 요구되는 모든 가치 있는 변경에 대응할 수 있다면 그 프로젝트는 지속 가능하다. 라고 할 수 있다. 소프트웨어 엔지니어링이란 여러 버전의 프로그램을 여러 사람이 참여해 개발하는 것이다. 소프트웨..
0. 들어가며 P34 자바는 부분적으로 당시 널리 쓰였던 C 프로그래밍 언어를 본떠 만들어졌다. C에는 메모리 자동 관리가 없었고, 메모리 관리 오류는 당시 프로그래머에게 자주 두통을 일으키게 하는 오류였다. 자바는 언어 설계를 통해 이러한 종류의 오류(메모리 관리 관련 오류)를 없앴다. 이것이 자바가 초보자에게 좋은 언어가 된 이유 중 하나다. 하지만 좋은 프로그래머와 좋은 프로그램을 탄생시키려면 좋은 프로그래밍 언어 이상의 것이 필요하다. 그리고 자바로 인해, 디버깅하기 더 어려운 새로운 버그 종류가 생겨났음이 드러났다. 이런 버그 중에는 감춰진 메모리 관리 시스템으로 인해 생긴 형편없는 성능이 포함된다. P36 요즘 프로그래밍은 미디를 사용하는 것처럼 되고 있다. 더 이상 프로그램을 작성하기 위해 ..
3.5 조건 변수 어떤 조건을 만족하지 않는 동안에는 프로세스를 대기 상태로 두고 조건이 만족되면 대기 중인 프로세스를 실행하고 싶을 때가 있다. 예를 들면 교차로의 신호등을 떠올릴 수 있는데, 이와 같은 신호등을 동시성 프로그래밍 세계에서는 조건 변수라고 부르며, 조건 변수를 기반으로 프로세스의 대기를 수행한다. 다음 코드는 Pthreads를 이용한 조건 변수의 예다. Pthreads에서는 pthread_cond 계열 타입과 함수를 이용해 조건 변수를 구현한다. 이 코드에는 어떤 데이터를 생성하는 프로세스와 생성된 데이터를 소비하는 프로세스가 있으며, 데이터를 소비하는 프로세스는 데이터가 생성될 때까지 대기한다. #include #include #include #include pthread_mutex ..
DevOwen
오웬의 개발 이야기