추천 게시물

[독서광] 클린 코드 이제는 파이썬이다

이번 주는 클린 코드, 이제는 파이썬이다 한 권으로 읽는 파이썬 개발자 성장 프로젝트 를 소개하겠다. 방송 스크립트는 전체 공개되어 있으며, 슬라이드셰어에서 보거나 다운로드 받을 수도 있다. (독서광) 클린코드 이제는 파이썬이...

토요일, 4월 30, 2022

[B급 프로그래머] 4월 4주 소식(개발/클라우드/고성능 서버/데이터베이스 관련 소식 정리)

(오늘의 짤방: what a coffee shop via @Ashot_)

개발 관련 소식

  1. 팁과 유틸리티
  2. 프로그래밍
  3. DevOps
  4. 설계
  5. 하드웨어
  6. 경력 관리와 개발문화
  7. 블록체인과 메타버스

클라우드/고성능 서버/데이터베이스 관련 소식

  1. 보안
  2. 클라우드
  3. 데이터베이스

보너스: A visual guide on how to choose the right Database. via @alexxubyte

EOB

월요일, 4월 25, 2022

[일상다반사] 유데미에서 '개발자영어' 강의 진행 소식

여러분들께서 유튜브의 개발자 영어 시리즈를 애청해주셔서 이번에 유데미에 개발자영어 확장판(총 6시간 52분 분량)을 올렸다. 섹션은 다섯 개로 나뉘어져 있으며 다음과 같다:

  1. 들어가기: 전체 도입부로 개발자에게 영어가 중요한 이유와 학습 로드맵을 제공
  2. 효율적인 영어 독해 방안: 독해 역량과 어휘 암기를 위한 팁을 제시하고, 기술 뉴스/튜토리얼/매뉴얼/기술 블로그/기술 사양서를 읽는 방법을 실제 예로 설명
  3. 코드 문서화: 프로그래밍 작명법, 영어 주석 다는 법, 커밋 메시지 작성법, 오류 메시지 작성법을 설명
  4. 효과적인 정보 습득 방안: 정보 수집 패턴 만들기, 검색 엔진과 SNS 활용법, 실제 검색 사례를 소개
  5. 졿은 질문과 대답: 좋은 질문과 대답의 특성, 공동체 활용 방법, 스택 오버플로우 질문/대답 사례를 소개

유튜브에 유데미 개발자영어 트레일러도 올려놓았으므로, 참고하시면 좋겠다.

행사 소식 한 가지! 유데미에서 상시 할인 행사를 하긴 하지만, 강의 시작 기념으로 애독자와 애청자 여러분을 위해 2022년 4월 29일까지 11,000원 쿠폰을 제공하므로 많은 성원 부탁드리겠다.

행사 소식 한 가지! 유데미에서 상시 할인 행사가 끝났고, 기존 11,000원 쿠폰 할인 기간도 만료되었기에, 애독자와 애청자 여러분의 성원에 보답하기 위해 2022년 6월 31일까지 15,000원 쿠폰을 제공하므로 많은 성원 부탁드리겠다: 개발자 영어 15,000원 쿠폰

EOB

토요일, 4월 23, 2022

[B급 프로그래머] 내가 지금껏 봤던 최고의 엔지니어링 면접은?

최근에 코테(코딩 테스트)가 많은 회사에서 선택이 아닌 필수가 되면서 피로도도 높아지고 난이도고 올라가고 머리도 아프고 무용론까지 제기되는 상황이다. 코딩 테스트 자체는 기초적인 실력을 평가하는 과정에서 나쁘지는 않다고 생각하지만 문제와 답이 정해져있고 풀이 방법도 어느 정도 정형화되어있기에 변별력을 유지하기 위해 어쩔 수 없이 까다로워질 수 밖에 없는 상황이다(이러다 DP(Dynamic Programming, 동적 계획법)가 1번 문제로 등장할지도 모르겠다는 생각을... ㅠㅠ). 솔직히 DP가 코테 문제로 나온다고 해서 현업에서 바로 DP를 적용할 기회가 얼마나 될지는 정말 잘 모르겠다. 컴퓨터 성능이 좋으니 그냥 단순 무식하게 순차적으로 계산하거나 아니면 병렬로 돌려버리는 편이 오히려 더 빠를 수도 있으니 말이다.

그래서 개인적인 생각으로는 코테만으로 모든 것을 평가하는 대신 조금 더 실전에 가까운 문제를 출제하면 어떨까 하는 생각이 든다. 아마 처음으로 입사해서 작성한 프로그램은 다들 기억에 생생할 것이다. 나의 경우에는 스크립트 언어를 해석하는 가상 머신을 특정 프로그램에서 분리한 다음에 다른 프로그램에 사용할 수 있게 모듈화하고 여기에 SQL 관련 새로운 외부 명령을 추가하는 일이었다. 우여곡절 끝에(진행되는 이야기를 풀면 무척 재미있지만, 라떼가 될까봐 여기서 중략) 완성했는데, 이렇게 대다수 현업 업무들이 기존에 있던 뭔가를 추려내고 수정하고 확장하는 행위와 연관이 있으므로 인터뷰 문제도 이런 식이면 현실과 무척 유사할 것이다. 물론 너무 특정 분야에 밀접하거나 현업 문제를 바로 들고오면 신입 사원들이 불리해지는 문제점이 있기에 이를 어떻게 조율할지가 관건이다.

그런데 최근에 The best engineering interview question I’ve ever gotten, Part 1라는 글을 읽게 되었는데, 면접 문제가 바로 오픈소스 캐시 소프트웨어인 memcahced에 특정 명령어를 하나 추가하는 것이다. 정확한 문제는 다음 설명을 보자:

Via its incr and decr commands, memcached provides a built-in way to atomically add to a number. But it doesn’t provide other arithmetic operations; in particular, there is no “atomic multiply by ” operation. Your programming challenge: Add a mult command to memcached.

간단하게 요약하자면, 위 면접 문제는 3시간 동안 memcached에 원자적인 mult 명령을 추가하는 것이다! 그냥 맨 땅에 해딩하는 것이 아니라 memcached에서 기존에 원자적인 증감(incr과 decr)이 있기 때문에 이를 토대로 확장하면 된다. 즉, 현업에서 하는 일과 상당히 유사해진다.

이어지는 글인 The best engineering interview question I’ve ever gotten, Part 2를 보면 어떻게 문제를 풀어나가야 하는지 기술적으로 차근차근 설명한다(길지는 않으므로 한 번 읽어보면 재미있을 것이다). 또한 면접자들의 성향을 분석한 결과를 다음과 같이 세 가지로 나눈다.

  • 유형 1: 더하기가 있으니 반복하면 곱하기가 되겠네요! 이미 incr이 있으니 이걸 여러 번 부르는 루틴을 만들어서... 그리고는 토끼굴로 빠져서 결국 문제를 풀지 못한다
  • 유형 2: 더하기가 있으니 기존 incr을 복사해서 붙여넣고 곱하기가 동작하게 바꾸면 되겠네요! 어떻게든 문제를 푼다.
  • 최고의 후보자: 단순히 동작하는 데 만족하지 않고 포매팅을 맞추고 단위 테스트를 추가하고 설계 결정을 다시 한번 살펴보는 등 제출한 내용을 다듬는 데 시간을 투자한다

이렇게 면접자들의 유형을 나눌 수 있기 때문에 이런 유형의 인터뷰가 좋기도 하지만, 마지막 결론 부분에서 이런 인터뷰가 좋은 이유를 추가로 기술한다.

"저는 이런 프로그래밍 도전을 좋아합니다. 왜냐하면 현업에서 겪은 실제 프로그래밍의 축소판이기 때문입니다. 대규모 코드베이스를 유지 관리할 때 완전히 이해하지 못하는 코드 경로, 불필요하다고 느끼는 관용구, 그리고 기반을 구축하기 어렵게 느껴질 수 있는 대량의 코드가 항상 존재하기 마련입니다."

여러분들도 현업에서 사용 중인 오픈소스 코드에서 이렇게 수정하거나 확장하는 문제를 만들어내어 풀 수 있겠는가? 한 번 도전해보기 바란다. 그리고 잘 되면 한 번 면접에 적용해보면 좋겠다.

EOB

수요일, 4월 20, 2022

[독서광] 머신러닝·딥러닝 문제해결 전략

이번 주는 머신러닝·딥러닝 문제해결 전략을 소개하겠다.

방송 스크립트는 전체 공개되어 있으며, 슬라이드셰어에서 보거나 다운로드 받을 수도 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 00:00 도입
  • 00:44 한 페이지 요약
  • 02:26 이 책의 구성
  • 06:28 무엇이 이 책을 흥미롭게 만드는가?
  • 11:54 책 vs 책
  • 13:40 대상 독자
  • 14:31 결론과 마무리
EOB

토요일, 4월 16, 2022

[B급 프로그래머] 4월 2주 소식(개발/클라우드/고성능 서버/데이터베이스 관련 소식 정리)

(오늘의 짤방: average api consumer vs average web etiquette ignorer via @gf_256)

개발 관련 소식

  1. 팁과 유틸리티
  2. 프로그래밍
  3. DevOps
  4. 설계
  5. 하드웨어
  6. 경력 관리와 개발문화
  7. 블록체인과 메타버스

클라우드/고성능 서버/데이터베이스 관련 소식

  1. 보안
  2. 클라우드
  3. 데이터베이스

보너스: Why is Kafka fast? via @alexxubyte

EOB

토요일, 4월 09, 2022

[B급 프로그래머] 4월 소식(빅데이터/인공지능, 읽을거리 부문)

(오늘의 짤방: Cone of Learning. Let’s do the real thing! via @yyijoo)
  1. 빅데이터/인공지능
  2. 읽을거리

보너스: 🥰 via @lempicka_in_

EOB

수요일, 4월 06, 2022

[OCI 탐험 일지] 9. 인스턴스 구성

오늘은 오라클 클라우드를 다루는 OCI(Oracle Cloud Infrastructure) 탐험일지 기획 연재 아홉 번째 시간으로, 인스턴스 구성 방법을 소개하겠다.

방송 스크립트는 전체 공개되어 있으며, 슬라이드셰어에서 보거나 다운로드 받을 수도 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 00:00 도입
  • 01:16 인스턴스 구성 소개
  • 02:53 인스턴스 구성 주의 사항
  • 06:32 사용자 정의 이미지 생성
  • 09:13 인스턴스 구성 생성
EOB

토요일, 4월 02, 2022

[B급 프로그래머] 3월 5주 소식(개발/클라우드/고성능 서버/데이터베이스 관련 소식 정리)

(오늘의 짤방: HTTP 1.0 -> HTTP 1.1 -> HTTP 2.0 -> HTTP 3.0 (QUIC). via @alexxubyte)

개발 관련 소식

  1. 팁과 유틸리티
  2. 프로그래밍
  3. DevOps
  4. 설계
  5. 하드웨어
  6. 경력 관리와 개발문화
  7. 블록체인

클라우드/고성능 서버/데이터베이스 관련 소식

  1. 보안
  2. 클라우드
  3. 데이터베이스

보너스: K-어린이로 살아가기 빡세다 via @Mori_FEdev