MD에서 개발을 담당하고 있는 분들은 어떤 책을 읽었을까요?
스타트업에서 일하는 개발자들은 이번 달 어떤 책을 읽었을까요?
마켓디자이너스는 멤버들이 독서하는 것을 장려하고 있습니다. 발전시키고자 하는 영역에 대해 적극적으로 도서비를 지원하고 있는데요. 마켓디자이너스의 개발을 담당하는 분들에게 이번 달 어떤 책을 읽으셨는지 알려달라고 했습니다. 요청을 드렸더니 "요즘 누가 책으로 개발을 공부하나요?"라는 답변과 함께 책을 안 읽는다고 하셔서 그럼 그!!! 개발을 공부하는 다른 방법을 알려주세요!라고 했고 이런 멋진 정보들을 가득 담아 주셨습니다.
개발하는데 책 말고도 여러 곳들을 참고합니다. 물론 언어 자체에 관련된 이론은 중요하나 정말 대형 프로젝트가 아니면 이론보다는 실무가 중요한 것 같아요. 그렇다고 해서 이론적인 것은 전혀 안 배우고 바로 실무를 해본다는 뜻은 아닙니다.
`https://velopert.com` 개인적으로 이 사이트를 추천해요. 개발자가 운영하시는 블로그인데 소개하시는 언어도 다양하고 알기 쉽게 설명해주셔서 개발하는데 많이 도움이 되더라고요. 그 외에 버그가 생겼을 경우에는 `https://stackoverflow.com` 또는 `https://github.com` 에 웬만한 천재 개발자들이 해결방법을 다 올려놔요. stackoverflow 사이트가 좋다고 생각되는 이유가 개발자를 위한 커뮤니티여서 코드를 첨부하기도 쉽고 다른 사람들의 코드를 보면서 배울 수가 있거든요. 정말 실무를 배우고 싶으시다면 책보다는 온라인 커뮤니티를 이용하는 것이 좋아 보여요.
그래도 책을 선택하자면 아래 두 권의 책입니다. 컴퓨터& 운영 체제를 이해하는데 많은 도움을 준 책입니다. 운영체제와 컴퓨터 아키텍처는 컴퓨터 전공생이라면 꼭 넘겨야 하는 거대한 벽과 같은 과목인데요 컴퓨터가 어떻게 0101을 처리하고 소수 연산이 복잡하고 표현 범위가 적은 이유, 재귀 함수보다 반복문이 빠른 이유, 캐쉬가 개발할 때는 귀찮지만 실사용할 때에 좋은 이유를 배울 수 있어요. 그 외에 업무를 하다 보면 특히 서버 개발자라면 리눅스의 중요성을 느끼게 되는데 운영체제 책에서 리눅스에 대해 자세히 배울 수 있어요.
- 추천자 소개 : 4개월 차 인턴 존입니다. 대학교 1학년부터 코딩하기 시작하여 각종 프로그래밍 언어를 접했고(c, cpp, js, python, java, 등) 대학 동기들과 함께 동아리 홈페이지 제작, 게임 제작, 알고리즘 스터디 등으로 개발/프로그래밍 능력을 다져왔습니다. 제가 맡고 있는 업무는 고객용/파트너용 웹/앱 개발입니다. 저번 달까지는 위매치 웹 개발을 집중적으로 하다가 최근에는 파트너 앱을 개발하고 있습니다. 위매치다이사를 개발할 때에는 classic asp와 javascript 를 이용하여 사용자와 상호작용하는 모바일 홈페이지를 개발하였습니다. 대부분 프런트엔드 개발이었으며(백 개발도 일부 있었음) 사용자가 입력하는 값에 따라 정보 표시/숨김 등을 하면서 최종 신청까지 오류 없이 빠르고 편하게 작동할 수 있도록 하는 것이었습니다. 위매치다이사를 개발하고 나서는 파트너 앱을 중심적으로 개발하고 있습니다. 간단한 문구 수정이나 기능을 추가했었고 지금은 파트너 앱에 푸시 알림을 보내는 것이 과제입니다.
- 추천하는 이유 : 개발에 관심이 있는 사람, 컴퓨터 전공생, 웹 개발자는 사이트를 통해 배우는 것을 추천드리고 전공서적은 컴퓨터 전공생, 서버 개발자, 컴퓨터에 관심이 많은 사람은 책을 통해 배우는 것을 추천드립니다. 컴퓨터, 언어에 관한 전체적인 이해와 코드 작성하는 방법, 새로운 문법, 주의사항, 해야 하지 말 것, 등 많은 중요한 정보를 얻었습니다.
코드 위장술, 혼잡화, 색다른 언어를 이용한 트릭, 발상의 전환, 잡다한 기법 등 유지 보수하기 어렵게 작성하는 방법들에 대해서 위트 있게 잘 쓰인 책입니다. 만화책보다 재밌어요. 실소가 터져 나오는 걸 참을 수 없을 겁니다.ㅎㅎ 물론 진짜 이 책의 내용대로 코드를 작성했다간 현피 뜨는 일이 발생할 수도 있겠지만..
하지만 책이 얘기하고 싶은 진짜 얘기를 위와 같이 하지 말자는 내용이에요. 작가는 평소 사람들에게 유지 보수하기 좋게 코드를 작성하는 법을 얘기하면 별로 관심을 갖지도 않더니, 일을 그르치는 행동들을 얘기해야 관심을 갖더랍니다. 청개구리 본성을 이용한 거예요. 이 책의 반대로만 한다면 유지보수가 용이한 코드 작성!! 어렵지 않아요~
- 추천자 소개 : 웹 표준 및 접근성 가이드에 맞게 마크업을 진행하는 웹퍼블리셔로 근무 중입니다. (슬슬 6년 차)
- 추천하는 이유 : 입문 자부터 현업 개발자까지 혹시 아직 보지 못하셨다면 기분전환(?) 삼아 한 번쯤 접해보면 좋을 책이라고 생각합니다.(심지어 무료!!)
저희 업무는 대부분 협업을 통해 결과물을 산출합니다. 그리고, 현재 진행하는 서비스를 평생 혼자 유지보수할 수도 없는 일이죠. 레이아웃이 깨지지 않고, 작동만 잘된다고 해서 전부인 그런 코드는 대부분 작성할 수 있을 거예요. 일을 하다 보면 어느 순간 본인의 코드를 전혀 의심하지 않는 순간에 접어들게 되는 것 같아요. 지속적으로 본인의 코드를 의심하는 것이 중요하다고 생각해요.
그래야 본인 코드의 퀄리티도 유지할 수 있고, 그 코드를 접하는 누구나 쉽게 이해하고 유지보수도 용이할 테니까요. 타성에 젖어있을 때 한 번씩 읽어주면 좋은 책입니다.
백엔드 개발자라면 다들 들어보셨을 스프링 프레임워크의 교과서같이 통하는 책입니다. 스프링의 다양한 기술들을 소개하고 그 원리, 사용해야 하는 이유, 예시를 제시하는 방대한 내용의 책입니다.
- 추천자 소개 : MD의 개발팀 인턴으로 일하고 있는 James입니다. 군 경력까지 포함해서 웹 개발 3년 차입니다. 필요에 의한 다양한 소프트웨어 개발업무를 진행하지만 주로 하는 건 어드민 페이지 개발과 파트너(업체)용 프로덕션 백엔드 개발, 안드로이드/iOS 앱 개발입니다. 요즘은 TF 팀에 속해서 파트너용 프로덕션 개발에 대부분의 업무시간을 투자하고 있습니다.
- 추천하는 이유 : 어느 정도 백엔드 개발에 대한 지식을 가지신 분이 스프링을 처음 접하실 때 읽으시면 좋다고 생각합니다. 혹은 기존에 스프링을 쓰시던 분들도 정독하거나 궁금한 부분들을 찾아보면서 새로운 지식들을 알고 익혀나가기 좋습니다. 책을 읽을 당시 업무에 사용하던 스프링, 넓게는 웹 개발에 대한 깊이 있는 이해를 얻을 수 있었습니다. 지금도 그런 이해들을 바탕으로 다양한 기법들을 업무에 적용시키기 위해 노력 중입니다.
코드를 어떻게 잘 짜는가에 대해서라기 보다는 프로젝트를 진행할 때 문제에 직면했을 때 어떻게 행동해야 하는가에 대한 얘기가 담겨있습니다. 어떻게 다른 팀과 소통하면 좋은지 어떻게 말을 해야 최악의 상황에 직면하지 않게 되는지 나의 행동을 어떻게 해야 할지 예시를 통해 알려주는 책입니다.
책 소개 그대로 단순 기술자에서 소프트웨어 장인이 되기 위해 필요한 점을 담고 있습니다. 로버트 마틴 님이 지은 책 중 클린 코더, 클린 코드가 있는데 클린 코더는 좀 더 빨리 읽히고 개발자로서 태도에 대해 적혀 있다면 클린 코드는 코드에 대해서 어떻게 해야 할지 깨끗한 코드란 무엇인지,, 본인의 습관에 대해서 반성하는 시간을 가지게 됩니다.
- 추천자 소개 : 웹 개발자입니다. 튜터링 앱에서 필요한 기능을 만듭니다. 결제, 이벤트 등을 담당하고 있습니다. 튜터링팀이 첫 회사고 이제 입사 2년 차가 되었습니다.
- 추천하는 이유 : 프로젝트 관리와 다른 팀과의 소통이 어려운 분 초보 개발자들에게 강추합니다. 내게 필요한지 아닌지 확인하려면 두 가지를 하시면 됩니다.
첫 번째 , 일단 근처 서점에 갑니다.
두 번째, 첫 장을 딱 펴서 추천의 글을 읽고 헉이라는 말이 떠올랐다면 일단 읽으세요.
아무 생각 없이 말하기보다 뇌에서 필터링하고 말하려고 노력하고 있습니다.
언젠가 장인이 되는 날까지 파이팅 ㅠㅠ
저는 책보다는 미디엄에 있는 좋은 글이 있어서 이 글을 추천합니다. AWS Lamda라는 (요즘 유행하는 Serverless를 하기 위한) Amazon의 서비스를 시작하기 전 주의해야 할 점을 유쾌하게 적은 글입니다.
- 추천자 소개 : 개발파트장을 맡고 있습니다. 주로 개발이 시작할 때 필요한 사항 세팅과 업무 분배 그리고 개발 중 부족한 부분을 메꿔주는 역할을 하고 있습니다. 경력은 15년 정도 되고 어쩌다 보니 풀스택입니다. (그림판에서 도트로 이미지 제작 가능)
- 추천하는 이유 : Serverless 시스템을 처음 접하는 사람이나 Lamda 서비스를 시작하기 전 뭐가 필요한지 알고 싶은 사람에게 추천합니다. 특히 Lamda 서비스에 막연한 환상을 가지고 있는 분께 현실을 보게 해주는 좋은 글입니다.
서비스 모니터링이 필요하던 참에 외부에서 체크할 필요가 있어 Lamda 서비스 적용을 고민하던 중에 본 글을 읽고 장단점을 확실히 알 수 있어서 모니터링 기능을 빠르고 정확히 구축할 수 있었습니다.
AI 과거부터 현재 혹은 미래에 대한 흐름과 AI가 우리 일상에서 어디에 있는지와 향후 어떻게 활용/발전할 수 있는지와 그에 따른 우리가 무엇을 준비해야 하는지에 대한 전반적인 이야기를 다룬 책입니다. AI 기술적인 내용뿐만 아니라 윤리 이야기, 우리에겐 이세돌 9단과 바둑대결을 해서 이슈가 됐던 "알파고"에 대한 이야기들도 있습니다.
- 추천자 소개 : 튜터링 앱에서 백앤드 개발자 앱/백 서비스 관련된 API 개발, DB설계 작업 등등을 하고 있습니다. 요즘은 WebRTC관련 작업도 같이 하고 있네요 ^^;;
- 추천하는 이유 : AI가 어디로 가고 있는지, 알아야 할 것들이 무엇인지 궁금한 사람. AI를 다른 사람들은 어디다 사용하는지 궁금한 사람에게 추천합니다. 너도 나도 AI/딥러닝을 이야기하고 있는 요즘 호기심에 적용해보려는 생각보다는 현 직무에 적용 가능한 부분, 긍정적인 효과를 나타낼 수 있는 현실적인 적용 가능한 방법에 대해 심도 있는 고민을 할 수 있는 좋은 계기가 됐습니다. 그래서 AI/딥러닝에서 기본이 되는 데이터에 좀 더 집중하게 됐고, 데이터 축적 방향성, 데이터 구조도 다시 검토하고 보안하게 되었습니다.
소프트웨어 방법론 중 객체 지향적 개발이 있습니다. 이 책은 객체 지향의 원론적인 질문과 함께 객체를 바라보는 시점과 더 나아가 잘못된 오해로 비롯된 개발 방식에 대한 문제점들을 지적하고 있습니다.
- 추천자 소개 : 저는 튜터링 앱에서 프런트 엔트 개발자로 근무하고 있습니다. 프런트 엔드란, 기획자와 디자이너가 의도한 UX와 UI를 실제 보이는 화면으로 안전하게 전달해주는 역할이라 생각하시면 돼요. 개발 업무를 생각하면 프로그램만 만드는 일이라 생각하시겠지만, 실제 업무 환경에서는 다양한 팀들과의 협업이 필요합니다. 특히 프런트 엔드는 앞에서 얘기한 것과 같이 개발과 함께 디자이너, 기획자뿐만 아니라 백엔드 개발자, QA팀 간의 중계 역할 수행하기 때문에 그만큼 각 팀의 기본적인 업무 지식이 필수적이라 생각해요.
- 추천하는 이유 : 이 책은 특히 유지 보수에 안정적인 아키텍처를 연구하고 고민하시는 분이에게 추천합니다! 대학교에서도 기본적으로 프로그래밍을 배울 때 객체 지향적 방법에 대해 많이 배우고 현업에서도 많이 쓰고 있지만, 이 책을 읽고 나서는 내가 잘못된 방식으로 객체 지향을 접근하고 있다는 사실을 알게 되었어요. 특히 객체 지향적 개발이라는 어려운 접근법을 ‘이상한 나라의 엘리스’라는 동화를 넣어 재미있고 쉽게 이해할 수 있게 적어 시간 가는 줄 모르고 봤었던 기억이 나요. 이 책을 바탕으로 더 나아가 예전에 이해되지 않았던 다양한 방법론들을 다시 보게 되는 계기가 된 책이라 개발을 하시는 분이라면 적극 추천합니다!
이 책은 자바스크립트로 각종 디자인 패턴들을 설명하며 테스트를 진행하는데 패턴보다는 테스트에 포커스를 맞춰서 진행하는 책입니다.
- 추천자 소개 : 저는 튜터링 어플의 프런트엔드를 개발하는 개발을 하고 있는 1년 차 개발자입니다.
- 추천하는 이유 : 이 책은 자바스크립트를 자바처럼 쓰고 싶어 하는 분들한테 추천드립니다. 이 책을 읽고 조금 더 유지보수하기 편한 코딩에 대해서 생각하는 계기를 주었습니다.
책 이름 그대로 깨끗한 코드를 짜는 원칙과 패턴 등에 대해서 설명하며 이를 구체적인 사례를 통해 이해할 수 있도록 도와줍니다.
- 추천자 소개 : 3년 차 개발자이며 튜터링 프로트엔드 개발을 맡고 있습니다. 현재는 튜터 관리, 학생관리 등의 기능이 있는 Admin 시스템 쪽 일을 진행하고 있습니다.
- 추천하는 이유 : 주석이 없어도 쉽게 읽히고, 재사용성이 높으며, 유지보수가 쉬운 클린 코드를 작성하고 싶은 개발자들에게 추천합니다! 클래스로 나누는 기준을 어떻게 잡아야 할까? 코드를 설명하는 주석이 필요한 걸까? 다른 개발자가 이해하기 쉬운 변수, 함수 네이밍은 어떻게 해야 할까? 등등의 개발을 하면서 생겼던 질문들에 대한 답변을 얻을 수 있었습니다.
효율적인 개발에 필요한 접근방법과 요소 들을 설명하고 있습니다.
- 추천자 소개 : 저는 튜터링팀에서 프런트 앤드 개발자(front-end developer) 포지션의 업무를 진행
하고 있습니다. 웹 애플리케이션의 UI/UX 프로세스를 설계하고 이를 통해 여러 가지 데이터 처리를 합니다. 즉, 기획, 디자인, 퍼블리싱, 데이터 처리 작업 등의 최종 결과물을 웹으로 구현하는 업무를 하고 있습니다. 이 분야는 다양하고 넓은 개발 경험과 시야를 가져야 업무 효율성이 좋아진다고 생각하며 저는 이러한 개발경험이 7년 정도 됩니다
- 추천하는 이유 : 기획자, 디자이너, 개발자분들 모두에게 추천하는 책입니다. 개발뿐만 아니라 다양한 업무를 진행함에 있어 초기에 큰 그림을 그리는 것의 중요성을 다시 한번 생각하게 되었습니다.
일반적으로 QA 자격증(istqb)을 위한 자격증 책으로 널리 알려져 있으나, 전반적인 qa 업무에 대해 마음가짐, 필요한 업무역량 등이 쉽지는 않으나 자세히 설명되어 있다.
- 추천자 소개 : 신규 개발이 발생할 때에, 해당 개발로 인해 발생하는 side effect, 기획과 실제 개발 내용에 다른 점이 없는지에 대한 테스트 케이스 작성을 합니다. 실제 고객이 느끼기에 불편한, 이상한 점이 없는지 사전에 찾아내며 고객에게서 보고된 원인모를 오류, 증상이 어떤 이유로 발생했는지에 대한 조사와 보고를 합니다. 또한 기획 등 타 부서의 실수도 없었는지 꼼꼼히 확인하여 품질을 보증하는 직군에서 근무합니다. 현재 1년 18일입니다!
- 추천하는 이유 : qa직무에 발을 들이려고 하는 취준생, 회사 내에 QA팀이 없어 직접 테스트해야 하는 개발자, 기획자에게 추천합니다. 테스트를 진행할 때에 가져야 하는 책임감, 동시에 뿌듯함을 배웠으며, 기존 비교적 편하게 작성하던 테스트 케이스를 보다 정확하고 보기 쉽게 작성할 수 있게 되었습니다.
이 책을 이전 회사의 같은 팀 선배에게 받아서 처음 접하였고, 그 뒤로도 가끔씩 꺼내보는 책입니다. 프로그래머라면 한번쯤은 읽어보면 좋을만한 책입니다. 코딩 가이드라인이나 코딩을 좀 더 생산성있고, 효율적으로 하는 방법, 뿐만아니라. 프로그래머로써 마음가짐을 다잡는데 좋은 책이라 생각합니다.
- 추천자 소개 : 다이사 관리자, 파트너, 클라이언트 쪽 백엔드 개발을 2년째 맡고 있습니다. MD에 오기전에는 보안장비 회사에서 개발을 3년정도 하였습니다.(지금 하는일과 전혀 다른 분야…)
- 추천하는 이유 : 단순히 당장 동작만 하는 코딩보다는, 좀 더 유연한 코딩을 할수 있도록 생각하는 법을 많이 배웠습니다. 실제로 유지보수나 기능 확장등의 이슈에서도 좀 더 생산성있고 효율적으로 업무를 진행할 수 있게 도움을 많이 받았습니다.
https://brunch.co.kr/magazine/mdstory 마켓디자이너스 매거진 구독해주시면 업데이트 내용을 더욱 빨리 만나실 수 있습니다.