월요일, 11월 30, 2020

[유튜브 방송] (즐겁게 배우는 SQL #5) 데이터를 필터링하자 - limit

[유튜브 방송] (즐겁게 배우는 SQL) 기획 소개에서 설명드린 즐겁게 배우는 SQL 5편을 공개해드리겠다. 5편은 WHERE에서 필터링 조건으로 LIMIT와 OFFSET을 사용해 질의 결과량을 제한하는 방법을 소개한다.

2020년 11월 30일자 [즐겁게 배우는 SQL #5] 데이터를 필터링하자 - limit 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 즐겁게 배우는 SQL에서 확인할 수 있다.

참고: 설명에 오류가 있어 바로 잡는다: LIMIT 1 OFFSET 1은 가장 높은/낮은 순위가 아니고 차 순위입니다. LIMIT 1 OFFSET 0이 가장 높은/낮은 순위가 됩니다.

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

  • 00:00 데이터를 필터링하자 - limit 소개
  • 01:33 가장 처음부터 적용
  • 02:16 OFFSET으로 특정 위치부터 적용
  • 04:49 LIMIT와 ORDER BY 적용
  • 07:08 가장 높은 값과 가장 낮은 값 얻기

원본 학습자료는 SQLite Limit를 참고하고, 방송에 사용한 실제 실습 자료는 다음을 참고한다:

  • 단계 1: 데이터 질의 방법 소개
    SELECT
    	column_list
    FROM
    	table
    LIMIT row_count;
    
  • 단계 2: 가장 처음부터 적용
    1. SQL> SELECT trackId, name FROM tracks LIMIT 10;
  • 단계 3: OFFSET으로 특정 위치부터 적용
    1. 주의: OFFSET은 0부터 시작(즉, 시작할 행 - 1로 지정)
    2. SQL> SELECT trackId, name FROM tracks LIMIT 10 OFFSET 10;
  • 단계 4: LIMIT와 ORDER BY 적용
    1. SQL> SELECT trackid, name, bytes FROM tracks ORDER BY bytes DESC LIMIT 10;
    2. SQL> SELECT trackid, name, milliseconds FROM tracks ORDER BY milliseconds ASC LIMIT 5;
  • 단계 5: 가장 높은 값과 가장 낮은 값 얻기
    1. SQL> SELECT trackid, name, milliseconds FROM tracks ORDER BY milliseconds DESC LIMIT 1 OFFSET 1;
    2. SQL> SELECT trackid, name, bytes FROM tracks ORDER BY bytes LIMIT 1 OFFSET 2;
EOB

[개발자 이야기] (11월 28일) 소프트웨어 개발이 어려운 일곱 가지 이유

2020년 11월 28일자 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

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

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

  • 00:00 금주 새로운 소식 개괄
  • 04:24 (신간) "구글 빅쿼리 완벽 가이드" 증정 이벤트
  • 09:02 아파치 오픈미팅즈
  • 10:11 postgREST - PostgreSQL을 RESTful API로 접근
  • 13:05 소프트웨어 개발이 어려운 일곱 가지 이유
  • 18:39 C가 어려운 이유
  • 21:38 ZeroSSL – Let’s Encrypt의 대안
  • 22:24 1인 SaaS를 위한 기술 스택
  • 24:02 벌써 자바 16이 나온다고?
  • 25:09 노드 다이어트
EOB

토요일, 11월 28, 2020

[끝없는 뽐뿌질] 갤럭시 워치 3 일주일 사용기

어쩌다보니 갤럭시 워치 3를 선물받게 되어 일주일 내내 충전할 때 빼고 차고 다니고 있다. 원래 몸에 뭔가를 장착(응?)하고 다니기 싫어해서 스마트 워치 구입은 전혀 생각지도 않았는데, 역시 물건은 직접 써봐야 가치를 알게 된다는 사실을 다시 한 번 깨닫게 되었다.

갤럭시 계열의 스마트폰이 아닌 아이폰 계열의 스마트폰을 사용하는 관계상 갤럭시 워치 3의 모든 기능을 100% 사용하지 못하고(예: 문자/메신저 답장 불가, 아이폰에서 워치로 음악 전송 불가, 혈중 산소포화도(된다고 하지만, 워치 펌워에 업그레이드를 위한 다운로드가 계속 거부됨), 혈압과 ECG 기능 사용 불가(흑흑...), (당연한 이야기지만) 애플 건강 앱과 연동 불가) 아이폰과 궁합이 안 맞는지 종종 블루투스 연결이 무한 루프에 빠지는 문제가 있긴 하지만(초기 증상으로 멀쩡히 잘 오던 알람이 오지 않다가 어느 순간 연결이 불통되는 경우도 몇 차례 목격했고, 이럴 때는 아이폰을 리부팅할 수는 없으니... 워치 리부팅으로 해소하면 해결되었다.) 몇 가지 핵심 기능만으로도 충분한 가치가 있다는 생각이다.

갤럭시 워치에서 가장 많이 사용하는 기능은 바로 건강 기능이다. iOS의 건강 앱과 연동되지 않아서 살짝 불편하긴 하지만, 삼성 Health 앱 완성도가 좋기 때문에 사용 과정에서 특별한 어려움을 느끼지는 못했다. 아무래도 나이가 들면서 건강에 대한 관심이 높아지기 때문에 여러 가지 정량적인 수치를 보면서 반성을 하고 있다.

  • 수면 시간: 기존에 아이폰의 애플 건강 앱을 사용할 때는 당연한 이야기지만 총 수면 시간만 알 수 있었는데, 일주일 내내 밤에 시계를 차고 자니까 여러 가지 사실을 알게 되었다. 깊은 수면, REM 수면, 뒤척임을 시간대별로 표시해주며 수면의 질이 점수로 나오니까 완전히 느낌이 달랐다. 어떤 조건에서 수면의 질이 불량하게 되는지 파악하는 과정에 좋은 기초 자료가 될 것 같다.
  • 하루 운동량: 이 부분은 원래 애플 건강 앱을 사용해 하루 몇 걸음 걸었는지 계속해서 점검을 하고 있었는데, 워치를 차고 있으니까 매 시간마다 일어나라, 열심히 운동(이라고 쓰고 걷기라고 읽는다) 잘하고 있다 등을 알람으로 알려주며, 현재까지 몇 시간 잤고, 몇 분동안 몇 걸음 걸었고 몇 칼로리 소비했다 이런 통계 정보가 일목 요연하게 정리되어 운동을 해야 하는 동기를 부여해준다.
  • 심박 수와 스트레스: 주기적으로 심박수를 측정해서 최대/최소/평균을 알려주며, 스트레스 측정도 가능하다. 스트레스 받은 상태에서 측정하면 바로 표가 나고 호흡하라는 제안이...
  • 아쉬운점: 어떻게든 혈압과 ECG 기능을 활성화(?)하는 방법을 연구해봐야겠다. 물론 혈압은 주기적으로 진짜 혈압계로 측정한 정보를 입력해 보정해야 하는 번거로움이 있긴 하지만...

워치 덕분에 숫자로 정리된 정량적인 통계치를 매일 반강제적으로 보게 되니까 건강에 대해 관심이 안 생길래야 안 생길 수 없게 되었다. 상시 측정이 가능하게 집 문앞에 체중계를 비치해놓고 돼지 파티를 즐긴 다음에 올라가서 눈금을 보면서 매번 죄의식을 느끼곤 했는데, 이제는 더 강력한 감시자가 생긴 셈이다(뉴뉴).

건강 기능 다음으로 많이 사용하는 기능이 빅스비인데... 아이폰의 시리와 비교해서 어느 정도 정해진 작업은 훨씬 더 잘 알아들어서 적절히 잘 대답한다(즉, 오버피팅을 엄청나게 많이 했다)는 느낌이다. 하지만 이렇게 하다보니 빅스비에 최적화된 패턴대로 말을 해야 하는 부작용이 있는데, 갤럭시 워치 앱의 빅스비 항목에 나와 있는 캡슐(기본적으로는 빅스비의 앱과 1:1로 대응하고 있으며, 마켓플레이스에 있는 녀석들은 다를지도...)별로 예제(응?)를 보면서 어느 정도 패턴을 암기한 다음에 응용을 해야 내 말을 잘 알아 듣는다. 알람과 타이머 맞추고, 세계 시간 묻고, 날씨 묻고, 지하철 역으로 지금 들어오는 출발 시각 확인하고, 설정으로 바로 가고, 하루 일정 확인하는 등의 작업은 거의 대부분 빅스비로 하고 있다. 물론... 때때로 빅스비가 서버 연결 장애로 대답을 못하는 경우가 생기기 때문에 어쩔 수 없이 수작업으로 작업을 해야 하는 경우가 있어서 이 점은 살짝 아쉽다.

원형 베젤을 돌려서 여러 가지 작업을 수행하기 때문에 애플 워치보다는 물리적인 조작성이 조금 더 좋아 보인다. 몇 가지 아이콘을 이해하지 못해 조금 어려움을 겪긴 했지만(예: 12시 방향 상단에 그려지는 시계 모양의 아이콘), 사용자 인터페이스는 조금만 써보면 이해가 갈 수 있게 비교적 직관적으로 다가왔다(아이폰용 삼성 Health 앱의 꼼꼼함의 예를 들자면... 자다가 깨서 힘들어 하다 다시 잠들면 잠든 구간이 두 부분으로 나뉘어져 따로 통계가 잡힌다) . 그리고 발표를 많이 하시는 분이라면, 파워포인트 제어 앱이 있어서 블루투스로 노트북과 연결한 다음에 발표 과정에서 유용하게 사용할 수 있다(앞으로 가기가 주 기능이지만 뒤로 가거나 시계 터치 스크린을 활용한 마우스 움직임도 가능하다!).

결론: 몇 가지 사소한 문제점이 있긴 하지만 최근 손에 넣은 전자기기 중에서 상당히 만족스러웠다(갤럭시 워치가 아니라 아이폰 워치였어도 비슷한 느낌이 들었을 것 같다). 거추장스러워서 손목 시계를 싫어하시는 분들께서도 한 번 시도해보시면 새로운 가능성을 발견할지도...

EOB

[B급 프로그래머] 11월 4주 소식(개발/관리도구, 고성능 서버/데이터베이스 부문)

(오늘의 짤방: 딱 ER diagram이나 class diagram. 한국인에겐 관계를 표현한 화살표 방향이 반대 아닌가 싶은 경우가 있는데 영어 문장으로 생각하면 딱딱 맞아떨어짐을 알 수 있다. via @ryudaewan)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
(보너스: ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 2020 정보처리 산업기사 1회차 문제인데 와.... 악랄하다 악랄해 ㅋㅋㅋㅋㅋㅋ via @hanalen_)
EOB

금요일, 11월 27, 2020

[유튜브 방송] (즐겁게 배우는 SQL #4) 데이터를 필터링하자 - where

[유튜브 방송] (즐겁게 배우는 SQL) 기획 소개에서 설명드린 즐겁게 배우는 SQL 4편을 공개해드리겠다. 4편은 WHERE에서 필터링 조건을 지정하는 방법을 소개한다. 비교 연산자와 논리 연산자를 설명하고, like 연산자와 IN 연산자도 살펴본다.

2020년 11월 27일자 [즐겁게 배우는 SQL #4] 데이터를 필터링하자 - where 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 즐겁게 배우는 SQL에서 확인할 수 있다.

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

  • 00:00 데이터를 필터링하자 - where 소개
  • 02:49 비교 연산자 설명
  • 03:18 논리 연산자 설명
  • 03:54 간단한 조건문
  • 06:22 like 연산자로 부문 문자열 일치
  • 08:54 IN 연산자로 정해진 값 일치

원본 학습자료는 SQLite Where를 참고하고, 방송에 사용한 실제 실습 자료는 다음을 참고한다:

  • 단계 1: 데이터 질의 방법 소개
    SELECT
    	column_list
    FROM
    	table
    WHERE
    	search_condition;
    
  • 단계 2: 비교 연산자 설명
    1. 왼쪽과 오른쪽 표현식을 비교하기 위한 연산자
  • 단계 3: 논리 연산자 설명
    1. 여러 표현식의 부울 값을 평가하기 위한 연산자
  • 단계 4: 간단한 조건문
    1. SQL> SELECT name, milliseconds, bytes, albumid FROM tracks WHERE albumid = 1;
    2. SQL> SELECT name, milliseconds, bytes, albumid FROM tracks WHERE albumid = 1 AND milliseconds > 250000;
  • 단계 5: like 연산자로 부문 문자열 일치
    1. SQL> SELECT name, albumid, composer FROM tracks WHERE composer LIKE '%Smith%' ORDER BY albumid;
    2. SQL> SELECT name, albumid, composer FROM tracks WHERE composer LIKE 'Smith%' ORDER BY albumid;
  • 단계 6: IN 연산자로 정해진 값 일치
    1. SQL> SELECT name, albumid, mediatypeid FROM tracks WHERE mediatypeid IN (2, 3);
    2. SQL> SELECT name, albumid, mediatypeid FROM tracks WHERE mediatypeid NOT IN (2, 3);
EOB

목요일, 11월 26, 2020

[유튜브 방송] (즐겁게 배우는 SQL #3) 데이터를 필터링하자 - Select Distinct

[유튜브 방송] (즐겁게 배우는 SQL) 기획 소개에서 설명드린 즐겁게 배우는 SQL 3편을 공개해드리겠다. 3편은 SELECT DISTINCT로 중복된 행을 하나만 보여주는 방법을 소개한다.

2020년 11월 26일자 [즐겁게 배우는 SQL #3] 데이터를 필터링하자 - Select Distinct 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 즐겁게 배우는 SQL에서 확인할 수 있다.

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

  • 00:00 데이터를 필터링하자 - Select Distinct 소개
  • 02:00 단일 컬럼에 대한 적용
  • 03:15 여러 컬럼에 대한 적용
  • 04:59 NULL이 있을 경우

원본 학습자료는 SQLite Select Distinct를 참고하고, 방송에 사용한 실제 실습 자료는 다음을 참고한다:

  • 단계 1: 데이터 질의 방법 소개
    SELECT DISTINCT select_list
    FROM table;
    
  • 단계 2: 단일 컬럼에 대한 적용
    1. SQL> SELECT DISTINCT city FROM customers ORDER BY city;
  • 단계 3: 여러 컬럼에 대한 적용
    1. SQL> SELECT DISTINCT city, country FROM customers ORDER BY country;
  • 단계 4: NULL이 있을 경우
    1. SQL> SELECT DISTINCT company FROM customers;
EOB

수요일, 11월 25, 2020

[유튜브 방송] <구글 빅쿼리 완벽 가이드> 도서 증정 이벤트

세상은 바뀌고 기술은 더 빨리 바뀐다. OLTP와 OLAP를 모두 아우르는 동시에 통합(Federated) 질의까지 지원하는 데이터웨어하우스를 표방하는 오라클 데이터베이스의 위상도 클라우드 시대가 도래하면서 과거와 같지 않게 되었다. 여러 퍼블릭 클라우드 회사는 기존 오픈소스 RDBMS를 관리형 서비스로 제공하는 동시에 빅데이터 시대에 대응하기 위해 엄청난 용량의 데이터를 분석하기 위한 서비스 역시 제공하기 시작했다. 퍼블릭 클라우드 회사가 제공하고 있는 데이터웨어하우스의 대표적인 서비스로 아마존의 레드시프트와 구글의 빅쿼리를 들 수 있다(보너스: The 2020 database showdown: BigQuery vs Redshift vs Snowflake를 읽어보시면 양쪽 서비스의 차이점을 이해할 수 있을 것이다). 오늘은 그 중에서도 구글의 빅쿼리를 상세히 파고드는 신간인 구글 빅쿼리 완벽 가이드 도서 증정 이벤트를 진행하겠다.

지금 한창 진행 중인 즐겁게 배우는 SQL을 구독과 시청으로 응원해주시는 애독자 여러분들의 뜨거운 성원에 보답하기 위해 유튜브 애독자 세 분을 추첨해 신간 증정 이벤트를 진행하겠다. 여느 때와 마찬가지로 이벤트 응모 방법은 정말 간단하다. 채널 박재호 유튜브 채널을 구독하고 나서 다음 영상에 응원의 댓글을 달면 끝!

슬라이드 셰어에 올린 방송 스크립트는 다음과 같다.

EOB

화요일, 11월 24, 2020

[유튜브 방송] (즐겁게 배우는 SQL #2) 행을 정렬하자

[유튜브 방송] (즐겁게 배우는 SQL) 기획 소개에서 설명드린 즐겁게 배우는 SQL 2편을 공개해드리겠다. 2편은 ORDER BY로 행을 오름차순과 내림차순으로 정렬하는 방법을 소개한다.

2020년 11월 24일자 [즐겁게 배우는 SQL #2] 행을 정렬하자 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 즐겁게 배우는 SQL에서 확인할 수 있다.

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

  • 00:00 행을 정렬하자 소개
  • 01:11 데이터 질의 방법 소개
  • 03:04 오름차순 정렬
  • 04:28 오름차순-내림차순 함께
  • 06:26 필드 위치로 정렬
  • 07:02 NULL 다루기

원본 학습자료는 SQLite Order By를 참고하고, 방송에 사용한 실제 실습 자료는 다음을 참고한다:

  • 단계 1: 데이터 질의 방법 소개
    SELECT
       select_list
    FROM
       table
    ORDER BY
        column_1 ASC,
        column_2 DESC;
    
  • 단계 2: 오름차순 정렬
    1. SQL> SELECT name, milliseconds, albumid FROM tracks ORDER BY albumid ASC;
  • 단계 3: 오름차순-내림차순 함께
    1. SQL> SELECT name, milliseconds, albumid FROM tracks ORDER BY albumid ASC, milliseconds DESC;
  • 단계 4: 필드 위치로 정렬
    1. 참고: ANSI에서는 비권장
    2. SQL> SELECT name, milliseconds, albumid FROM tracks ORDER BY 3,2;
  • 단계 5: NULL 다루기
    1. 주의: SQL에서는 NULL이 가장 작은 값
    2. 주의: NULL은 자신과 비교 불가
    3. 참고: SQLite 3.30.0에서는 NULLS FIRST와 NULLS LAST 옵션을 ORDER BY에 추가
    4. SQL> SELECT TrackId, Name, Composer FROM tracks ORDER BY Composer;
EOB

월요일, 11월 23, 2020

[유튜브 방송] (즐겁게 배우는 SQL #1) 정말 간단한 질의부터 시작하자

[유튜브 방송] (즐겁게 배우는 SQL) 기획 소개에서 설명드린 즐겁게 배우는 SQL 1편을 공개해드리겠다. 1편은 부담 없이 간단한 SELECT 질의 방법을 소개한다.

2020년 11월 23일자 [즐겁게 배우는 SQL #1] 정말 간단한 질의부터 시작하자 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 즐겁게 배우는 SQL에서 확인할 수 있다.

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

  • 00:00 즐겁게 배우는 SQL 소개
  • 02:12 샘플 데이터베이스 점검
  • 05:10 간단한 계산해보기
  • 06:27 데이터 질의 방법 소개
  • 09:36 간단한 SELECT 예제
  • 12:06 보충 설명: DUAL 테이블이란?

원본 학습자료는 SQLite Select를 참고하고, 방송에 사용한 실제 실습 자료는 다음을 참고한다:

  • 단계 1: 샘플 데이터베이스 점검
    1. SQLite Sample Database의 ER 다이어그램을 참고
  • 단계 2: 간단한 계산해보기
    1. SQL> select 1+1;
  • 단계 3: 데이터 질의 방법 소개
    SELECT DISTINCT column_list
    FROM table_list
      JOIN table ON join_condition
    WHERE row_filter
    ORDER BY column
    LIMIT count OFFSET offset
    GROUP BY column
    HAVING group_filter;
    
  • 단계 4: 간단한 SELECT 예제
    1. SQL> SELECT trackid, name, composer, unitprice FROM tracks;
    2. SQL> SELECT trackid, name, albumid, mediatypeid, genreid, composer, milliseconds, bytes, unitprice FROM tracks;
    3. SQL> SELECT * FROM tracks;
EOB

[개발자 이야기] (11월 21일) 2020년 오픈소스 데이터베이스 설문 조사 결과

2020년 11월 21일자 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

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

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

  • 00:00 금주 새로운 소식 개괄
  • 04:12 2020년 오픈 소스 데이터베이스 설문 조사(By Percona)
  • 10:42 DoorDash의 AWS 가용성에 대한 오해
  • 13:11 scorecard – 오픈소스 공개 전에 점검하는 도구
  • 15:03 프론트 엔드 개발자가 백엔드 개발자보다 덜 중요하게 여겨지는 이유는? (정말?)
  • 17:21 놀라운 애플 실리콘 M1 성능
  • 21:29 애플 실리콘 M1에서 텐서플로우와 도커 소식
  • 28:19 레드판다: 카프카를 대체할 수 있을까?
  • 29:59 Play 버튼이 없으면 IDE가 아니다?
EOB

토요일, 11월 21, 2020

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

(오늘의 짤방: Sunset on Mars! Captured by the Curiosity Rover itself. via @MAstronomers)
  1. 빅데이터/인공지능
  2. 읽을거리
보너스: 스마트 엔지니어링: 제조사를 위한 품질 예측 시뮬레이션 및 인공지능 모델 적용 사례 소개:: AWS Cloud Week
EOB

화요일, 11월 17, 2020

[유튜브 방송] (즐겁게 배우는 SQL) 기획 소개

채널 박재호를 본격 운영한지도 벌써 두 달이 지났다. 지난 번에 기획한 리눅스 업스킬 도전 프로젝트에 이어 이번에 새롭게 즐겁게 배우는 SQL을 준비하고 내주부터 본격 영상을 올려드릴 예정이다. SQLite Tutorial 자료를 참고해 초보 개발자를 위해 SQL 기초를 설명하는 즐겁게 배우는 SQL은 총 17회에 걸쳐 진행할 계획이니 많은 구독과 시청 부탁드린다. 유튜브 채널 구독은 [ https://www.youtube.com/c/박재호dev ]에서!

기획 소개를 유튜브에 올려놓았고:

발표 자료도 슬라이드 셰어에 공유했다:

전체 진행 순서는 다음과 같다. 필수 내용은 모두 다룰 계획이다.

  1. 정말 간단한 질의부터 시작하자
  2. 행을 정렬하자
  3. 데이터를 필터링하자
  4. 테이블을 조인하자
  5. 데이터를 그룹으로 묶어보자
  6. 집합 연산자를 배우자
  7. 서브 질의를 배우자
  8. CASE 표현식을 배우자
  9. CRUD 연산의 기본기를 배우자
  10. 트랜잭션이 뭐지?
  11. 테이블을 만들어보자
  12. 스키마에 제약을 걸자
  13. 뷰 만들어보기
  14. 검색 속력을 높이기 위해 색인을 걸자
  15. 트리거를 걸자
  16. 전문 검색을 해보자
  17. SQLite 도구를 사용해보자
EOB

월요일, 11월 16, 2020

[개발자 이야기] (11월 14일) 코딩을 배울 때 했던 실수들. 그리고 그 실수들을 피하는 법

2020년 11월 14일자 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

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

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

  • 04:00 금주 새로운 소식 개괄
  • 09:15 아난드텍의 A14칩셋 리뷰
  • 13:54 개발을 빠르고 즐겁게 만드는 VSCode 단축키 21개
  • 16:02 오픈소스 IT 직업 통계
  • 23:06 코딩을 배울 때 했던 실수들. 그리고 그 실수들을 피하는 법
  • 30:39 공개 repo에 개인 키를 업로드하면 벌어지는 일
  • 34:00 SPA의 피로감
  • 38:30 자동차/이동체 AI역량+아카데미 소개
  • 39:30 2020년의 sudo는 강력하다
EOB

일요일, 11월 15, 2020

[B급 프로그래머] 11월 2주 소식(개발/관리도구, 고성능 서버/데이터베이스 부문)

(오늘의 짤방: 프로그래머에게 첫번째라고 하는것은 최우선 사항이 아닙니다 via @alex_kid_dev)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
EOB

화요일, 11월 10, 2020

[유튜브 방송] <게임 엔진 블랙 북: 울펜슈타인 3D> 도서 증정 당첨자 발표

게임 엔진 블랙 북: 울펜슈타인 3D 도서 증정 이벤트 당첨자를 발표하겠다. 원래 두 분만 모시려고 하다가 많은 분들께서 응모해주셨기에 세 분께 책을 보내드리기로 했다.

당첨자 여러분들께 축하 말씀 드린다. 이메일(jrogue 엣뜨 gmail.com)으로 책 받으실 주소, 성함, 연락처(전화번호)를 보내주시면 감사하겠다. 참여하신 모든 분들께 다시 한 번 감사 말씀드린다.

  • Driver Han
  • 라인하르트
  • hyunjun77
EOB

월요일, 11월 09, 2020

[개발자 이야기] (11월 7일) 어느 고졸 개발자의 10년의 회고록

2020년 11월 7일자 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

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

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

  • 0:00 금주 새로운 소식 개괄
  • 6:14 게임 엔진 블랙북: 울펜슈타인 3D 증정 이벤트
  • 10:58 어느 고졸 개발자의 10년의 회고록
  • 13:23 비주얼스튜디오 코드 시대의 도래
  • 16:43 클론 코딩 이제 그만!
  • 20:19 자바스크립트 메모리 관리 설명
  • 23:49 웹 기반 윈도우 XP 데스크탑(리액트 사용)
  • 26:03 NetMarketShare, 더 이상 브라우저 점유율 보고는 없다!
  • 29:39 2020년에 미국에서 가장 빠르게 성장하는 기술 직업은?
EOB

토요일, 11월 07, 2020

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

(오늘의 짤방: // Time via @Ashot_)
  1. 빅데이터/인공지능
  2. 읽을거리
보너스: How Zoox Uses Simulation to Test and Validate its Self-Driving System
EOB

목요일, 11월 05, 2020

[유튜브 방송] <게임 엔진 블랙 북: 울펜슈타인 3D> 도서 증정 이벤트

오늘 화상 회의가 있어서 집에 있는데, 택배 도착 문자가 왔다. 현관문을 열어 고개를 내밀어보니 택배 상자가 눈에 띄었다. 출판사에서 보내준 게임 엔진 블랙 북 한 상자가 도착했다! 검정색 표지에 금박으로 처리된 제목이 고급스럽게 느껴졌다. 엊그제 이 책 저자인 파비앙 상그라르도 책 조판 정말 잘 되었다고 축하 메시지를 보내왔다. 트위터와 페이스북에 이 책을 재미있게 읽고있다는 글이 제법 올라왔다. 애독자들이 이렇게 즐거워하는 모습을 보면 번역 과정의 피곤함이 눈녹듯 사라진다.

지난 번에 소개드린 게임 엔진 블랙 북: 울펜슈타인 3D 번역서 출간을 기념해서 유튜브 애독자 두 분을 추첨해 도서 증정 이벤트를 진행하겠다. 이벤트 응모 방법은 정말 간단하다. 채널 박재호 유튜브 채널을 구독하고 나서 다음 영상에 응원의 댓글을 달면 끝!

슬라이드 셰어에 올린 방송 스크립트는 다음과 같다.

앞으로도 유튜브와 블로그에 멋진 개발 관련 정보를 올려드릴 계획이다. 애독자 여러분들의 많은 성원 부탁드리겠다.

EOB

수요일, 11월 04, 2020

[일상다반사] 2020년 11월 Yes24 월간 개발자에 소개!

매달 IT 전문서를 집필하거나 번역한 개발자를 소개하는 Yes24의 월간 개발자 11월호에 이름을 올렸기에 간단하게 유튜브에 소개 영상을 제작해봤다.

클린 코드는 이미 추천을 받아서 소개드리지 못했고, 트위터에서 화제의 신간으로 떠오르고 있는 게임 엔진 블랙 북: 울펜슈타인 3D은 출간 전이라 미처 소개를 하지 못한 점이 아쉽기는 하지만, 여기 소개한 대표 서적 4권(해커, 광기의 랩소디, 피플웨어, 초난감 기업의 조건, 소프트웨어 크리에이티비티 2.0)은 모두 무척 아끼는 책이므로 독자 여러분들께도 추천드린다.

블로그와 유튜브에 계속해서 좋은 정보를 전해드릴 예정으로 있으므로 많은 성원 부탁드린다.

EOB

화요일, 11월 03, 2020

[유튜브 방송] 리눅스 업스킬 도전 프로젝트 총정리

Q&A와 팁을 포함해 총 25회에 걸친 리눅스 업스킬 도전 프로젝트가 마무리되었다. 많은 분들께서 시청해주셨고 구독해주셨기에 '채널 박재호' 운영 과정에서 많은 보람을 느꼈고, 애청자 여러분들을 위해 다음 주제를 신중하게 선별하는 중이다. 시작이 있으면 끝도 있는 법이라, 오늘은 리눅스 업스킬 도전 프로젝트를 되돌아보는 의미에서 전체 목록을 정리해보았다.

  1. 서버에 접속해보자!: AWS 가입과 EC2 인스턴스 생성 방법을 설명한다. Putty로 접근하는 과정에서 키 관리 방법도 소개한다.
  2. 디렉토리 이동과 파일 목록 보기: pwd와 cd 명령, ls와 mkdir 명령, 매뉴얼 페이지 보는 방법을 설명한다.
  3. 파일 접근 허가와 sudo 명령 그리고 시간대: 파일 접근 허가를 간략하게 설명하고 sudo로 루트 셸을 얻는 방법을 설명한다. nano 편집기로 컴퓨터 이름을 변경하고 timedatectl로 사용 가능한 시간대와 현재 시간대를 출력하는 방법을 소개한다.
  4. 새로운 애플리케이션 설치하기: 우분투에서 패키지 관리자를 사용해 미드나잇커맨더(mc)를 설치하는 방법과 mc의 간단한 사용법을 설명한다.
  5. 탭/화살표 사용법과 숨겨진 파일: 탭을 사용한 자동 완성 기능과 화살표키를 사용한 히스토리 탐색 방법을 설명한다. 또한 셸에서 history 명령과 ! 사용법을 설명한다. ls -al 명령으로 숨겨진 파일을 찾아본다.
  6. vim 익숙해지기: vim으로 편집을 하기 위한 가장 기초적인 사용법을 설명한다.
  7. 웹 서버인 아파치 설치: 우분투에서 패키지 관리자를 사용해 아파치를 설치하고, systemctl 명령으로 관리하는 방법을 설명한다. 아파치의 설정 파일을 살펴보고 curl을 사용해 index.html 파일을 가져온다. 마지막으로 AWS에서 보안 그룹을 조정해 80번 포트를 외부로 열고 웹 브라우저에서 접근한 다음에 access.log에 찍히는지 확인한다.
  8. 문자열 탐색을 위한 grep: cat, less, head, tail 명령어 사용법과 grep 명령어 기초 사용법을 설명한다. cut 명령으로 특정 열만 잘라내는 방법을 소개한다.
  9. 서비스 포트 관리: netstat과 nmap으로 현재 사용 중인 포트를 확인하는 방법을 설명한다. nc를 사용해 초간단 웹 서버를 만들어본다.
  10. 특정 시각에 반복적으로 작업하기: crontab과 list-timers를 사용해 배치 작업을 반복적으로 실행하는 방법을 설명한다.
  11. 특정 조건으로 파일 찾기: locate, find, which로 특정 조건에 맞는 파일을 찾고, zcat과 zless로 압축된 파일 내용을 확인하는 방법을 설명한다. 찾은 파일을 대상으로 특정 명령을 수행하는 고급 find 명령 기법을 소개한다.
  12. sftp로 복사하기: Winscp를 사용해 SFTP 프로토콜로 원격 호스트로 파일을 올리고 원격 호스트에서 파일을 내려받는 방법을 설명한다.
  13. 파일 접근 허가 기초와 사용자 추가: chmod로 접근허가를 변경하는 방법과 adduser로 사용자를 추가하는 방법을 설명한다.
  14. sudo 권한 주기: su 명령으로 사용자를 전환하는 방법과 usermod로 특정 사용자 그룹(예: sudo)을 추가하는 방법을 설명한다.
  15. 우분투 패키지 저장소 추가하기: apt-cache로 패키지 캐시를 확인하는 방법과 add-apt-repository로 PPA(Personal Package Archive) 저장소를 추가하는 방법을 설명한다. 실제로 PHP PPA를 추가한 다음에 PHP 7.3을 설치해본다.
  16. tar와 친구들: tar(tape archive) 명령을 사용하 아카이브를 만들고 풀고 압축하는 방법을 설명한다. 그리고 파일을 이동하기 위해 tar 명령을 사용하는 방법을 소개한다.
  17. 소스 코드로 프로그램 컴파일하고 설치하기: nmap 패키지를 우분투 패키지 관리자 대신 직접 내려받아 컴파일하고 설치하는 방법을 설명한다.
  18. 로그 파일 회전시키기: cron에서 logrotate하는 부분을 찾아 설정 파일을 분석한다.
  19. 아이노드와 심볼릭 링크: 아이노드가 무엇인지 알아보고 하드 링크와 심볼릭 링크를 거는 방법을 설명한다. alternatives 패키지를 사용해 여러 버전을 관리하는 방법을 소개한다.
  20. 셸 스크립트: 간단한 배시 셸 스크립트를 작성해본다. 인수를 받는 방법을 소개한다.
  21. 우분투에서 한국어 로케일을 사용하려면 어떻게 해야 하나요?: 독자의 첫번째 질문인 로케일 설정 방법을 설명한다.
  22. (도커 컨테이너의 기반이 되는) chroot 소개: 독자의 두번째 질문인 chroot에 대한 내용을 설명하고 실제로 busybox를 컴파일해서 루트 파일 시스템을 구성한 다음에 chroot 명령으로 격리된 형태의 셸을 띄어본다.
  23. busybox에서 심볼릭 링크를 걸어서 실행할 기능을 알아내는 방법: 독자의 세번째 질문인 심볼릭 링크를 사용해 실행할 기능을 알아내는 방법을 설명한다.
  24. EC2 인스턴스에서 계정 추가 후 공개 키 등록 방법: EC2 인스턴스에서 사용자 계정을 추가한 다음에 새로 개인 키를 만들고 puttygen을 사용해 공개키를 알아낸 다음에 이를 등록하는 방법을 설명한다.
  25. notepad++ 편집기로 EC2 원격 호스트의 파일 편집하기: notepad++ 편집기에 SFTP를 지원하는 플러그인을 설치한 다음에 원격 EC2 호스트의 파일을 편집하는 방법을 설명한다.

계속해서 블로그와 유튜브에 많은 성원을 부탁드리겠다.

EOB

월요일, 11월 02, 2020

[개발자 이야기] (10월 31일) 클린 아키텍처로 가는 신박한 방법

2020년 10월 31일자 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 재미있는 개발 이야기(w/ 허광남-박재호)에서 확인할 수 있다.

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

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

  • 0:00 금주 새로운 소식 개괄
  • 5:52 게임 엔진 블랙 북(울펜슈타인 3D) 소개
  • 8:25 고용과 관련된 네 가지 미신
  • 13:20 한 줄로 빌드 타임 99% 줄이기
  • 15:18 내 인생을 바꾼 일곱 가지 git 트릭
  • 18:59 Pyston v2: 20% 빠른 파이썬
  • 21:10 클린 아키텍처로 가는 신박한 방법
  • 24:57 Async Cookie Store API
  • 27:56 깃 2.29에서 SHA-256을 실험적으로 지원
EOB