Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2021년 1월 30일 개발자 이야기

713 views

Published on

유튜브에서 방송한 자료입니다. 오늘자 방송: https://www.youtube.com/watch?v=G3SEJvPPpKs&list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg&index=1

Published in: Software
  • Be the first to comment

  • Be the first to like this

2021년 1월 30일 개발자 이야기

  1. 1. CTO 둘이 풀어드리는 주간 뉴스 2021.1.30방송 정말로 당신에게 다른 동영상 강의가 필요할까?
  2. 2. 참고자료 • <컴퓨터vs책> 블로그 http://jhrogue.blogspot.com/ • 오늘자방송 https://www.youtube.com/watch?v=G3SEJvPPpKs&list=PLdntWJk2tJPKvRB0mSqC5ty KUv7HFtcqg&index=1 • 유튜브채널OKdevTV >재미있는개발이야기리스트 https://www.youtube.com/playlist?list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg • 슬라이드셰어 https://www.slideshare.net/jrogue/presentations • 채널박재호(초급개발자를위한...)https://www.youtube.com/c/박재호dev OKdevTV
  3. 3. 오늘의 짤방(1) OKdevTV 이걸 몰랐네 via @dalinaum
  4. 4. 오늘의 짤방(2) OKdevTV I got a perfect picture for it! via @ringoapp
  5. 5. ① timeflake - 어느 정도 정렬된 UUID ② 정말로 당신에게 다른 동영상 강의가 필요할까? ③ 마이크로서비스를 써야할 때, 쓰지 말아야 할 때 ④ 소프트웨어를 구매하기 위해 사용 가능한 네 가지 통화 ⑤ AWS 람다는 왜 그렇게 빠르게 구동될까? ⑥ 30살 비개발자가 3개월만에 풀스택 개발을 하기까지.. ⑦ 맥에서 윈도우로 가져온 파일명이 자모 분리된 경우 해법 오늘의 소개할 내용 OKdevTV
  6. 6. OKdevTV (개발) timeflake - 어느 정도 정렬된 UUID 1 • https://github.com/anthonynsimon/timeflake • 특징 • 트위터의 Snowflake, 인스타그램 ID, Firebase의 PushID와 비슷한 구현 • 빠름 : K-sortable로 어느 정도 정렬(timestamp에 따라) • 충분히 유일성 보장 : 1ms당 5천 만개를 만들어도 충돌 확률이 10억분의 1 • 효율적 : 48비트는 밀리세컨드 단위 timestamp 인코딩 + 80비트는 암호학적으로 유일한 랜덤 숫자 • 유연함 : 128비트 부호없는 정수, URL에 안전한 base62 값으로 UUID 호환 • 왜? • 예측 가능하지 않는 URL에서 UUID가 필요한 경우 • 시간에 따라 대략 정렬되지만 임의의 ID가 필요한 경우(MySQL/PostgreSQL) • 중앙 집중화된 ID 관리 시스템을 유지할 필요가 없음 • 표준 128비트 UUID와 호환(예: 파이썬의 많은 라이브러리들이 uuid.UUID를 기반으로 동작) • 참고 • 기존에 KSUID가 존재하지만(K-sortable), 160비트라서 표준 128비트 UUID와 비호환 • 주의 • 개인 정보 보호(시각 특정, 사용자 특정)
  7. 7. • https://eugeneyan.com/writing/you-dont-need-another-mooc/ • 대부분 MOOC는 페라토 법칙을 따른다 • 비슷한 MOOC에서 얻는 수익 감소 효과 • 새로운 MOOC은 미루거나 자기 불구화 현상(self-handicap)을 낳는 이유가 된다 • 이 MOOC 특화 과정을 끝낼 때까지 만들 수 없어 • 내 이력서가 채택되지 않는 이유는 스파크와 파이토치에 대한 증명서가 없기 때문이야 • 강의 비디오 시청은 학습이 아니라 수동적인 소비 • 아이들은 자전거 타는 법을 비디오로 배우지 않는다 • 행복한 길에서 벗어나기 • 튜토리얼은 실습을 제공하지만… 코드를 복사해서 붙여넣으면 그냥 동작한다. • 디버깅, 준비 작업, 시행 착오를 통한 문제 해결에 시간을 소비할 경우에는 학생들은 인내심을 잃어 이탈한다 • 실제 데이터는 지저분하고 구조화가 되어 있지 않지만, 대다수 MOOC과 유튜브 수업은 깨끗하고 구조화되어 있다 • 우리는 실제 프로젝트, 지저분한 데이터, CUDA 오류 등을 수행함으로써 행복한 길에서 벗어난다 • 프로젝트를 통해 문제 정의, 알고리즘 적용(올바른 또는 잘못된), 오류 메시지를 구글에서 찾고, 작동할 때까지 반복한다 OKdevTV (오늘의 논쟁) 정말로 당신에게 다른 동영상 강의가 필요할까? 2
  8. 8. • https://eugeneyan.com/writing/you-dont-need-another-mooc/ • 적시 학습 • 딱 시작하기에 충분한 지식만 있으면 된다. 나머지는 길을 따라가면서 선택한다. • 프로젝트 진행을 위해 필요한 무엇이든 배운다 • 배운 것을 적용하지 않으면 쇠퇴할 것이다 • YAGNI(You aren't gonna need it): 필요할 때까지 기능을 추가할 필요가 없다 • 하지만 반발이 심하다 • “저는 시간이 매우 제한적이므로 개인 프로젝트를 할 여유가 없습니다. MOOC는 독립적이며 일주일에 2-4 시간만 필요합 니다.” → 지식과 이해가 어느 수준을 넘어서면 실습이 필요함 • “과거에 개인 프로젝트를 해보았습니다. 하지만 많은 오류가 발생하고 구글을 많이 검색해야만 했습니다. MOOC를 더 많이 듣기 전까지는 아직 준비가 되지 않은 것 같습니다.” → 바로 그래서 개인 프로젝트를 해야 함 • “ MOOC를 통해 이력서에 도움이 되는 자격증을 받게 됩니다.” → 자격증이 아니라 실무 능력이 더 중요 • “기술 기술과 지식에 대한 테스트를 받을 것이라는 이야기를 들었습니다. 따라서 더 많은 기술적인 MOOC를 수행해야합니 다.” → MOOC는 특히 지식을 테스트하거나 (읽기 : 기억) 트릭을 알아야하는 질문(예 : 리트코드 유형 질문)에 유용 • "어떤 개인 프로젝트를 해야 합니까?“ → 관심이 있는 프로젝트, 주말 동안 12주 안에 완료할 수 있는 범위가 적합 • "하지만 흥미로운 개인 프로젝트가 생각 나지 않아요!“ → 흥미로운 개인적인 프로젝트를 떠올리지 못하면, 정말 경력을 위 한 준비가 되어 있을까? OKdevTV (오늘의 논쟁) 정말로 당신에게 다른 동영상 강의가 필요할까? 2
  9. 9. • https://containerjournal.com/topics/container-ecosystems/when-to-use-and-not-to-use- microservices/ • 사용 여부 결정 • 마이크로서비스가 무엇이며 개발 작업에 어떤 영향을 미치는지 제대로 이해하고 있습니까? • 마이크로서비스를 채택 할만큼 충분히 비즈니스가 성숙했습니까? • 애플리케이션 인프라는 얼마나 강력합니까? • 애자일 또는 DevOps 연습을 시도하고 테스트했습니까? • 제품이 비즈니스 모델의 중심에 있습니까? • 확장에 대한 목표와 비전은 무엇입니까? 마이크로서비스 아키텍처는 확장성을 고려하여 설계되었으며 제품/서비스와 시장 을 모두 확장하려는 튼튼한 계획이 있는 경우에만 이상적입니다. • 비즈니스 모델이 테스트되고 입증되었습니까? • 마이크로서비스를 써야할 때 • 모놀리식 애플리케이션에서 확장성, 민첩성, 관리 용이성, 배포 속도를 개선하기를 원하는 경우 • 비즈니스 요구 사항을 따라 잡기 위해 현대적인 프로그래밍 언어 또는 기술 스택으로 레거시 애플리케이션을 재작성해야 하 는 경우 • 다양한 채널에서 재사용해야하는 독립형 비즈니스 애플리케이션 또는 모듈 - 로그인 서비스, 검색 옵션, 인증 기능 등이 좋 은 예 • 신속한 제공, 혁신 등을 요구하는 매우 민첩한 애플리케이션(제품 또는 서비스)을 구축하는 경우 OKdevTV (개발) 마이크로서비스를 써야할 때, 쓰지 말아야 할 때 3
  10. 10. • https://containerjournal.com/topics/container-ecosystems/when-to-use-and-not-to-use- microservices/ • 마이크로서비스를 쓰지 말아야할 때 • 마이크로 서비스는 복잡한 문제에 대한 해법이므로, 비즈니스에 복잡한 문제가 없는 경우 마이크로서비스의 복잡성을 처리 할 시스템이 없다는 점을 이해해야 한다. • 마이크로서비스를 사용하면 관련 작업을 처리할 수 없는 팀 규모에 미치지 못할 경우 정 반대의 결과를 얻는다. 이로 인해 배포가 지연될 뿐이다. • 굳이 모든 애플리케이션을 마이크로서비스로 세분화할 필요는 없다. • 마이크로서비스는 공짜 점심이 아니다! • 참고 • <마이크로서비스 도입, 이렇게 한다> 도서 증정 이벤트 • https://jhrogue.blogspot.com/2021/01/blog-post_28.html OKdevTV (개발) 마이크로서비스를 써야할 때, 쓰지 말아야 할 때 3
  11. 11. OKdevTV (개발) 소프트웨어를 구매하기 위해 사용 가능한 네 가지 통화 4 • https://techbeacon.com/enterprise-it/software-ultimate-currency-why-containers-serverless- should-be-your-go • 물건을 사기 위한 통화 • 신용카드, 현찰, 수표, 상품권, 지역 화폐 등등 • 소프트웨어의 구성 요소를 구매하기 위해 사용 가능한 네 가지 통화 • 기술 프로젝트를 위한 소프트웨어가 필요한 경우 서버리스를 찾아라 • 서버리스가 없으면 컨테이너를 찾아라 • 컨테이너가 없으면 오픈소스 라이브러리를 찾아라 • 라이브러리가 없으면 직접 코드를 작성하라 • 통화별 특징 • 서버리스: 가장 사용하기 쉬움. 서비스 카탈로그에서 소비되는 외부 API와 유사하고 렌탈과 비슷한 특성. 서버 락인에 주의 • 컨테이너: 서버리스를 위한 모든 코드를 제공하거나 미리 패키지된 오픈소스 라이브러리를 제공하거나 직접 만든 코드를 포함 • 오픈소스 라이브러리: 컨테이너에 원하는 패키지가 없을 경우 오픈소스를 가져와 직접 만드는 방법. 미리 만들어진 컨테이너보 다는 해야 할 작업이 많음 • 직접 코드 작성: 상기 모든 통화를 사용할 수 없을 경우 • 컨테이너에 주목! • 미리 만들어진 API, 오픈소스 라이브러리, 직접 만든 코드를 담을 수 있는 기반 인프라
  12. 12. OKdevTV (개발) AWS 람다는 왜 그렇게 빠르게 구동될까? 5 • https://jvns.ca/blog/2021/01/23/firecracker--start-a-vm-in-less-than-a-second/ • 1초 이내로 VM 시작하기 • Firecracker 사용(https://firecracker-microvm.github.io/): AWS lambda와 Fargate에서 사용 • 참고: KVM 사용(리눅스 전용) It takes <= 125 ms to go from receiving the Firecracker InstanceStart API call to the start of the Linux guest user- space /sbin/init process.
  13. 13. • https://no900528.tistory.com/2 OKdevTV (경력 관리) 30살 비개발자가 3개월만에 풀스택 개발을 하기까지.. 6
  14. 14. • https://www.sotheb.co.kr/65 • https://wodonggun.github.io/wodonggun.github.io/study/%ED%95%9C%EA%B8%8 0-%EC%9D%B8%EC%BD%94%EB%94%A9%EC%9D%B4%EB%9E%80.html • 유니코드 정규화(UNF, Unicode Normalization Form) 문제 • NFC(Normalization Form Composition): 각을 각이라는 문자 하나로 저장(텍스트 크기가 줄어들지만 옛 한글의 경 우 자소가 분리되어 저장된다), 윈도우와 리눅스에서 사용 • NFD(Normalization Form DeCompositio): 각을 ㄱ ㅏ ㄱ으로 저장(텍스트 크기가 커지지만 현대 한글과 옛 한글을 동일 방식으로 저장), MacOS에서 주로 사용 • 해법 • 한글 자소 교정기(윈도우용) • https://namocom.tistory.com/630 에서 다운로드 • 한글 자모 합치기(맥용) • https://namocom.tistory.com/901 에서 다운로드 OKdevTV (팁) 맥에서 윈도우로 가져온 파일명이 자모 분리된 경우 해법 7

×