2020년 상반기. 양질의 기술 아티클 모음

Kang DDan DDan·2020년 6월 20일
179

플백

'카카오 프로젝트100'은 매일 하고 싶었던 일은 100일 동안 꾸준히 하면서 인증을 하는 서비스인데요.

저는 하루 한 개, 기술 아티클 읽기를 도전하고 있습니다.

https://project100.kakao.com/project/2166/introduce

플젝설명

이 프로젝트를 진행한지도 벌써 90일 차! 그동안 업계 동료들이 공유해주는 양질의 아티클을 보면서 많은 인사이트를 얻고 반성도 하고 재미도 느꼈는데요. 프로젝트가 끝나가니 이 인증글들을 그냥 버리기가 아깝다는 생각이 들었습니다.

그래서 이 인증글들을 모아모아 아카이빙!
(카카오 플백팀 죄송해요, 크롤링 했습니다 ㅠㅠ)

다 모아보니 꽤 많습니다. 키워드도 추출하고 카테고라이징도 해볼까 싶었지만,,, 귀찮다...

기본적인 인증 포맷은 블로그 설명과 링크였는데요, 링크를 본문에 포함하여 공유해주신 경우가 있어서 아티클 주소가 비어있을 수 있어요. (이것도 추출해서 넣어줄 수 있지만... 귀찮다...) 그럴 땐 본문을 봐주세요~

2020년 6월 30일, '하루에 한 개, 기술 아티클 읽기' 1기 종료

아티클 요약아티클 링크
[ 9 tips to quickly improve your UI designs ] 미적감각이라고는 1도 없는 공돌이 유전자가 넘쳐나는 개발자들이 읽어보면 좋을듯한 UI 디자인에 관련된 몇가지 원칙을 소개하는 아티클. 사이드프로젝트 시작전에 한번씩 톺아보면 많은 도움이 될 것 같다.https://uxdesign.cc/9-simple-tips-to-improve-your-ui-designs-fast-377c5113ac82
- 디지털 성착취 방지를 위한 서비스 가이드라인 - 미디어 공유, 프로필/친구목록/게시글 열람 등 서비스에서 흔하게 사용하는 기능에서 발생하는 위험성과 이를 위한 방지책에 대한 가이드라인을 제시하는 글 입니다. 어느정도 규모 이상의 회사에서는 기획이나 법무에서 챙겨주는 영역이긴 한데요. N번방과 같은 디지털 범죄가 사회적 파장을 일으키고 있는 지금, 개발자들도 알고 지나가면 좋을 것 같아 공유합니다.https://teen-it.kr/for-service
개발자도 알면 좋은 UI 디자인 회사 프로젝트라면 기획자, 디자이너 분들에게 의지를 할 수 있지만, 개인 토이프로젝트 하다보면 어떤게 좋은 디자인일지 갈팡질팡 하다가 시간 낭비 많이 하는 편인데요. 딱 그럴때 참고하기에 정말 좋은 자료입니다.https://joshua1988.github.io/web-development/design/ui-for-developers/
JDK14 - Java 14 - What's new features in Java 14 이번에 릴리즈된 JDK14 피쳐별로 잘 정리된 포스트입니다. switch에 람다 지원, instanceof를 사용할때 한 줄 캐스팅, NullPointerExceptions 발생시에 상세 메시지노출 정도가 눈에 띄네요. 코틀린과 많은 부분 흡사해져가는 느낌입니다https://www.techgeeknext.com/java/java14-features
# 제목 Hadoop Ecosystem: Hadoop Tools for Crunching Big Data # 요약 https://velog.io/@shinychan95/0323-2-Hadoop-Ecosystemhttps://www.edureka.co/blog/hadoop-ecosystem
let, const와 블록 레벨 스코프 평소 호이스팅에 대해 헷갈렸던 부분들이(ES6 호이스팅 여부, 변수 초기화, TDZ 등..) 위 포스트에 상세히 설명되어 있어서 짧게 정리해보았습니다. 📝 한줄 요약 ES6 const와 let은 변수의 선언단계와 초기화단계 사이에 TDZ (일시적 사각지대) 가 존재하므로 초기화되기 전에 접근하려고하면 Reference Error 가 발생할 뿐, 변수 선언단계는 스코프 최상단으로 호이스팅 된다. * 변수가 생성되는 3단계 선언 단계 > 초기화 단계 > 할당 단계 - var 키워드는 선언 단계와 초기화 단계가 함께 이루어지고, const/let 키워드는 선언 단계와 초기화 단계가 분리되어 이루어진다. - const/let 은 스코프 최상단에서 선언단계는 실행되지만 (=호이스팅) 초기화 및 할당단계는 변수선언문에 도달했을때 실행된다. => 그러므로 초기화 이전에 변수에 접근하면 Reference Error 가 발생한다.https://poiemaweb.com/es6-block-scope
잘못 작성된 람다 코드를 삭제하기까지의 여정 https://helloworld.kurly.com/blog/study-in-lambda/ 마켓컬리 기술블로그를 슬쩍 훑어보니 몹프로그래밍도 하고 재밌게 일하기위해 이것 저것 시도해보는것 같아 보기좋네요. 첨부한 링크의 글은 가볍게 읽을 수 있는 람다 코드 리팩토링 경험담인데, 공감가고 반성되는 부분이 많았습니다. 스트림 패러다임에 맞지 않게 API만 냅다 남용하지 않았는지, 너무 길거나 복잡하게 사용한 람다 코드로 동료들의 가독성을 해치지 않았는지 반성해봅니당. 이펙티브자바 7장, 람다와 스트림을 다시 한번 읽어봐야겠어요🤔http://thefarmersfront.github.io/blog/study-in-lambda/
하루에 1000번 배포하는 조직되기 배포에 매우 예민한 프로젝트가 아니면 Git-flow를 사용할 필요가 없다! 고 합니다. 브랜치는 적을수록 좋고, 짧을수록 좋다...https://blog.banksalad.com/tech/become-an-organization-that-deploys-1000-times-a-day/
Rust로 15분만에 CLI app 만드는 튜토리얼(영어) 입니다. 저는 15분 컷 실패. 하지만 쭉 따라가기에 잘 만들어진 튜토리얼입니다. 러스트 기초부터 차근 차근 보려면 (한글) https://rinthel.github.io/rust-lang-book-ko/ch00-00-introduction.html 간단히 기초 문법 훑어보려면 (한글) https://jiyeonseo.github.io/2020/03/07/start-rust/ 기초 동영상 강의(영어) 중에는 https://egghead.io/courses/write-your-first-program-with-the-rust-language 가 제일 잘 되어있는 것 같습니다. Rust로 만든 좋은 프로젝트 하나 더 추가합니다. cat 에서 문법 하이라이트 + 깃 기능이 추가된 bat 입니다. 꼭 Rust 공부하는 분들 아니더라도 쉽게 설치하셔서 데일리로 쓰기 좋은 툴입니다. https://github.com/sharkdp/bat/blob/master/doc/README-ko.md (한글)https://rust-cli.github.io/book/tutorial/index.html
🔗 Apple AR 가이드: https://www.apple.com/kr/ios/augmented-reality/ 위 Apple 이 설명하는 AR 가이드에서는 이미 사용 중인 IKEA의 가구배치앱, 산업현장에서 유용하게 사용되는 케이스, 교육과 게임에서 사용되는 케이스 등 일상에서 정말 다양하게 활용되는 AR의 모습을 보여주고 있습니다. 얼마전 애플 공홈에 소개된 NEW iPad Pro 에서도 AR 이 언급된걸보고, Apple이 얼마나 AR 에 집중하고 있는지 또 한번 느끼게 되었는데, 실제로 출시 된 이후에는 어떤 방식으로 활용한 앱들이 릴리즈될지 궁금하네요. Frontend 개발자로서 AR 시대에 발맞추기 위해서는 어떤 준비가 필요할지가 궁금한데, 이건 내일 좀 찾아보겠습니다.https://www.apple.com/kr/ipad-pro/
배달의민족 최전방 시스템! '가게노출 시스템'을 소개합니다. 하루 세끼 해먹어야하는 이 시국에 가장 많이 찾게되는 배민의 시스템 소개입니다. 과감히 WebFlux를 도입한 부분이 인상적이었습니다. 익숙치 않은 DynamoDB, Circuit Breaker 등도 소개가 되었는데, 따로 찾아봐도 좋을 것 같네요.https://woowabros.github.io/experience/2020/02/19/introduce-shop-display.html
레거시 코드를 점진적으로 개선한 경험 : 스프링 레거시 코드를 개선하는데 실천한 13가지 방법 제목 그대로 입니다. 각 항목들을 보면 '아 RGRG' 하는 내용일 수 있지만 한 번 훑어보고, 비슷한 상황일 때 참고하면 좋을 것 같아요.https://sogoagain.github.io/2020/03/08/%EB%A0%88%EA%B1%B0%EC%8B%9C-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%A0%90%EC%A7%84%EC%A0%81%EC%9C%BC%EB%A1%9C-%EA%B0%9C%EC%84%A0%ED%95%9C-%EA%B2%BD%ED%97%98/
spring batch - querydslitemreader 를 구현한 내용이 기술되어 있습니다 이번에 시작한 프로젝트에서 사용하게 되면서 도움이 많아된 내용이라 공유해봅니다https://woowabros.github.io/experience/2020/02/05/springbatch-querydsl.html
@Transactional Annotation 안에서 호출하는 Async 메서드로부터 RuntimeException이 발생하면 이 트랜잭션은 롤백될까요? TransactionSynchronizationManager 사용해서 Transansaction 안에서 Async 메서드를 안전하게 다루는 방법을 알 수 있습니다.https://www.nurkiewicz.com/2013/03/synchronizing-transactions-with.html
Supercharge your command line experience: GitHub CLI is now in beta github-cli 가 나왔었네요 (!) 현재는 베타버전인데, 엔터프라이즈 버전은 지원하지 않고 2020년 말까지는 베타버전 유지를 예상한다고 합니다. cli 로 풀 리퀘스트에 대한 내비게이션 및 필터링을 제공하고, 브라우저도 열 수 있으니 편할것같아요.https://github.blog/2020-02-12-supercharge-your-command-line-experience-github-cli-is-now-in-beta/
5 Secret features of JSON.stringify() https://medium.com/javascript-in-plain-english/5-secret-features-of-json-stringify-c699340f9f27 사람들이 잘 모르는 JSON.stringify() 의 두번째, 세번째 인자에 대해 짧고 간결하게 설명한 글. 간단하게 필터링하고, 형식화 할 수 있는 방법을 제공한다.empty
What is Hadoop? Introduction to Big Data & Hadoop # 요약 블로그 정리 - https://velog.io/@shinychan95/0324-3-What-is-Hadoop 어쩌다보니 3탄을 제일 먼저 읽어버렸고, 이것이 1탄이다. 아! 그리고 더 자세히 보니 사실 "Big Data and Hadoop"란 주제로 166개의 글이 존재했다. 1, 2, 3탄까지만 읽으려고 한다. 그래서, 하둡으로 다양한 포맷의 데이터를 고민없이 저장하고, no pre-dumping schema validation, 분산 저장으로 스케일링 문제 해결하고, 분산 처리로 처리 및 접근 속도 극대화. 언제 사용하지 말아야 할까? - Low Latency data access 이 필요할 때 - Multiple data modification 일 때 - Lots of small files 을 저장할 때https://www.edureka.co/blog/what-is-hadoop/
싱가폴 정부 (정확하게는 Government Technology Agency (GovTech))에서 코로나 바이러스 확산을 막기 위한 앱을 만들어 발표했습니다. 블루투스를 이용해 가까이 있었던 사람들의 리스트를 저장하고 있다가 확진자가 접촉했던 고위험군의 사람들을 찾아내는 방식입니다. 단순하면서도 너무 좋은 아이디어네요! 곧 오픈소스화 예정이라고 하니 그것도 챙겨봐야 할 것 같습니다. 기사 : https://mothership.sg/2020/03/tracetogether-installed-open-source/ (정확히 기술 아티클은 아니지만 ㅋ_ㅋ 리얼 월드 문제를 푸는데 꼭 기술만 필요한건 아니니까요! 하하)undefined
Monolithic과 MSA 아키텍쳐 장단점에 대해서 명확하고 간결하게 설명해주시네요!https://medium.com/myrealtrip-product/msa-micro-service-architecture-%EB%A1%9C%EC%9D%98-%EC%A0%84%ED%99%98-6caa8efa2380
https://meetup.toast.com/posts/228 JS에서 Private 을 이용한 적이 많이 없어서 은닉화 방법들은 잘 모르고 있던 차에 좋은 글 발견! 최근 Stage3 까지 올라온 ECMAScript의 Private field 에 대한 글인데 쉽게 설명되어 있고 재밌습니다.empty
10 Things Front-End Developers Should Learn in 2020 FE 생태계의 트렌드를 키워드 중심으로 짚고 넘어간다. 내용이 쉽고 간결해서 요즘 FE 생태계에 핫한 키워드가 뭔지 잘 모르겠다면 한번쯤 쓰윽 읽어보기 좋은글. 요약하자면 GraphQL와 PWA 아닐까https://medium.com/better-programming/10-things-front-end-developers-should-learn-in-2020-61b448e75483
JUnit5로 계층 구조의 테스트 코드 작성하기 요즘 테스트 코드를 JUnit 5 기반으로 작성하고 있는데, 가장 잘 쓰고 있는 @Nested, @DisplayName 어노테이션에 대한 사용이 잘 나와 있어 가져와봤습니다.https://johngrib.github.io/wiki/junit5-nested/
제목 - Hadoop Tutorial: All you need to know about Hadoop! 우선 하둡을 학습하려고 자료를 찾는다면 이 시리즈를 추천한다. 글 처음부터 진또배기 시리즈에 오신 걸 환영한다고 인사를 건넨다. 튜토리얼인 만큼 빅데이터 개념부터 시작해서 하둡의 등장까지 역사의 시작 관련 썰을 푼다. 그리고 나서는 1일차 2일차의 내용을 합쳐놓은 것 같다. 글을 잘못 선택했다.https://www.edureka.co/blog/hadoop-tutorial/
Ktor 로 Todo 서비스 빠르게 만들기 Ktor 들어보셨나요? (전 첨듣..킈킈) Ktor은 JetBrain에서 만든 코틀린기반 웹프레임워크라고 합니다. 코루틴 기반의 비동기 서버와 HTTP 클라이언트 개발을 지원한다고해요. 예제를 어느정도 따라해보니 설정이 정말 간편한 경량프레임워크네요.https://ktor.io/
Learn X in Y minutes. Y분안에 X 언어 배우기 입니다. 그야말로 가볍게 각 언어들의 문법을 알려주는 언어 위키 같은 느낌입니다. 일하다가 언어 스위칭이 자주 발생하면 사소한 문법들이 잘 기억이 안날때가 있는데 그 때 참고하기 좋을 것 같습니다. 다만, 몇몇 한글번역은 구글 번역기를 돌린것 같네요 🤨자신이 잘 아는 언어가 한국어를 지원하고 있지 않다면 이번기회에 컨트리뷰트 해보는 것도 좋을 것 같습니다!undefined
spring boot restful api test 에 관련된 내용입니다 어제 테스트코드를 짜내느라 골머리를 싸맸는데 아침에 어떻게 알았는지 이 내용이 메일로 오네요 내용은 간략한 테스트코드 구성과 테스트코드에서 @Transactional을 사용할 경우에 db가 알아서 롤백된다 정도를 기억해두고 가면 좋을것같습니다https://medium.com/swlh/https-medium-com-jet-cabral-testing-spring-boot-restful-apis-b84ea031973d
Webpack 5 Module Federation: A game-changer in JavaScript architecture 곧 정식 릴리즈될 webpack 5 에 포함되는 스펙인 Module Federation 를 설명하는 글. 여러 모듈에서 공통으로 사용될 컴포넌트를 공유할때, 사내 npm에 배포하거나, 모노레포로 구성해서 레르나를 활용하거나 하는 선택지를 취하는데, Module Federation 도 이를 해결할 선택지가 될 것 같다.https://medium.com/@ScriptedAlchemy/webpack-5-module-federation-a-game-changer-to-javascript-architecture-bcdd30e02669
git rebase를 이해하기 git rebase의 동작 방식을 그림과 함께 잘 설명한 글입니다. 개인적으로 git rebase를 헤비하게 쓰는 편인데 왜 그런지는 모르고 그냥 기계적으로 사용만 했던 것 같네요,,,https://junwoo45.github.io/2019-10-23-rebase/
우리나라에도 치즈가 올려주신 아티클과 관련된 프로젝트를 진행하는 팀이 있었습니다!! 시빅해킹에 관심이 있었는데, 이렇게 구체적으로 움직이는 분들을 보니 마음이 폴짝폴짝.https://hackmd.io/flqBFPCKT3WcqdavV9w8zw
https://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html 몇년 전 글이긴하지만, 배민에서 사용하는 Git Flow 포스트를 봤습니다. 저희팀도 깃플로우를 따르고 있다 생각했는데 편의상 생략한 과정들이 꽤 많았었네요.empty
깃합 액션 따라하기중입니다https://kwongdevelop.tistory.com/17
Coding habits for data scientists 최근에 ml 코드를 분석해서 라이브러리화 하는 작업을 했는데, 처음 하는 작업이라 어떻게 하는게 좋은 방향인지 알 수 없어서 계속 찾고있었는데 좋은 블로그가 있네요. ml에서의 클린코드, 읽기 좋은 코드, 재사용성이 좋게 만들기, 유닛테스트를 사용해 리팩토링하기 등. 특히 쥬피터를 사용할 때를 기본으로 하고 있어서 DS를 하시는 분들에게 도움이 많이 될 것 같습니다. best practice라는게 큰 개념적으로는 항상 알고 있지만 프레임워크마다, 언어의 특성에 따라 그 모습이 조금씩 바뀌니 이렇게 예시와 보여주지 않으면 실 적용이 참 어려운것 같아요. 최근 클린 코드에 대한 많은 논쟁이 있는데, 그래도 분명 많은 개발자들이 동의하는 좋은 습관들은 맞을 것 같습니다. 읽기 좋은 코드, 재사용성이 좋은 코드, 테스트들 등등 클린 코드 리소스 - https://github.com/abiodunjames/Awesome-Clean-Code-Resources : PHP, NodeJs, Java, C#, JavaScript ,Ruby,Python - https://github.com/davified/clean-code-ml : machine learningundefined
HTTPS 동작 방식, 저만 항상 어렵나요?ㅠㅠ 필요할 때마다 살펴보는데 뒤돌아서면 까먹네요,,, - 기존 HTTP의 TCP 핸드쉐이크에 추가된 TLS 핸드쉐이크 동작 방식 - 봐도 봐도 헷갈리는 공개키 암호화 - 루트 인증 기관과 브라우저 벤더사의 관계 세 가지 궁금증을 적당히 긁어주는 포스팅 공유합니다.https://www.mimul.com/blog/about-https/
How to debug a child process in Node and Gatsby.js with Chrome 크롬의 개발자 도구를 활용하여 Node child process 를 디버깅 하는 방법을 소개한다. 아직 실무에서 써볼 일은 없지만.. 언젠가 서비스에 Web worker를 사용해볼 그날을 위해.. 본문의 주요 내용 외에도, Gatsby나 ndb 와 같은 도구들을 처음 알게되었는데, 특히 ndb는 좀 더 살펴볼 필요가 있을 것 같다.https://indepth.dev/how-to-debug-a-child-process-in-node-and-gatsby-js-with-chrome/
Mastering Kotlin standard functions: run, with, let, also and apply 코틀린 standard function 중 run, with, let, also, apply 는 늘 차이점이 헷갈리는데요. 확장함수이냐, this를 argument로 받느냐, scope 종료 후 객체를 다시 return 하느냐에 따라서 잠깐 생각해보면 선택이 쉬워지네요 !undefined
https://evan-moon.github.io/2020/03/02/what-is-knowing/ 오늘은 약속이 있어서 지하철에서 읽은 글 하나를 공유해봅니다. 기술적인 내용은 거의 없어서 읽어보시라고 추천은 안합니다... 그냥 제목만보고 프론트엔드를 얼마나 아는지에 대한 기술적 기준을 쓴 글인줄 알고 들어가봤다가 매우 철학적으로 접근한 글이라 신기했네요 ㅋㅋ.empty
공식문서 만으로 iOS 개발 배우기 제목만으로도 왠지 현혹되지 않나요? 뭔가 하고싶어서 앱을 찾아보면 제 맘에 쏙 드는 것이 없어서 광광거리다가 스크랩했던 글인데, 다시 한 번 꺼내보면서 공유합니다.http://sungdoo.dev/programming/start-ios-development-with-offical-docs/
제목 - 장성규, 아쉬웠던 인생극장! 그 뒷 이야기 (mbc 신입사원) 요약 - 보면서 (아주 조금) 훌쩍거린 영상이라서 오늘은 이것으로 대체해보려 한다 (어제 알고리즘 문제를 풀다 풀지 못해 인증을 못했는데 오늘가지 가볍게...) 영상을 보고 블로그에 다가오는 기회를 마주할 마음가짐이라는 주제로 글을 써보려고 한다.https://www.youtube.com/watch?v=MPsBu7EOa5o
UDP!? 패킷 손실을 감수하는 프로토콜이라 배웠는데, HTTP 프로토콜이 TCP가 아니라 UDP로 구현된다고요~? - TCP / UDP 프로토콜을 배웁니다. - UDP 프로토콜에 대한 오해를 풉니다.https://evan-moon.github.io/2019/10/08/what-is-http3/index.html
혼자하는 개발이 만드는 자만심. 재택근무 기간이 길어지면서 혼자 개발한다라는 느낌이 가끔 듭니다. 물론 코드는 여전히 리뷰를 받고 있으며 동료들과 대화하지만, 소소한 개발이야기를 하기 힘든건 어쩔 수 없는 것 같습니다. 필자는 혼자 프로젝트를 오랫동안 개발하며, 실제 개발에 쓰인 기술들 이해없이 버그 고치고. 완성에 급급해서 엉망으로 짜여진 코드를 보며, 앞으로 더 발전하기 위해 오픈소스화를 결심한 이야기를 해주고 있는데요. 사실 개발을 이런식으로 접근한 적이 많은 것 같습니다. 프레임워크 혹은 라이브러리의 개념 혹은 내부 로직을 이해하지 않았으면서 남들이 쓰니까, 혹은 써야하니까 급급하게 적용하고 맞닥드리는 버그들을 고치기에만 집중하고. 결국 또 다른 사이드이펙트로 이어지고 한없이 버그에 빠져드는 그런 상황. 개인적으로 이 프로젝트100을 하면서 타파하고 싶은 것 중 하나인것 같습니다.https://brunch.co.kr/@matthew-chang/32
(주말이니 가벼운 주제로,,,) 처음 발표를 준비하는 개발자들이 알아두면 좋을 것들 다 아는 얘기지만 막상 내 일이 되었을 때 놓칠 수 있는 부분들을 찝어줍니다.https://rinae.dev/posts/things-to-know-when-you-prepare-presentation-first-time
<DEVIEW 2019 영상> # 제목 Fail Fast, Learn Faster SRE (실패에서 배워나가는 SRE) # 요약 SRE란 어떻게 하면 대규모 시스템에서 신뢰성을 보장할지 고민하는 기술 분야이자 방법론입니다. 이 영상은 대한민국에서 발생하는 온갖 종류의 이벤트들에 대응하면서 성장하고 있는 네이버 검색의 SRE가 하는 일들에 대해서 소개합니다. # 느낀점 지난 1년간 그리고 앞으로 1년간 준비해서 꼭 가고 싶은 팀이다. 1년 뒤에 부족하다면 더 준비해서 갈 생각이다. 들어도 들어도 끌리는 팀인데 공유해봅니다. (아 제발 그 전에 채용이 끝나지 말아주세요. 영상 말미에 사람이 많이 필요하다는 말에 매번 희망 품습니다) 2019년 여름에 아무 것도 모른 채 네이버 인턴을 지원했다가 SRE 팀 면접을 보게 되었다. SRE 조차 몰랐던 나는 곧바로 떨어지게 되었지만, SRE란 키워드와 DEVIEW에서 발표를 했다는 말만 듣고 계속 찾아보게 되었다. 대규모 데이터 처리, Abnormaly Detection, 모니터링, 재난 엔지니어링 등 정말 내가 살면서 흥미를 느낀 분야이기에 1년 간 힘차게 달릴 것이다. 빠르게 실패하고 빠르게 배우며, 이상적이고 멋들어진 도구가 아닌 실질적인 문제 해결에 주력하는 점. 오 찾아나서는게 아니라 재난 대비와 신뢰성 높은 서비스를 위한 고민이라는 목표가 정말 좋다. 쏟아지는 지식을 배우는 것도 즐겁다. 하지만 본질적인 문제 해결을 위해서 오캄의 면도날적 방법론으로 접근하는 이 팀 겪어보고 싶다.https://tv.naver.com/v/11211080
Enum vs Sealed class — which one to choose? 마땅한 글이 없을땐 코틀린 아카데미를 기웃거려봅니당,, 오늘은 가장 최신글인 Enum vs Sealed class 를 가져왔어요. 어딘가에선 Enum 2.0 으로도 표현되는 코틀린의 Sealed Class 는 Enum 과 달리, 서브클래스를 가질 수 있고 인스턴스별로 생성할 수 있습니다. 글에 언급된것처럼 양자 택일의 경우나 이벤트/메세지 정의에 좀 더 활용 할 수 있을 것 같습니다.https://blog.kotlin-academy.com/enum-vs-sealed-class-which-one-to-choose-dc92ce7a4df5
spring jpa 에서 값을 입력/조회할때 원하는 타입으로 데이터를 변조하는 예시입니다 저는 이번에 암호화/복호화 모듈을 사용할때 도입해봤어요https://pkgonan.github.io/2018/03/Spring-Custom-AttributeConverter
도커 컴포즈를 활용하여 완벽한 개발 환경 구성하기 도커 컴포즈로 개발환경 구축하는데 도움이 많이 된 글입니다. (도커 관련 키워드는 모두 44bits 블로그로 통하는것 같아요!) - 앱 컨테이너 실행 - 데이터베이스 연결 - 실시간 반영 - 컴포즈로 개발 환경 다 묶어 주기 - Dockerfile-dev 파일로 개발용 dockerfile 만들기 < 전 요 부분을 새로 알았네요! 로컬에서 도커 파일 항상 수정했던 사람 바로 나야나..ㅠ 도커 개발환경에서 이미 잘 쓰고 있더라도 아래 부분에 "나름의 팁"부분이 꿀이니 한번 체크해보시길 추천드립니다!https://www.44bits.io/ko/post/almost-perfect-development-environment-with-docker-and-docker-compose
spring webflux + mongo 를 이용한 crud 예제 포스팅입니다 이걸 보니까 rdb 에서의 non-blocking 을 지원해주는 커넥터 라이브러리인 r2dbc를 찾아봤더니 릴리즈 버전이 나왔더군요 다음엔 이걸 더 조사해볼까 싶습니다https://medium.com/swlh/building-a-crud-with-spring-webflux-5606a0fccc31
마이크로 프론트엔드 아키텍처에 대한 글 몇몇개를 구글링해서 살펴봤습니다. 저희팀은 서버는 워낙 사람도 많고 기능도 많아서 MSA 로 구성되어있는데,, 프론트는 언어가 통일되어있는데다 기능 추가도 빈번하지 않아서 MFA 가 불필요한 상황인듯해요. 실제 대규모 서비스에 적용된 사례가 있는지 궁금해지네요! https://www.google.com/search?q=micro+frontend+architecture&oq=Micro+f&aqs=chrome.0.69i59l2j69i57j0l2j69i60l3.2248j0j1&sourceid=chrome&ie=UTF-8empty
PS 능력이 부족하다 생각해서 공부 좀 해볼까란 생각으로 봤는데 역시 만만한 분야는 아닙니다... 열정 뿜뿜하는 블로그 글을 보니 아이러니하게 좌절감을 느끼네요. 그래도 한번 해보려고요! 화이팅~!https://plzrun.tistory.com/entry/PS%EA%B3%B5%EB%B6%80%EB%A5%BC-%ED%95%98%EB%A9%B4%EC%84%9C-%EC%A2%8C%EC%A0%88%EA%B0%90%EC%9D%84-%EB%8A%90%EB%82%80-%EB%B6%84%EB%93%A4%EC%9D%B4-%EC%9D%BD%EC%96%B4%EB%B4%A4%EC%9C%BC%EB%A9%B4-%ED%95%98%EB%8A%94-%EB%82%98%EC%9D%98-2016%EB%85%84
나는 프론트엔드를 안다고 말할 수 있을까? 개발자들이 정말 많이하는 고민이라고 생각해요. 프론트, 백엔드 중 나는 무엇을 잘하는 개발자일까, 좋아하는건 어떤쪽일까? 나는 어떤걸 잘한다고 자신있게 말할수있을까? 어느 정도면 한 기술에 대해 잘 안다고 말할 수 있을까, 앎이란 무엇인가,,, 소크라테스가 내린 결론 또한 ‘내가 알고 있는 단 한 가지는 내가 아무것도 모르고 있다는 사실이다’ 였다니, 고민이 많은게 고민인 시점에 위로가 되네여 😌 철학적으로 재밌게 읽은 글을 공유합니다. 한번 읽어보세요!https://evan-moon.github.io/2020/03/02/what-is-knowing/index.html
# 제목 SRE/DEVOPS의 개념과 SRE는 무엇을하는가? # 요약 "일반적으로 개발팀은 주어진 시간내에 새로운 기능을 내기 위해서 개발 속도에 무게를 두고, 운영팀의 경우에는 시스템 안정성에 무게를 둔다. 그래서 개발팀이 무리하게 기능을 배포하게 되면 장애로 이어지고, 이러한 장애로 인하여 서로를 욕하는 상황이 만들어져서 팀이 서로 멀어지게된다." 그래서, "Devops가 개발과 운영의 사일로(분단) 현상을 해결하기 위한 방법론이자 하나의 조직문화에 대한 방향성이다. 그렇다면 SRE는 구글이 Devops에 적용하기 위한 구체적인 프렉틱스(실사례)와 가이드로 생각하면 된다." 그래서 하는 일은, 1. Ensuring a Durable Focus on Engineering 2. Pursuing Maximum Change Velocity Without Violating a Service’s SLO 3. Monitoring 4. Alerts 5. Tickets 6. Logging 7. Emergency Response 8. Change Management 9. Demand Forecasting and Capacity Planning 10. Provisioning 11. Efficiency and Performance 라고 정리하지만, 사실 스스로 흡수하지 못한 채 대제목만 말한 것이다. Google에서는 무료로 SRE 책(SRE 대표 책. 자신들이 작성하고 그게 표준)을 온라인으로 제공한다. 그걸 보고 적어본 것이다. https://landing.google.com/sre/sre-book/chapters/introduction/ 읽어도 이해되지 않는 영어가 밉다.https://bcho.tistory.com/1325
공개적으로 학습하라! 며칠전에도 업무중 막힌게 있어서 구글링 하던중 아주 예전에 제가 쓴 블로그를 발견했습니다. 그 말은 아마, 제가 해봤음에도 불구하고 또 같은 실수를 했다는 말이지만, 생각해보니 다시 공부함으로써 확실히 그 에러를 이해할 수 있었던 계기가 되기도 했습니다. 이와같이 블로그 쓰기, 발표하기 등 배움을 공개적으로 하는게 좋은건 누구나 공감하지만 여전히 시간도 너무 많이 걸리고, 귀찮은게 사실인것 같습니다. 이 글에서는 왜? 도 있지만 어떻게? 에 대해서도 다뤄주어 다시한번 공개적인 공부의 열정에 힘을 실어줍니다. - 여러분이 학습할 때 '이런게 있었으면...' 했던 것을 만들어 보세요. - 코딩에 관한 좋은 영상을 보셨나요? 강사나 발표자에게 연락해서 감사를 전하고, 궁금한 것을 물어보세요. - 여러분이 사용하는 오픈 소스 라이브러리에 PR을 날려보세요. - 아무도 사용하지 않을지도 모르지만, 여러분만의 라이브러리를 만들어 보세요. - 여러분이 좋아하는 것들을 백지 상태에서 따라 만들어보고 어떻게 작동하는지 살펴보세요. - 워크샵에서 강의를 하세요. - 컨퍼런스에 찾아다니고, 학습한 것들을 요약해보세요. - 코딩하면서 설명해 해보세요. - (주변에서 여러분을 응원하는 사람들에게) 그들을 여러분에게 퀘스트를 주는 존재로 생각해 보세요. "~~에 대해서 도와주실 분?" 하고 그들이 물었을 때, 여러분은 맨 앞줄에서 이미 손을 들고 서있는 아이가 되는 겁니다 *사담: 작년에 재밌어 보이는 오픈소스 한국어 번역을 좀 도와주었는데(보여주기식 기여ㅋㅋㅋ) , 어쩌다보니 트위터로 가끔 안부를 묻는 친구가 생겼습니다. 자신의 프로젝트에 애정이 큰 친구이다 보니, 더 많은 유저들에게 홍보할 수 있게 되어 많이 고마웠던것 같더라구요! 기술적 기여는 아니였지만, 좋아하는 오픈소스 컨트리뷰터와 친구가 될 수 있는 좋은 경험이였어요. :) 이 업계는 언어를 넘어서는 우정을 쌓기 참 좋은 것 같습니다!https://velog.io/@kwanwooi/공개적으로-학습하라
Write From Home Challenge – Technical Content Writing Event By GeeksforGeeks Geeks for Geeks 에서 Technical Content Writing Event 를 하고있네요! 코로나19 시국을 슬기롭게 나기위해서 재밌는 홈 챌린지가 많던데, 개발자들의 홈챌린지를 보니 반가워서 공유합니다! 이전에 업로드되지 않은 주제로, Programming Languages, 머신러닝이나 빅데이터 등등의 기술 트렌드 관련 글로 챌린지에 도전하면 된다고 합니다. 영어로 글을 쓰려면 큰 장벽이 있지만요 하하. 🤔https://www.geeksforgeeks.org/write-from-home-challenge-technical-content-writing-event-by-geeksforgeeks/
왜 클라우드플레어는 인기 없는 아이템까지 메모리에 캐시하는가? 클라우드플레어가 캐시 전략에 Java GC 아이디어를 활용한 경험입니다. 본문은 영어이고 아래 설명은 이 아티클이 공유된 곳에 달린 코멘트입니다. 잘 설명되어 있어서 그대로 가져왔어요. :Dhttps://blog.cloudflare.com/why-we-started-putting-unpopular-assets-in-memory/
A Complete Guide to the Math Object in JavaScript 개발하다 보면 잊을만할때 즈음 필요해지는 자바스크립트의 Math 객체에 대해 정리해둔 글. 헷갈릴때 마다 한번씩 찾아보면 좋을 것 같다.https://levelup.gitconnected.com/complete-guide-on-math-object-in-javascript-5c641254f288
프로비저닝 자동화를 위한 Ansible AWX, 설치부터 엔터프라이즈 환경 적용까지 현재 파트에서 사용하고 있는 배포툴 AWX입니다. Ansible 유저들은 다들 CLI로 만족하는지 관련 자료들이 많이 부족했었는데요. 잘 정리된 글이 있어서 복습차 읽어보았습니다. https://engineering.linecorp.com/ko/blog/ansible-awx-for-provisioning-1/ https://engineering.linecorp.com/ko/blog/ansible-awx-for-provisioning-2/https://engineering.linecorp.com/ko/blog/ansible-awx-for-provisioning-2/
공개적으로 학습하라! 번역 글이 있어서 읽어보았습니다. 갠적으로 아래 부분이 제 요즘 상황이랑 비슷해서 제일 와닿았어요. "사람들이 여러분을 엉망이라고 생각하나요? 좋네요. 동의하세요. 그리고 왜 엉망이라고 생각하는지 자세히 설명해달라고 하세요. 여러분은 잘한다고 느끼고 싶은건가요? 아니면 정말로 잘하고 싶은 건가요? 다른 의견이 없다면 마음 다칠 일도 없겠죠. 그들의 의견이 틀렸다고 증명해 보세요." 올해 평가를 기대만큼 못 받았는데 처음엔 그냥 화만 났다가, 정확한 이유라도 알자 싶어서 리더분들이랑 시니어분들 붙잡고 제가 못한것들을 알려달라했는데. 듣다보니 이해가 되더라구요. 마음은 좀 다쳤지만,, 이 기회에 다시 신입의 마음으로 돌아가보자는 마음으로 JS 기초부터 하나씩 다시 공부하면서 블로그에 정리하고 있습니다. 저도 올 한해는 '공개적으로 학습'하면서, '급할수록 돌아가는' 그런 시간들을 보내야겠다 싶습니다.https://velog.io/@kwanwooi/%EA%B3%B5%EA%B0%9C%EC%A0%81%EC%9C%BC%EB%A1%9C-%ED%95%99%EC%8A%B5%ED%95%98%EB%9D%BC
코로나 사태가 만든 트렌드 – 요가 수업도 온라인에서 전세계적인 전염병이 우리 생활의 많은 것을 바꿔나가고 있는 것 같아요. 기업에는 (반강제적으로) 재택근무 문화가 도입되고, 기사처럼 운동 수업도 집에서 들을 수 있구요. 지난 토요일이 ‘세계 피아노의 날’ 이였는데 클래식 음반사 도이치 그라모폰은 유튜브에서 세계적인 피아니스트들이 집에서 스마트폰으로 녹화한 영상을 스트리밍 해주었어요. 토요일에서 일요일로 넘어가는 새벽에 방구석 1열에서 거장들의 연주를 들으며 기술의 발전이 나의 문화생활에도 영향을 주는구나 싶어 감회가 새로웠습니다!https://techneedle.com/archives/39552
# 제목 Top 18 Artificial Intelligence Platforms # 요약 AI Platform 개념을 알기 위해서 구글에 Top AI Platform을 검색해보았다. 검색 결과 다음과 같은 네 가지 조건이 만족하면 AI 플랫폼이라 할 수 있었다. 1. 디지털적인 연산에 있어서 사람이 할 수 있는 것보다 더 나은 결과를 제공 및 전달할 수 있는 인공지능을 활용한 자동화 프로세스 2. AI란 기계가 학습, 문제 풀이, 추론, 지식 표현, 지능과 같은 사람의 인식적인 기능을 수행하는 것 3. 실제로 많은 도구가 확률 및 경제학에 근거하여 검색, 최적화, 논리적 연산에 AI를 사용 4. AI Platform은 하드웨어 아키텍처 혹은 소프트웨어 프레임워크로 정의되는데, 그것들은 소프트웨어가 작동하도록 한다. (즉, 기능을 수행) 해석하여 적어보니, 모든 조건을 만족해야만 AI 플랫폼이 아니라, 다양한 현실 속 문제 해결에 활용되거나 도구로써 더 편리하게 일을 처리할 수 있는 플랫폼을 말한다고 볼 수 있다. # 소감 대학교 수업에서 주제를 AI Platform으로 잡아서 한 첫 자료 조사. 갈 길이 멀다.https://www.predictiveanalyticstoday.com/artificial-intelligence-platforms/
[라이트닝 토크] 왜!사람들은 회사 냉장고에 음식을 넣을 때 스티커를 안 붙이는가! - 강남성 - PyCon.KR 2019 - 냉장고의 효율적 운영을 위해 포스트잇/스티커에 이름/날짜를 적어야 하지만 사람들이 안함 - 사원증 태깅 -> 스티커 프린트 with 이름/날짜 - NFC 모듈 + 라벨프린터 + 라즈베리파이 + 코딩 for 프린터 서버 구성 pycon 둘러보다가 본 재밌게 본 라이트닝 토크입니다. (5분짜리) 일상 생활에서 문제를 발견하고 서비스를 디자인하고 그리고 해결책을 직접 만들어내는, 개발의 기본 과정을 아주 충실하게 그리고 재치있게 풀어낸 일화입니다.https://www.youtube.com/watch?v=rTV3c35lU24
만화로 보는 DNS over HTTPS ‘만화로 보는’ 이라고 해봤자 이해가 쉽지도 않고 재미도 없다는건 다들 알고 있으시죠,,, 그래도 클라이언트에서 서버로 요청이 전달되는 방법, 여기서 발생할 수 있는 보안 취약점, 이에 대응하기 위한 방안(TRR, DoH)에 대해 술술 읽을 수 있는 글 같네요.http://hacks.mozilla.or.kr/2019/10/a-cartoon-intro-to-dns-over-https/
브런치 매거진 이름이 마음에 들어서 들어갔는데 (Java익힘책) hashCode 오버라이딩에 관한 글이 있네요 - hashCode() 오버라이딩이 필요한 이유 - HashTable, HashMap, ConcurrentHashMap 같은 컬렉션 프레임워크에서 사용하는 hash 함수 저는 이거 설명하라고하면 어렵던데요, 이 글을 통해서 복습해보았습니다.https://brunch.co.kr/@mystoryg/133
https://dev-momo.tistory.com/entry/HigherOrder-Function-%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 HOF 에 대한 설명, 코드 예시 글을 읽었습니다. 캡슐화, 재사용성을 위해 간단한 HOF 는 사용하게 되는데 Currying 까지 쓴 적이 없어서.. 언제 한번 적절하게 사용해보고 싶네요!empty
Aborting a signal: How to cancel an asynchronous task in JavaScript 자바스크립트에서 Fetch 요청을 중단시킬 수 있는 AbortController 에 대해 소개하고, 이를 응용하여 비동기 태스크를 중단시키는 방법을 소개한다. 신박하군!https://ckeditor.com/blog/Aborting-a-signal-how-to-cancel-an-asynchronous-task-in-JavaScript/
<Kotlin/Native 로 iOS App 개발하기> 따라하기 쉬워보이는 튜토리얼이 있어서 공유합니다. kotlin/native 는 베타버전 발표시 멀티플랫폼 빌드보다 멀티 플랫폼 간의 코드 공유를 더 중요한 목표로 전제한다고 했는데요. 주변에 사용하는 개발자들은 아직 많이 못본것같아요. Kotlin/Native의 미래는 아직 잘 안보이지만, 경험삼아 한번 따라해보면 재밌을것 같습니다!https://www.raywenderlich.com/7357-ios-app-with-kotlin-native-getting-started#toc-anchor-002
로우 레벨로 살펴보는 Node.js 이벤트 루프 언제봐도 어려운 Node.js의 이벤트 루프. 이벤트 루프에 대해 설명한 수 많은 글들 중 가장 이해가 잘 되었던 글이라 책갈피 한편에 넣어두고, 헷갈릴때마다 필요할때마다 꺼내 보는 글인데 마침 필요에 의해 한번 꺼내본 김에 공유해봅니다. 아티클의 정리부를 인용합니다. 이벤트 루프는 작업 스택을 가지고 있지 않다. 이벤트 루프가 별도의 스레드에서 실행되고 자바스크립트 실행은 어떤 큐에서 하나씩 꺼내와서 다른 곳에서 하는 것이 아니라 자바스크립트의 실행 자체가 이벤트 루프 안에서 수행되는 것이다. setImmediate는 콜백을 작업 큐의 앞 쪽에 밀어넣는 것이 아니라 setImmediate 만을 처리하기 위한 전용 페이즈와 큐가 존재한다. setImmediate은 실질적으로 다음 페이즈 혹은 다음 이벤트 루프의 순회에서 실행되고, nextTick이 오히려 실질적으로 더 빠르게 실행된다. nextTickQueue에 담긴 작업이 재귀 호출을 수행하는 경우 Node.js의 작업 프로세스를 블록킹할 수 있다. 주의하도록 하자.https://evan-moon.github.io/2019/08/01/nodejs-event-loop-workflow/index.html
애자일이 도대체 뭐길래? 필자는 사실 애자일 선언을 처음 들었을 때 마치 공산주의같다고 생각했다. 마르크스가 처음 마르크스주의를 제창하고 자본론을 집필했을 때의 사회 분위기는 이러했다. 공산주의는 완벽한 체제이고 점점 발전해가며 자본주의는 언젠가 스스로 붕괴할 것이라는 분위기가 노동자들 사이에서 팽배했다. 그러나 현실에 도입된 공산주의는 현실의 벽 앞에 부딫히고 스탈린주의, 마오주의 등으로 점점 변질되어 대부분 독재로 마무리 되었다. 원래는 우리 모두 함께 잘살아보세!에서 시작했지만 현실에 강림한 공산주의의 실체는 우리 함께 못살자가 되버린 격이다. 애자일, 완벽해 보이는 개발 방법론인데 실패하는걸 자주 볼 수 있죠. 애자일 선언, 스프린트 방법론에 매몰되다 보니 애자일의 기민한 생산성 가치도 옅어지는 것 같아요. CleanCode, Git-Flow 도 같은 맥락인 것 같습니다. 적당히 읽기 쉽게, 적당히 유지보수가 편하게, 적당히 협업하기 쉽게, 적당히 배포하기 편하게 적당히 애자일 하게.https://evan-moon.github.io/2019/07/02/what-is-agile/index.html
GitHub for mobile is now available Github의 모바일 앱버전이 출시되었네요. 몇몇 repository를 둘러보니 많은부분 네이티브앱으로 구현이 잘 되어 있네요. 모웹보다는 쓸만한 것 같습니다. 특히 아이패드로 보는 경우에 좋네요https://github.blog/2020-03-17-github-for-mobile-is-now-available/
BDD로 테스트에 중독되어 보자 Behaviour-Driven Development 라고 들어보셨나요? BDD는 시나리오를 기반으로 테스트 케이스를 작성하며 함수 단위 테스트를 권장하지 않는 테스트 주도 개발 방법입니다. 이렇게 말하면 이해하기 어렵죠 ㅎ 특정 클래스의 toString메소드는(Describe) 만약 실수값을 가지고 있다면(Context) 문자열을 리턴한다 (It) ( 이미지 참고 : https://johngrib.github.io/wiki/junit5-nested/#%ED%83%80-%EC%96%B8%EC%96%B4-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC%EC%9D%98-d-c-i-%ED%8C%A8%ED%84%B4) 실제 프로그램의 시나리오에 따라 테스트를 하는 기법입니다. 최근에 팀에도 적용해 봤는데, 아직 이러한 시나리오를 짜는게 버릇이 안되어있어서인지 자꾸 unit 단위로 테스트를 짜게 되더라구요. 아직 연습이 많이 필요한 것 같습니다.undefined
오늘은 간단히,, KBS 데이터 저널리즘팀에서 제작한 21대 국회의원 선거 인터랙티브 후보자 정보 기사를 공유합니다 :)undefined
My top 5 live-coding tips - 나의 라이브 코딩 팁 5 - 오랫동안 지속할수 있는 스케쥴 시간 잡기 - 실수에 관대해지기 - 빠르게 할 수 있는 테스크 고르기 ( 1시간 짜리 보다는 20분 짜리로 ) - 반복하기 - 수분 보충하기 라이브 코딩 하시는 분들 있으려나요? 짧은 글이라 쓰윽 읽었는데 개발 공부만 해도 같은 맥락인 것 같아 공유해봅니다. 저는 요즘 아침에 일찍 일어나기를 계속 도전중이라 이 인증을 아침에 되도록 끝내려고 노력중이에요. 그 밖에 실수에 관대해지고 반복하고 수분보충(아마 체력 단련이 같은 맥락이겠죠?) 이런 것들이 기본이 되어야 즐거운 개발을 오래 공부하고 또 스스로를 발전 시킬 수 있을 것 같습니다.https://dev.to/rctatman/my-top-5-live-coding-tips-3ckm
# 제목 [허지웅 칼럼] 옛날 옛적 착한 피해자가 살았습니다 # 요약 "순백의 피해자"라고 세월호 유가족에 대한 비난 여론을 보며 만든 개념이 있다. 사람들은 ‘순백의 피해자’라는 판타지를 가지고 있으며, 이 순결 판타지에 의하면 어떤 종류의 흠결도 없는 착하고 옳은 사람이어야만 피해자의 자격이 있다는 것이다. 최근 n번방 피해자에 대해서도 이 프레임을 씌우려 하는 모습이 보인다. 옳고 그름을 논하며 피해자의 진짜 얼굴은 이거라고 다투는 동안 정작 피해자는 유기된다. 피해자는 그냥 피해자다. 착한 피해자도 나쁜 피해자도 존재하지 않는다. 그런 말은 불필요하다. # 느낌 // 기술 아티클은 아니지만, 인증하고 싶은 글이라 인증해봅니다. (이제 기술 아티클 좀 읽어야지) 권력을 가진 사람들이 자신들의 이념을 우리 사회 속에 자연스럽고 지배적인 가치로써 자연화시킨다. 이러한 이념을 이데올로기라 부른다. 경쟁 이데올로기, 성공 이데올로기 다양한 이데올로기가 사회에 만연하다. 내가 그 중 중요하게 돌아보는 것이 바로 위 순백의 피해자라는 이데올로기이다.(아직 이데올로기라 불릴 지 모르겠지만) 옳고 그름을 따지는 문제만큼 어려운 것이 없다. 하지만, 논하는 과정에서 핵심이 되어야 할 것은 각 개인이 가진 배경이나 수식어 혹은 이미지가 아니라 명백한 사건 혹은 객관적인 사실 혹은 실력이어야 할 것이다.https://news.naver.com/main/read.nhn?mode=LSD&mid=sec&oid=028&aid=0002491904&sid1=001
Setting Up Git Identities git 계정을 여러개 사용할때 사용하면 좋은 팁입니다. user.useConfigOnly 설정을 이용해서 global에 사용자 정보가 없으면 호스트네임을 사용하는 대신 오류를 던지게 설정하고 user.identity3.name 같은 식으로 여러 사용자 정보를 등록하고 identity라는 명령어로 alias하여 쉽게 변경하는 방식입니다. 회사계정과 개인계정이 엉키는데 한번 해봐도 좋겠네요.https://www.micah.soy/posts/setting-up-git-identities/
Vue 렌더링 성능 개선하기 프론트 개발하다 보면 가장 많이 겪는 문제가 렌더링 성능 이슈일 것이다. 개발자 도구를 열고 불필요한 repaint 는 없는지, 한 tick 에 전부 처리 되어야만 하는 작업이 나누어져서 처리되고 있는지 싸매고 있다보면 현자타임이 오기 마련인데, 이 아티클은 기본적이지만, Vue를 처음 사용한다면 꼭 알아두어야 하는 렌더링 성능에 관련된 몇가지 방법들을 간략히 설명한다.https://velog.io/@kyusung/vue-rendering-optimization
또 git 브랜치 전략에 대한 글 하나 가져왔습니다. 기능 개발이 동시에 진행되면 잦은 코드 충돌, DEV 서버 배포 버전 관리 등과 같은 협업 문제가 왕왕 발생하는데요, 이런 문제를 해결할 방법이 없을까 고민하던 와중에 당근마켓 개발팀에서 반가운 글을 적어주셨네요.https://medium.com/daangn/deploy-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EC%A0%84%EB%9E%B5-%ED%99%9C%EC%9A%A9-%EB%B0%A9%EB%B2%95-545f278ca878
entity class 에 annotaion을 붙여 delete에 대해 정의하는 내용입니다 포스팅을 살펴보니 실용적인가에 대해서는 다소 의문이 들긴했네요https://levelup.gitconnected.com/spring-boot-soft-delete-functionality-with-hibernate-f5ee8c24c99f
HTML6 is comming - What’s new in HTML6 오호 html6가 나오네요. - Native modal 지원을 위한 dialog element - 제너럴하게 사용되는 form 을 포맷화하여 microformat 제공 - HTML6 Integrated Camera - customized menu - spa 등등 신규피쳐가 재밌네요! 아직 릴리즈날짜가 정해지지 않은것같아요.https://morioh.com/p/6d422fc49bd2?fbclid=IwAR3rBER84JD4wyUlyAUWpZbRdliHPUE-k2_2EPzX-icD-5Y9lObn2EARIiU
많은 양의 개체들을 시각화하는 방법, 그리고 전국의 모든 건물 다른 사람의 시행착오를 읽는건 언제나 도움이 된다. 혹시 다음에 비슷한 경험을 할 일이 생겼을 때, 그 과정을 대폭 줄여주기 때문인데 이 아티클은 대량의 데이터를 시각화 하면서 겪은 시행착오들을 이야기한다. 자바로 그리고 프로세싱으로 그리고 결국 OpenGL 까지 닿는 여정을 설명하는데 글이 꽤 길지만 재미있게 잘 풀어내서 그런지 쉽게 읽혔다.https://www.vw-lab.com/64
빠르고 정확하게 답변을 받을 수 있는 질문하는 법 1. 궁금한 점은 언제든 질문합니다 2. 질문은 공개된 채널을 통해서 합니다 3. 질문에는 충분한 정보를 포함합니다 4. 첫 줄의 타이틀에서 문제상황을 간단히 요약합니다 5. Slack을 사용할 경우, 하루가 지난 질문은 새로운 쓰레드로 합니다 6. 새롭게 알게된 내용을 Slack/위키 페이지/블로그에 공유합니다. 전 회사 상위 조직장 중에 외부영입으로 들어온 한 보스가 있었는데, 입사하자마자 매 주간회의에서 거의 30~40%의 시간을 이 사람의 질문을 하면서 몇주를 보냈던게 기억이 납니다. 질문의 종류는, 회사 사내에서만 쓰는 단어에 대한 질문 (어떤 뜻인지, 왜 그렇게 불리우는지, 어느 팀이 만들었는지), 어떠한 기술에 대한 이야기라면 베스트 프렉티스는 무엇인지, 그리고 혹시 그걸 사용했을때 문제는 없었는지. 사실 주간회의는 거의 형식적으로 하고 오래 하다보면 분위기가 많이 다운되는데, 이 보스 덕분에 더 활발한 토론문화가 생겼고, 보스 뿐만 아니라 아직 온보딩 중인 다른 사람들에게도 정말 의미있는 시간들로 변화되었습니다. 이러한 모습을 직접 봤음에도 여전히 질문은 어렵기만 하네요 ㅎhttps://blog.2dal.com/2020/04/01/%eb%b9%a0%eb%a5%b4%ea%b3%a0-%ec%a0%95%ed%99%95%ed%95%98%ea%b2%8c-%eb%8b%b5%eb%b3%80%ec%9d%84-%eb%b0%9b%ec%9d%84-%ec%88%98-%ec%9e%88%eb%8a%94-%ec%a7%88%eb%ac%b8%ed%95%98%eb%8a%94-%eb%b2%95/
재생 목록을 랜덤하게 섞는 방법 random shuffle 이라고 하죠? N개의 아이템이 들어있는 리스트를 랜덤하게 섞는 방법에 대한 내용입니다. 멜론 플레이리스트를 shuffle 틀면서 이전곡 다시듣기는 어떻게 구현될 까 궁금했었는데 random shuffle로 매번 목록을 다시 만들것같네요 다들 아시는 내용일 것도 같지만 글도 재밌고 내용도 흥미로워서 가져왔습니다 :Dhttp://blog.naver.com/ezkun78/30071908611
- '내 직무를 어떻게 정의하는가'가 직무 노트의 출발점이다. - 일을 처음 배우기 시작할 때 사수 옆에서 시스템을 다루는 방법부터 업무 노하우까지 기록하면서 나중에 잊어버렸을 때 들추어 보는 매뉴얼이 아니다. 직무 노트는 나만의 생각을 정리해 나가는 장이다. 쉽게 말하면 이순신 장군의 ‘난중일기’나 김구 선생님의 ‘백범일지’가 직무 노트와 가까운 개념이지 ‘전투 세부 시행규칙’ 같은 교범이 직무 노트가 아닌 것이다. 간단한 TODO 리스트 말고, 내 생각과 피드백의 기록을 좀 더 체계적으로 해보고싶게 만드는 글이네여!https://brunch.co.kr/@lunarshore/365
자바 개발자가 저지르는 10가지 실수에 대한 내용이네요 jdk 1.5 이후에 문자열에 + 를 사용할때 컴파일하면 append를 붙여주는 식으로 변환해서 효율상 문제가 없는걸로 알고있었는데, 명시적으로 stringbuilder 에 append를 쓰는게 더 좋다는 내용이 눈에 띄었습니다https://towardsdatascience.com/10-things-youre-doing-wrong-in-java-7608e2f050c7
# 제목 The Case for the Reduced Instruction Set Computer # 동기 컴퓨터 구조 수업에서 논문 비평 과제가 올라와서 읽게 되었다. +a 점수 과제라 게으름이 앞선 나는 제출하지 않았지만, 한번 읽어보았다. # 요약 컴퓨터 구조라고 하면 크게 1. ISA(Instruction set architecture), 2. Microarchitecture 3. System Design 세 가지로 볼 수 있다. 그리고 ISA가 바로 우리가 흔히 듣던 x86, x86-64과 같은 것이다. Intel Core i7의 경우, ISA로 IA-32, x86-64를 택한다. 이들은 CISC 설계를 사용하였는데, 최근 RISC-V가 떠오르고 있다. RISC-V란 Reduced Instruction Set Computer의 약자로 오픈 소스이면서, 적고 간단한 명령어 집합으로 설계되어 더 빠르게 실행되고 회로 구성이 간단하다는 장점이 있다. ps. 아 잘 정리하려고 했는데 시간이 부족하다. 댓글로 추가 정리.https://dl.acm.org/doi/abs/10.1145/641914.641917
백엔드가 이정도는 해줘야 함 - 1. 컨텐츠의 동기와 개요 ## 과거 - 직접 jar 빌드, 원격 접속, 껏다 키기 - 물리 서버 한대 (이중화 없음) - 테스트 코드 없음 - 리뷰, issue tracking 없음 - 로그 시스템 없음 - 쌩 string으로 쿼리 위 문제들을 시리즈에서는 하나씩 고쳐나가며 꼭 지켜야할 룰에 대해서 이야기 할 예정. velog 구경하다가 찾게된 시리즈물입니다. 경험을 통해서 자신이 배워야할점을 정확하게 찾아내고 (아니, 현업도 아니고 자기 문제를 어떻게 진단할까요!? 가능한가 그게!?) 그리고 이렇게 기록까지 꼼꼼히 남기다니, 정말 멋진분이네요. 앞으로 며칠동안은 이 블로그 시리즈를 천천히 즐겨볼까 합니다.https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-1.-컨텐츠의-동기와-개요
다양한 문제에 개발력을 활용해보고싶은데요. 흥미로운 글을 발견해서 데려왔습니다. 리걸테크! 판례들을 모두 DB화 하고 SQL 문으로 쿼리하는 솔루션을 만들면 돈 좀 벌 수 있을까요... (부자되고싶다)https://m.post.naver.com/viewer/postView.nhn?volumeNo=17002322&memberNo=3185448
백엔드가 이정도는 해줘야 함 - 2. 버전 관리 시스템과 버전 관리 웹호스팅 서비스 결정 - 버전관리 시스템으로 Git을 채택한 이유 (SVN, Git, Mercurial) - 그 중 Github 을 고른 이유 (Github, GitLab, BitBucket) - GUI로는 GitKraken 을 고른 이유(Github Desktop, SourceTree, GitKraken) 오픈소스들이 대거 Github으로 옮겨가고 사실상 Git이 버전 관리 시스템을 평정하게 되면서 깃헙을 고르는 선택에 이유가 많이 사라진 것 같습니다. 최근 "인간다운 Git"이라는 책을 읽기 시작했는데, 책의 시작은 "솔까말 Git 진짜 이해하기 힘든거임. 난 이해하기를 포기했을 지경임. 그냥 쓰는거임" 이라면서 시작합니다. 그럼에도 불구하고 이렇게 만든 이유를 인간의 입장(?!) 에서 설명할꺼라는데 동숲하느라 못읽고 있네요 ; 전 회사에서 mercurial을 썼었는데 ,성능면에서는 훨씬 좋다고 하더라구요. 특히, 대규모의 사람들이 한 repo에서 일할경우 merge/rebase쪽 효율이 좋아 Git보다 더 나은 성능을 가졌다고 합니다 (만 사람들이 git밖에 몰라서 git-hg cheatsheet로 썼으니 일반 개발자들 사용방법은 완전 동일하게 사용했었습니다) 평소에 너무 당연하게 선택 혹은 일하던것에 why? 를 품어보는 것은 참 어려우면서도 중요한 것 같습니다.https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-2.-버전-관리-시스템과-버전-관리-웹호스팅-서비스-결정
JS By Example: 8 Distinct Uses Of JavaScript Array Slice 자바스크립트로 개발을 하다보면 특히 Array 관련 함수들이 참.. 결이 없다는 느낌을 많이 받게 되는데, 그중 slice 와 관련된 유용한 코드 스니핏 몇가지를 소개한다.https://codeburst.io/js-by-example-8-distinct-uses-of-javascript-array-slice-4e4e95a470e4
며칠 인증을 못했네요. 반성합니다..! https://medium.com/@Baksure/%EB%B2%88%EC%97%AD-%EC%84%B8%EC%83%81%EC%9D%80-%EC%99%9C-css%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%ED%95%84%EC%9A%94%EB%A1%9C-%ED%95%98%EB%8A%94%EA%B0%80-c3465999301b 오늘은 "세상은 왜 CSS 개발자를 필요로 하는가?" 아티클을 읽었습니다. JS개발을 하다가 이후 10년 가까이 CSS 에만 집중해온 개발자가 쓴 글인데, 우리가 쉽게 놓치고 있던 CSS 의 중요성과 CSS 개발자의 여러 타이틀에 대한 글 입니다.empty
함수형 리액트 컴포넌트의 기초에 대해 잘 설명해놓은 블로그입니다 js 알못인 제게 조금 알만하면 바뀌는 환경은 늘 어렵게 느껴졌지만 확실히 점점 더 사용성이 좋아진다라고 느낍니다https://www.daleseo.com/react-hooks-use-effect/
Optional에 대해서 살짝 살펴보다가 오랜만에 브런치에 글을 썼습니다. 구독과 좋아요, 알람 설정까지 부탁드려요 ^0^https://brunch.co.kr/@kd4/153
백엔드가 이정도는 해줘야 함 - 3. 개발 프로세스 정립 - 이슈관리, 작업 진행 상태 등을 볼 수 있는 시스템 필요 - 이슈 관리 도구 : Github issues & projects : 이미 충분하여 외부 도구를 고를 필요가 없음. - 개발 프로세스 - issue 단위의 브랜치에서 PR 를 통해 리뷰받은 코드만 master로 관련 읽을거리 : A successful git branch model http://dogfeet.github.io/articles/2011/a-successful-git-branching-model.html 최근 저희 팀은 develop 브랜치, 그리고 phase (alpha, beta 와 같은 QA시 사용되는 브랜치들)을 없애고 단일 master 브랜치 형태로 그리고 tag를 이용하여 리얼 혹은 각각의 phase 로 관리하기로 했습니다. 가장 큰 이유는 관리할 브랜치가 너무 많고 평소에 develop으로 들어갈때 코드리뷰를 충분히 하고 있기 때문에 그 뒤 master나 alpha등을 나갈때는 merge에 대해 빡빡할 필요가 없어서 였습니다. 이 시리즈를 읽으며 제가 일하고 있는 환경에 대해서 다시 한번 더 생각해 볼 수 있고 좋네요!https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-3.-개발-프로세스-정립
배민 오픈서비스, 혁신, 그리고 내 피같은 세금 요즘 뜨거운 감자, 배민의 수수료 정책에 관한 아티클입니다. 글의 모든 논지에 동감하는건 아니지만, 마지막 이 한 문단에는 꽤나 공감이 되는 부분이 있네요. (복붙이 안되는군요, 대략 세금 만능 공공 만능주의에 관한 이야기) 뭔가, 조금 VCNC의 타다가 생각나기도 하고 IT 업계 종사자로서, 우아한 형제들같은 좋은 기술 기업들이 더 많이 생겼으면 하는 바램인데, 이점에선 아쉬움이 남네요.https://brunch.co.kr/@brunchjqcb/179
스트레스 관리에도 GC가 필요해 오예! 15일 만근! 선물 없나요? ㅎㅎ,,, 생전 안하던 아티클 읽기를 15일 연속으로 하면서 쌓인 스트레스가 있었는데요, 마침 재밌는 글이 있어 공유합니다. Young GC를 많이 많이하고 필요 없는 객체 참조는 없애서 Stop The World를 줄여봅시다.https://brunch.co.kr/@netsgo0319/103
Deploys at Slack https://slack.engineering/deploys-at-slack-cd0d28c61701 (왜 링크 추가가 안될까요) 슬랙의 배포 프로세스에 대해 설명한 글입니다. 슬랙은 하루에 12번의 정기배포를 하는데(가능,,,? 배포만 하다가 하루 다가겄네) master merge 후 stage, dogfood(일종의 사내 테스트?), canary 배포를 하고 퍼센트 별 production 배포를 하는 과정을 거친다고 합니다. 그 외에도 빠른 배포, 원자성, 신뢰성을 위한 이야기도 짧게 있으니 참고해보세요.empty
The death of data-scientists 라는 글을 번역한 글인데 꽤 재밌습니다. 데이터 분석 작업에 필요한 개별 워크플로우가 자동화되고, 점점 데이터 프로덕트들이 등장하면서 데이터 사이언티스트의 기술적 속성은 옅어지는 방향으로 진화할 것이라 예측하는데요. 대신 데이터 사이언티스트들의 롤은 단순 분석, 예측을 뛰어넘어 데이터를 통한 전략적 의사결정을 하는 방향으로 나아갈것이라고 얘기합니다. 이 글은 해당 계정의 첫 글인데 데이터 프로덕트에 대한 심도있는 얘기가 앞으로도 연재될 것 같아 기대되네요.https://brunch.co.kr/@dataproduct/4
슬랙 백엔드 엔지니어의 일상 A Day in the Life of a Backend Product Engineer at Slack https://slack.engineering/a-day-in-the-life-of-a-backend-product-engineer-at-slack-e786a8a08fc4 아침에 일어나서 알림을 확인하고 9시 30분에 출근해서 간단한 업무를 보고 데일리 미팅을 가진 후 점심식사, 오후에는 개발에 집중하는 시간을 갖지만 신규 기능 개발과 유지보수의 균형을 위해 고민하는 모습까지 우리의 모습과 비슷하네요. (근데 6시 퇴근 하시냄ㅎ) 마지막에 문제를 해결하거나 좋은 코드를 작성하는 것을 좋아하지만, 자신을 가장 즐겁게 만드는 것은 동료 그리고 협업이라는 이야기(의역 만땅)를 보며 요즘 제 모습을 돌이켜보게 되네요. 또한, 글 마지막에 작성자에 대한 소개가 있는데, “She double majored...” 라는 문장을 보며 저도 모르게 갖고있던 직업에 대한 성 역할 고정관념을 생각해보는 계기가 되었습니다. 글을 읽으면서 당연하게 남성 개발자를 상상하고 있었거든요,,,empty
UA가 가고 Client Hints가 온다 보안상 이슈로 UA 대신 Client Hints가 도입될 것이라는 전망인데요. 클라이언트 분석이 조금 더 어려워질 것 같네요...https://amati.io/bye-user-agent-hello-client-hints/
How to Use Debounce and Throttle in JavaScript 프론트 개발할 때, 자주 사용하는 고차함수인 Debounce 와 Throttle 에 관하여 설명한 글입니다. Debounce, Throttle 의 동작 설명과 간단한 구현, 그리고 lodash 의 구현체에 대한 내용을 쉽게 적어두었습니다 ㅎㅎ.https://medium.com/better-programming/how-to-use-debounce-and-throttle-in-javascript-da95dc151f7b
코틀린 로깅에 관한 내용입니다 프로젝트에서 사용해보니 dsl 구문으로 열때 로그가 안쌓이던 문제가 있었네요https://github.com/MicroUtils/kotlin-logging
백엔드가 이정도는 해줘야 함 - 4. API 설계 원칙과 직렬화 포맷 결정 이번에는 API. 특히 HTTP API 설계에 대한 고민(왜 REST 혹은 GraphQL을 선택하지 않았는가), 포맷은 JSON으로 한 이유에 대해서 이야기 하고 있습니다.https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-4.-API-설계-원칙과-직렬화-포맷-결정
백엔드가 이정도는 해줘야 함 - 5. 사용자 인증 방식 결정 사용자 인증 방법 - Authorization 헤더 사용 (request body, query param, Cookie 헤더 등 선택지 중) - 인증은 JWT로 정한 이유 인증 관련은 꼬꼬마개발자때는 생각도 안했던 것 같은데, 이렇게 여러 선택지를 고려하고 그 가운데 상황과 가장 알맞는 선택을 해 나가는것을 보며 정말 많이 배웁니다.https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-5.-사용자-인증-방식-결정
java의 validate annotion 용도에 관한 포스팅입니다 notnull notblank notempty 각각 조금씩 다 다르네요 ㅎㅎhttps://055055.tistory.com/37
ES6 In Depth: 컬렉션 (Collections) 프론트엔드 개발자들이 제일 많이 찾는 시리즈가 뭐냐고 묻는다면, 아마 이 아티클 시리즈들이 꼽히지 않을까 싶은데요. ES6 가 처음 등장했을 때 새로운 스펙들에 대해 친절하고 자세히 설명해둔 시리즈입니다. ES6가 나온지 벌써 몇년이 지났지만 아직도 헷갈리게 만드는 아이들이 Symbol 과 WeakCollection 인데요.. (잘 안써서 그런가..) 또다시 헷갈려 재 방문해 본 김에 WeakCollection 을 소개한 컬랙션에 관한 아티클을 소개해봅니다.http://hacks.mozilla.or.kr/2015/12/es6-in-depth-collections/
https://woowabros.github.io/experience/2018/05/19/build-app-by-react-native.html 배민라이더스앱을 React Native 로 개발한 경험을 공유한 글입니다. 요즘 초초초초초 간단한 앱을 RN 으로 만들어보고있는데 확실히 react 좀 써봤다고 쉽더라구요. (컴포넌트 몇개랑 fetch API 정도로 구성된 코드이긴 하지만..) RN 포스팅이 많지 않은것 같은데 좋은 포스트 찾게되면 앞으로 많이 공유해보겠습니다.empty
git client 뭐 쓰시나요? SourceTree를 많이 사용하실텐데요, 오늘은 tig 라는 CLI 툴을 소개해드립니다. 3~4년 전부터 한번 사용해봐야지~ 했었는데 Git의 이해도가 많이 부족한 것 같아서 오늘부터 제대로 사용해보기로했습니다. tig를 사용했을 때 장점은 - 짧은 시간에 높은 효율로 Git의 본질을 알 수 있다. - 텍스트 기반이기에 원격 접속 환경에서도 로컬과 같이 사용할 수 있다. - 러닝 커브가 상대적으로 낮고 고급 사용자를 위한 커스텀도 제공한다. 로 들 수 있는데요. 저처럼 SourceTree를 통해서만 git을 배운 분들에게 강추합니다 ㅎㅎhttps://ujuc.github.io/2016/02/10/tig-manual/
최신 네트워크 로드 밸런싱 및 프록시소개 2018년 글이지만 L4 / L7 로드밸런서의 차이점과 각각 배치하여 얻는 이점, 기술 현황까지 아주 자세히 기술되어있는 글입니다. 꼼꼼히 읽고 싶은 글이네요..!https://ziwon.github.io/post/modern-network-load-balancing-and-proxying/?fbclid=IwAR3woxgjLLUrcGr7aP3N4hXDeLL_s-Rf-B8y5DiALhWHr2vw850on1kCemI
# 제목 교수님 저는요 # 저자 김찬영 p.s. 학교 과제를 스스로 작성하고 두세번 읽어보았다.https://velog.io/@shinychan95/에세이-과제-교수님-저는요
프론트엔드와 백엔드가 소통하는 엔드포인트, Restful API Restful API 를 쉽고 꼼꼼하게 설명해주신 글입니다. 페북이며, 채팅방이며 한동안 많이 보였던 글이라 읽어보았어요. '뭐든지 원조가 중요하니 PATCH 메소드를 처음으로 정의해놓은 RFC-5789 문서를 한번 까보도록 하자.' 는 필자의 적극성이 맘에 쏙드는 글입니다. 필자는 개인적으로 가장 좋은 API는 기능이 많은 API도 아니고 공짜로 사용할 수 있는 API도 아닌, 어떠한 정보도 없는 누군가가 구구절절 다른 설명 없이 엔드포인트만 봐도 어떤 동작을 하는 API인지 바로 이해할 수 있을 정도로 명확한 API가 가장 좋은 API라고 생각한다.https://evan-moon.github.io/2020/04/07/about-restful-api/index.html
괴물 같은 앱이 나왔다고 합니다. 모든 업무 도구를 ⌘-E 눌러서 로컬에서 검색하게 해주는 맥용 앱(윈도우 지원예정) 각 서비스에 API로 접속하고, 로컬에서 인덱싱 설치 후 잠깐 써봤는데 좋은데,,, 너무 자연스럽게 연동되고 검색되니 무섭네요...https://getcommande.com/beta/
kotlin + jpa(hibernate) 를 사용할 때 entity를 어떻게 구성하는지에 대한 포스팅입니다 data class를 지양하라는 내용과 양방향 바인딩에서의 상호참조를 어떻게 해결하는지에 대한 내용을 담고 있네요 아 임플란트때문에 이가 너무 아파서 정신을 못차리겠습니다 으악https://kotlinexpertise.com/hibernate-with-kotlin-spring-boot/
백엔드가 이정도는 해줘야 함 - 6. API 스펙 설계와 문서화 방식 결정 - (1) API 설계 방법 Method와 URL을 적절하게 사용함으로써 API 모양 설계하는 방법 내용 중 흥미로웠던건 PATCH /board/posts/{post_id} : 게시글 수정 API 였는데요. 일단 제 머리속에 젤 먼저 떠오른건 put이여서 잠깐 구글링을 하니 이 외에도 PATCH 라는 HTTP Method에도 주목하시기 바랍니다. PUT이 해당 자원의 전체를 교체하는 의미를 지니는 대신, PATCH는 일부를 변경한다는 의미를 지니기 때문에 최근 update 이벤트에서 PUT보다 더 의미적으로 적합하다고 평가받고 있습니다. Rails도 4.0부터 PATCH가 update 이벤트의 기본 Method로 사용될 것이라 예고하고 있습니다. 라고 하네요. #TIL !https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-6.-API-스펙-설계와-문서화-방식-결정-1
백엔드가 이정도는 해줘야 함 - 6. API 스펙 설계와 문서화 방식 결정 - (2) API 문서화 선택 관련 글입니다 - 선택지 : 엑셀, swagger, ReDoc, Slate ,Gitbook - 버전 관리가 가능하며, 최대한 관리 포인트를 늘리지 않은 Gitbook을 사용 개인적으로는 api 문서를 따로 작성하는건 구찮아서....ㅜ 자동으로 generate 되며 description을 추가 하는 방법을 좋아하는데요. Gitbook을 사용하게 되면 반복되는 클래스 모양을 (뭐 예를 들어 request, response와 같은) 을 계속 복붙해야 하는거 아닌지 생각이 드네요.https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-6.-API-스펙-설계와-문서화-방식-결정-2
깃 브랜칭을 배워봅시다. ㅎㅎ 아티클은 아니지만 신박하고 귀여운 페이지를 발견해 공유합니다 ㅎ.ㅎ 코로나로 집에만 박혀있는 요즘.. 심심하실때 한번https://pcottle.github.io/learnGitBranching/index.html?demo
무엇을 모니터링할 것인가? 거의 인프라팀이 제공하는 모니터링 장비나 기본 세팅에 맡겨두고 모니터링을 하게되는데, 작성자 분이 각 레이어별로 어떤 것을 모니터링 하는지 노하우가 잘 담겨 있습니다.https://andromedarabbit.net/%eb%ac%b4%ec%97%87%ec%9d%84-%eb%aa%a8%eb%8b%88%ed%84%b0%eb%a7%81%ed%95%a0-%ea%b2%83%ec%9d%b8%ea%b0%80/
NHN 기술 블로그 Redis 시리즈입니다. DB 팀에서 쓴 글 같은데 서비스 사례와 엮으면서 글을 풀어나가네요. 단순히 Key-value Store로만 사용했었는데 커맨드, 자료구조 별 사용 사례를 눈에 담아두면 유용할 것 같습니다!https://meetup.toast.com/posts/224
판데믹을 통제할 카드, 블루투스 기반 접촉자 추적 얼마 전에 치즈가 올려주신 아티클에서 봤던 싱가폴 앱을 기억하시나요? 그 앱도 OS 보안 정책 상 한계가 있어서 어려움이 많았다고 하던데요. Apple과 Google이 이런 종류의 앱을 쉽게 만들 수 있도록 API를 제공한다고합니다. 두 회사가 초월적인 협력을 하는 것 같아 약간 감동적이네요(?) 실제로 이 API를 사용하는 앱이 출시되기까지 시간이 좀 걸릴 것 같지만 그래도 희망적이네요!https://blog.google/inside-google/company-announcements/apple-and-google-partner-covid-19-contact-tracing-technology/
백엔드가 이정도는 해줘야 함 - 7. 어플리케이션 기술스택 결정과 Hello World 서버 작성 언어 선택 - Python, Scala, Java, Go, Nodejs 이 중 Python 프레임워크 - Flask, Sanic, Vibora, Japronto, Falson, AioHTTP, Tornado, Django 이 중 sanic Nodejs 를 러닝커브가 많은 편이라고 생각한 부분이 흥미로웠고 (물론 진입장벽이 낮고 들어갈수록 어려워 지는 것은 당연한거지만, 다른 언어 대비, 많은 사람들과 협업시 러닝커브가 크지 않을 거라 생각하는 편이였거든요.) 어떠한 서비스를 생각하기에 처리량을 늘릴수 있는 Sanic을 택했는지가 궁금하네요. (크게 처리량이나 트래픽을 많이 생각안한다면 라이브러리나 생태계가 풍부한 Django가 좋을 거라 생각이 들었거든요) 저의 경우에 (거의 무조건) 팀 혹은 회사에서 러닝커브 혹은 여러명과 협업했을 때 어렵지 않은지를 가장 많이 생각하는데요. 이렇게나 다양한 방면(러닝커브, 생태계, 퍼포먼스 등등) 에서 고민했다는 점에서도 아주 훌륭한 글인것 같습니다.https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-7.-어플리케이션-기술스택-결정과-Hello-World-서버-작성
백엔드가 이정도는 해줘야 함 - 8. 의존성 관리 도구 결정 pip + virtualenv 가 합쳐진 pipenv 를 쓰게된 배경에 대한 글 입니다. 의존성 관리툴은 그냥 남들이 젤 많이 쓰는 것을 택했던 것 같은데, 최근 deno가 뜨면서 다시 한번 생각해보게 되는 것 같습니다. 아직 써보지는 못했지만, 보안 문제와 의존성 모듈의 사이즈 문제, 복잡성 등 영리하게 잘 풀어나가고 있는 것 같습니다.https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-8.-의존성-관리-도구-결정
Spring WebFlux는 어떻게 적은 리소스로 많은 트래픽을 감당할까? 알아도 모른 척, 몰라도 아는 척하기 좋은 주제입니다. Synchronous non-blocking I/O 와 Asynchronous non-blocking I/O는 뭐가 다를까요? Event Driven 방식은 어떻게 동작하는걸까요? 마지막으로 WebFlux 는 왜 빠를까요?https://devahea.github.io/2019/04/21/Spring-WebFlux%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%A0%81%EC%9D%80-%EB%A6%AC%EC%86%8C%EC%8A%A4%EB%A1%9C-%EB%A7%8E%EC%9D%80-%ED%8A%B8%EB%9E%98%ED%94%BD%EC%9D%84-%EA%B0%90%EB%8B%B9%ED%95%A0%EA%B9%8C/
백엔드가 이정도는 해줘야 함 - 9. Compute Engine 결정과 Hello World 서버 배포 AWS + Lambda를 선택한 이유 (+ zappa framework for serverless) - 러닝 커브가 낮고, 레퍼런스가 많음. - 람다의 무료 리밋 가격 메리트와 auto scaling에서 휴먼 리소스를 많이 줄일 수 있음 그리고 향후 ECS + Fargate 마이그레이션에 대한 계획까지 공유하고 있습니다. - 도커 오케스트레이션 서비스 + 서버리스 컨테이너 엔진 현실 판단과 선택에 대한 이유들을 보며 정말 감탄을 안할수 없네요. 또 serverless를 쓴다니 어떠한 서비스를 생각하고 있는지가 더 궁금하네요! 개인적으로는 azure function으로 서버리스를 개인용으로 썼었는데 콜드스타트때문에 (트래픽이 저 뿐이라...) 음?! 스러웠는데 (물론 이 것도 해결 방법이 있지만 개인용이여서 상관 없었..) 서버리스를 파워풀하게 써본적이 없어서 뒷 이야기가 더 궁금해지네요!https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-9.-Compute-Engine-결정과-Hello-World-서버-배포
Redis 사용법 다시 Redis 활용 사례에 대한 내용인데요, 좋아요 처리 관련해서 저희와 다른 방식을 쓰고 있는데 흥미롭네요! Look Aside 방식으로 댓글 목록을 관리하는데 너무 자주 Flush되서 문제인데, Redis Set을 이용하면 캐시 효율을 더 높일 수 있을 것 같습니다 ㅎhttps://meetup.toast.com/posts/225
github action 을 사용하여 디스코드나 슬랙으로 알림을 받아보는 구독 스크립트를 개발한 내용입니다. 저도 매일 아침마다 읽는 내용들이 있는데 저만의 구독 봇을 하나 만들어봐야겠어용. https://velog.io/@jwn4492/Github-Action%EC%9C%BC%EB%A1%9C-%EB%A7%A4%EC%9D%BC%EB%A7%88%EB%8B%A4-%EB%B8%8C%EB%A6%AC%ED%95%91-%EB%B0%9B%EA%B8%B0empty
[GCP]GKE 차근 차근 알아보기 3탄 — GCP 서비스 연결 해보기 요즘 친구들과 하고 있는 사이드프로젝트에서 GKE 를 사용중인데요. 그 과정에서 많은 도움을 받았던 아티클을 소개해봅니다 ㅎㅎ. 한국어로 사진과 함께 차근히, 친절히 설명해주는 좋은 글입니다https://medium.com/@jwlee98/gcp-gke-%EC%B0%A8%EA%B7%BC-%EC%B0%A8%EA%B7%BC-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0-3%ED%83%84-gcp-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%97%B0%EA%B2%B0-%ED%95%B4%EB%B3%B4%EA%B8%B0-ae608b1b4338
백엔드가 이정도는 해줘야 함 - 10. 데이터베이스 선정과 인스턴스 시작 RDB(Mysql)를 선택한 이유와 AWS 내에서 어떠한 호스팅 서비스(RDS) 를 선택하게 되었는지에 대한 이야기 입니다. 내용을 보며 본인에게 익숙한 기술셋 보다 지금 현 팀과 서비스에 맞는 기술셋을 택하는건 당연하면서도 어려운 결정이 아닌가 싶다는 생각이 들었습니다. (이게 안되는 순간 라떼가 되는거겠죠?)https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-10.-데이터베이스-선정과-인스턴스-시작
리디북스 서비스 장애 복구 후기 IDC 장애로 날아간 서버들을 복구하는 과정에서 웜업, replication lag 등의 문제를 파악하는 과정을 보여줍니다. 글 말미에 잠깐 언급하는 넷플릭스의 카오스 몽키, 흥미롭네요http://www.ridicorp.com/blog/2016/09/02/idc-outage/
Why you should not remove all the elements of array by reassigning it to [] 자바스크립트에서 배열을 지울때 a = [] 로 재할당해도 이전에 복사해두었던 복사본은 남아있으니 a.length = 0;a.splice(0, a.length); 를 통해 배열을 삭제하라는 내용입니다. 하지만 역시, 변수의 스코프는 필요한 만큼만, 최대한 작게, 불필요한 복사본을 만들지 않는게 더 좋겠죠 ㅎㅎhttps://medium.com/javascript-in-plain-english/why-you-should-not-use-array-to-remove-all-the-elements-of-array-42ad2951d47e
# 읽은 글들 [정덕현 칼럼] 과연 댓글 창 자체가 문제인가 - 한국일보 (추천글) [사설]카카오 연예뉴스 댓글 폐지, 총체적 포털 개혁 시발점 돼야 - 동아일보 [사설] 카카오의 연예뉴스 댓글 폐지 환영한다 - 국민일보 [사설] ‘다음’ 댓글·연관검색 폐지, 네이버도 동참해야 - 한겨레 [미디어 세상]인터넷 여론조작과 발언의 자유 - 경향신문 (추천글) # 갑자기 연예 뉴스 댓글 폐지에 관심이 간 이유 최근 영어 시간에 online harassment 주제로 대화를 나누다가 연예 뉴스 댓글 폐지에 관한 이야기를 나누게 되었다. 찬반 의견이 오갔지만, 찬성의 의견이 앞섰다. 와중에 나는 이렇게 말했다. "저는 모태신앙이지만 현재 믿음이 없어 교회는 가지 않는 사람입니다. 하지만, 아직까지 종교가 가지는 힘은 크게 믿습니다. 매번 기도 및 성찰을 통해 자신을 돌아보고 생각하게 만드는 힘을 말입니다. 요즈음 주위를 둘러보면 종교에 대한 눈초리가 심상치 않습니다. 저는 인간의 본성이 나쁘다고 생각합니다. 그렇기에 본성을 통제하는 법을 배우고 아는 것이 중요하다 생각합니다. 하지만 주위를 둘러보면 맞다, 틀리다 혹은 좋다, 싫다라 표현하면서 이를 개인의 자유 혹은 표현의 자유라 하는 것을 쉽게 보입니다. 그렇게 강한 기준을 내보이면서 정작 자신의 본질에 대해서는 항상 관대하다는 것이 저에게는 너무나 큰 걱정입니다. 연예 뉴스 댓글 폐지에 대해 저는 크게 환영했습니다. 하지만 한편으로 인간의 본성을 그저 감추는 것이 아닌가하는 생각을 했습니다. 어쩌면 댓글 창 자체는 문제가 없을지도 모릅니다." # 정리 제일 윗 글 마지막 문단이 참 인상깊었다. "그런데 과연 최근 연예계의 안타까운 소식이 댓글 창 자체의 문제 때문인지 한번쯤 고민해봐야 하지 않을까. 사실은 누군가의 사생활까지 파고드는 언론이 더 문제는 아닐까. 댓글 창의 본래 기능은 쌍방향 소통이고, 그것은 권력의 균형 또한 가능하게 하는 것이다. 그러니 댓글 창을 어떻게 본래 기능대로 사용할 수 있게 할 것인가를 고민해야한다. 그 자체를 없애려는 건 일방향적으로 메시지를 던지고픈 기득권자들의 욕망일 수 있으니 말이다." 그리고 마지막 글 이 문단은 내 생각과 참 비슷했다. "증오와 혐오 표현을 없앤 사회는 얼마나 깔끔할까. 그러나 증오의 표상을 청소하듯 없앤다고 해서 증오를 낳는 억압적 현실이 바뀌는 게 아니다. 또한 그 현실에 따른 불행한 정신이 어디로 가지도 않는다. 숨겨진 혐오는 잔인한 생각을 낳고, 억눌린 증오는 치밀한 복수를 예고한다. 이런 감정은 심지어 도덕적 우월감을 강화한다. 과거 권위주의 정권이 사상과 발언의 자유를 탄압했던 일을 생각해 보라." +추가 지식 정도전의 호는 삼봉... 귀엽다 삼봉...empty
백엔드가 이정도는 해줘야 함 - 11. 배포 자동화 배포 자동화가 필요한 이유 - 반복되는 액션에 대한 개선 가능성 발견 - 테스트가 모두 성공하고 나면 -> 빌드 및 업데이트 선택지 - Travis-CI , Circle-CI, "Amazon CodeBuild", CodeDeploy Amazon CodeBuild 사용 - AWS 위에 프로세스를 집합시킴으로 관리포인트를 줄일 수 있는 이점. - private repo 무료, 100분 무료, 가격 저렴 - Code deploy : Canary 배포, Blue/Green 배포 등 지원 Amazon CodeBuild 세팅 방법 밒 웹훅 연결 새 회사에 오면 가장 크게 애먹는 부분이 프로젝트 배포 구축인 것 같습니다. 한번 해놓으면 그 뒤에는 비슷비슷하지만 팀마다, 특히 회사마다 인프라 구성도 다르고 회사 사내 구축된 빌드 시스템이있는 경우에는 또 새로운 것을 배워서 써야하는 러닝커브도 큰 것 같습니다. (...일관된 새로 배우는거 힘들어요 모드...) 안그래도 어제 사내시스템에서만 쓰이는 config 하나를 빼먹어서 계속 원하는데로 배포가 안되어 엄청 애먹었는데, 이게 재택아니고 회사였으면 바로 옆사람한테 슬쩍 물어봤을텐데 ㅠㅠ 다음주에는 출근할 수 있길 바라며 모두 건강하시기 바랍니다 :)https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-11.-배포-자동화
Javascript — Proxy 마찬가지로 ES6에 새롭게 추가된 스펙이죠. 자바스크립의 Proxy에 대해서 잘 설명해둔 글이 있어 공유합니다. Vue가 내부적으로 사용하는 옵저버를 3.0부턴 Proxy로 변경하고 따라서 Proxy를 지원하지 않는 IE 는 더이상 기본지원은 하지 않고 별도의 빌드를 통해서만 지원할 수 있다고 밝혔는데요. IE가 빨리 없어졌으면 좋겠습니다. ;ㅁ;https://towardsdatascience.com/why-to-use-javascript-proxy-5cdc69d943e3
코틀린과 경량화 http 프레임워크인 http4k 를 사용하는 예시에 대해 나와있네요 예전에도 이런게 있었던거같은데 아.. 뭔지 이름을 까먹었어요https://kotlinexpertise.com/kotlin-http4k/
몸이 안좋아서 우울한데 딱 좋은 글이네요 기술글은 아니지만 기술블로그에 있는 영화 추천글입니다! ㅎㅎ 월터 보러가야겠어요https://velog.io/@jkd1/우울할때-꺼내보는-영화들
세상은 왜 CSS개발자를 필요로 하는가? CSS와 웹의 발전 과정을 간단히 소개하고 Bootstrap등 CSS를 제대로 안 배우고 사용하는 방향으로 가고 있다고 설명합니다. 그에 반해 css는 빠른속도로 발전하고 있어서 CSS 전문인력이 필요하다고 주장하네요. 이분은 본인의 Job Title로 CSS Master 로 부른다고 하네요. Admin등의 개발을 해보면 가장 오래걸리는 부분이 html/css 작업 부분이라 항상 어렵고 중요하다고 느끼게 되는 분야내요. 그런데도 우리회사에서는 여전히 자회사등에게 하청처럼 맡기게 되는게 안타깝네요. 어서 빨리 정착해서 html/css 개발자들의 여건과 대우가 나아지고 인원도 많아졌으면 좋겠네요.https://medium.com/@Baksure/%EB%B2%88%EC%97%AD-%EC%84%B8%EC%83%81%EC%9D%80-%EC%99%9C-css%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A5%BC-%ED%95%84%EC%9A%94%EB%A1%9C-%ED%95%98%EB%8A%94%EA%B0%80-c3465999301b
백엔드가 이정도는 해줘야 함 - 12. 어플리케이션 레벨 의사결정 - (1) 어플리케이션 구조 결정과 data validation 룰 그리고 mysql driver 선택에 관한 이야기 입니다. 어플리케이션 구조는 크게 MVC나 DDD를 따르는 방법을 많이 쓰곤 했는데 boilerplate가 이렇게 많은줄 몰랐네요. JVM 계열을 쓸때는 spring 혹은 play와 같은 빵빵한 framwork를 쓰다보니 결정사항이 많지 않은데 (Spring을 쓰면 스프링 계열을 쭈루룩 쓰는게 가장 좋져 역시!!) python을 쓰다보니 여러 결정 사항들이 생기는것 같습니다. 넘나 넓은 Python 생태계!https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-12.-어플리케이션-레벨-의사결정-1
2019년과 이후 JavaScript의 동향 - JavaScript(ECMAScript) 작성된지 꽤 된 글이지만, ES2018~2020 의 피처들은 몰랐던게 많습니다. 새로 추가되는 기능 구문은 Stage4 에 도달해야 기능 명세에 포함되는군요 🤔https://d2.naver.com/helloworld/4007447
배포 전략에 대해 알아봅시다. 저희 팀은 지금 새마을운동시절 Rolling 배포 사용하고 있는데요, 셀 시니어 개발자인 브리또께서 쿠8스 도입을 살펴보면서 배포 방식 개선도 검토하고 계신다고 합니다. 혼나면 안되니 열공하겠습니다.https://jason-lim.tistory.com/3
백엔드가 이정도는 해줘야 함 - 12. 어플리케이션 레벨 의사결정 - (2) 시간 기준(UTC)과 포맷 (ISO 8601 format) 그리고 json 내 데이터 표기 형식(camel_case) 그리고 그 밖에 미리 약속해야하는 룰들을 정리하였다. 지금 혼자서 밑바닥부터 하는 프로젝트가 있는데 재택이 끝나고 나면 회사팀원들과 이렇게 내가 왜 이러한 결정을 했는지에 대해 이야기하는 시간을 가지면 좋겠다라는 생각이 드네요!https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-12.-어플리케이션-레벨-의사결정-2
What Does > /Dev/Null 2>&1 Mean? 간단한 노드 앱을 띄우면서 무의식적으로 'node app.js > /dev/null 2>&1 &' 를 치고 있었습니다. (사실 헷갈려서 history를 뒤졌죠.) 대충 알고 넘어갔던 내용을 되짚어 보았습니다.https://www.xaprb.com/blog/2006/06/06/what-does-devnull-21-mean/
From 48k lines of code to 10—the story of GitHub’s JavaScript SDK github javascript sdk 인 octokit 의 메인테이너 Gregor Martynus 가 깃헙에 입사하고 (...) 10년이 다되가는 48k 라인 짜리 sdk를 리팩토링 하는 과정을 써낸 글이 있어 공유합니다 ㅎㅎ.https://github.blog/2020-04-09-from-48k-lines-of-code-to-10-the-story-of-githubs-javascript-sdk/
개발자 비급 시리즈, 첫 번째 글입니다. 필자는 연봉에 대한 주제로 글을 썼는데 제 눈에는 행복감이란 단어가 많이 들어오네요.http://channy.creation.net/blog/1186
백엔드가 이정도는 해줘야 함 - 13. 웹 어플리케이션 개발 개발 삽질을 뜨기전 작업 프로세스를 정의하는 것에 대한 이야기 입니다. 깃헙 이슈를 중점으로 개발을 진행해 나가기에 이슈를 먼저 따고, 브랜치를 이슈명을 이용해 따고, 마스터 머지. 빌드 웹훅 이용, 프로젝트 보드를 이용한 개발 진행 상태 업데이트 workflow들은 대부분 비슷하게 흘러가는것 같습니다. 여기에 좀 더 추가될 수 있는 부분은 - build/deploy 완료 혹은 실패시 웹훅 (메일, 카톡, 슬랙 등) - 최신 배포된 버전의 태그 혹은 언제인지 볼수 있는 현황판 (여러 phase가 늘어날 수록 중요한 것 같습니다. 예전 팀에서는 bitbar 을 사용했었는데 지금팀용도 하나 만들어볼까 하는 중입니다) 혹시 또 좋은 아이디어들 있으면 알려주세요!https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-13.-웹-어플리케이션-개발
모나드 이해하기 - 함수형 프로그래밍을 공부하다보면 Monad라는 개념을 마주하게됩니다. 그나마 익숙한 Java의 Optional을 통해서 설명해주는데 너무 어렵네요...https://blog.naver.com/2feelus/220822702794
요새 함수형 프로그래밍, 리액티브 프로그래밍에 꽂혀서 한참 헤매고 있습니다. 저희 Spring MVC 프로젝트에서도 일부 API는 Single을 반환하는데요, 이 Single 객체에 대한 Subcribe는 어떻게 처리되는 거지?라는 궁금증에서 시작한 구글링이 점점 산으로 가고 있네요. 어려워요 어려워요. 그래도 재밌습니다. 꾸준히 공부해서 개인 프로젝트 하나 만들어봐야겠어요.https://woowabros.github.io/experience/2019/03/18/tech-toby-reactive.html
백엔드가 이정도는 해줘야 함 - 14. 웹 어플리케이션 개발 과정 회고 지금까지 연재해온 task들을 이슈별로 나열해서 어떠한 작업들을 했는지, 그리고 얼마나 걸렸는지 에 대한 이야기 입니다. 저는 요즘 재택근무를 하며 작업시간이 평소보다 더 오래걸리는 느낌입니다. 우선 딴짓을 많이 하게되고...ㅠㅠ 무엇보다 이게 맞는지에 대한 고민을 정말 오래 하게되는 것 같아요. 이게 최선일까 이것보다 더 나은 방법은 없을까 하다가 투머치 추상화까지 하다가 이렇게 할 필요가 있을까? 라는 고민도 들고 지웠다 다시 썼다를 반복하게 되더라구요. 주변에 그냥 짧게 짧게 이야기할 동료가 어느때보다 많이 그리운 요즘이네요!https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-14.-웹-어플리케이션-개발-과정-회고
UX 디자인처럼 API 디자인하기 좋은 내용 같은데 번역글이라 그런지 부사가 많아서 정신없네요 @_@http://doublem.org/Design-APIs-UX/?fbclid=IwAR0EhEAZH8hjQQD-vML3AJMP6TFzgf_8VN7aNeRrVfEA9tpDDJ8XZlhVv4Y
Strategies for migrating to TypeScript 자바스크립트에서 타입스크립트로 마이그레이션하는 세가지 전략을 소개합니다. 개발을 자바개발자로 시작해서 그런지, 프론트 개발을 할 때 마다 자바스크립트의 약타입이 항상 마음에 걸렸는데요. 팀원들과 Flow, JSDoc, TypeScript 사이에서 한참 고민하다 "우리의 길은 JSDoc 이다" 로 잠정 결론을 짓고 개발을 하고 있지만.. TypeScript 를 학습은 해두어야 할 것 같다는 느낌이 요즘 강하게 드네요 ㅎㅎhttps://2ality.com/2020/04/migrating-to-typescript.html
백엔드가 이정도는 해줘야 함 - 15. 테스트에 대한 이야기와 의사결정 테스트의 필요성과 어떤 라이브러리를 사용하게 되었는지에 대한 이야기 입니다. 테스트의 필요성은 두말할 것도 없지만 바쁠수록 빼먹는게 테스트인것 같습니다. 지금도 그러고 있어서 할말이 없네요 ㅠㅠ TDD는 못하더라도(월급쟁이라면 duedate driven development죠 ㅠ) 뒤늦게라도 꼭 테스트를 추가해 미래의 보험을 드는 습관을 가지려 노력하는 중입니다 ㅠㅠhttps://velog.io/@city7310/백엔드가-이정도는-해줘야-함-15.-테스트를-위한-고민과-의사결정-59jt8m32d4
백엔드가 이정도는 해줘야 함 - 16. 테스트에 대한 고민 - (1) 테스트 구조화에 대한 이야기 입니다. 테스트를 어디까지 구체화 할것인가 ( 단순 API가 아닌 crud가 각각 성공/실패했는지) 하나의 API 에서도 내가 원하는데로 서버에러가 떨어지는지 (404 등) DB는 직접 조회할 것인지. 개인적으로는 CRUD 테스트는 in-memory DB로 하는것을 좋아하는데요. 전에 프레임워크상 이를 이용할수 없어서 테스트 후 롤백 하는 방법을 채택해봤었는데 아무래도 dev라도 디비를 직접 사용하는 거에 대해 의견이 분분하더라구요. 결국 mocking 방법으로 바꿨었는데, 뭐랄까 테스트를 좀 덜 한 느낌이 들었던 기억이 있습니다. 테스트를 어떻게 할까에 대한 것도 오랫동안 토론할 수 있는 존재같습니다.https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-16.-테스트에-대한-고민-테스트-코드-작성-1
Logical Assignment Operator for Stage 3 이번 TC39 밋업에서 'proposal-logical-assignment' 이 스테이지3으로 승격됐네요 ㅎㅎ 제안 PPT 를 공유합니다. 요약 // "Or Or Equals" (or, the Mallet operator :wink:) a
서머타임과 배치작업 서머타임으로 사라지는 1시간, 늘어나는 1시간 때문에 배치가 동시간에 2번돌거나 사라져버리는 이슈에 대해 고민한 글입니다. 쭉 읽어보니 서머타임이 적용되는 1시~3시를 피하는게 최선인 것 같네요(ㅋㅋ) 한국에는 없는 개념인 서머타임과 타임존은 만날때마다 너무 어려운 존재입니다 ㅠㅠhttps://meetup.toast.com/posts/232
새로운 TIL이 추가될때마다 자동으로 첫화면 README에 해당 항목이 추가하는 방법입니다. TIL : Today I Learned TIL 몇 년째 작성하고 있는데, Github Action을 배우는 첫 번째 프로젝트로 딱이네요!http://simonwillison.net/2020/Apr/20/self-rewriting-readme/
바닐라 자바스크립트를 이용한 DOM 조작 가이드북 React, Vue 등 프레임워크를 통한 가상 DOM에만 익숙해져가는데 이런 의도적 수련 좋네요!https://github.com/phuoc-ng/html-dom
Here’s how you can make better use of JavaScript arrays "너의 배열은 안녕하십니까?" 하고 묻는 따봉을 9천개 받은 인기글입니다. - 표현력을 위해 'Array.indexOf' 대신 'Array.includes' 를 - 마찬가지로 'Array.find 대신 'Array.some' 을 - 불필요한 배열을 생성하는걸 막기 위해 'Array.filter' 대신 'Array.find' 를 - 성능을 위해 'Array.filter.map.' 대신 'Array.reduce' 를 사용하라고 가이드합니다. 습관적으로 'filter' 를 남발하진 않았나 반성하게 되네요. 그래도 자바스크립트의 'Array.prototype' 은 좀..https://medium.com/free-code-camp/heres-how-you-can-make-better-use-of-javascript-arrays-3efd6395af3c
타입스크립트에서 Vue Component 개발하기 요즘 프로젝트를 Vue에 타입스크립트를 쓰고 있어 참고하며 읽어봤습니다. 파이썬 하다가 그나마 타입스크립트 쓰니 마음의 평온을 느끼고 있습니다 😌https://blog.shiren.dev/2019-03-28-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C-Vue-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EB%A5%BC-%EA%B0%9C%EB%B0%9C%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95/
CSS 구조화 방법 중 하나인 BEM을 익히기 좋은 사이트를 발견! 공유합니다.https://9elements.com/bem-cheat-sheet/
백엔드가 이정도는 해줘야 함 - 16. 테스트에 대한 고민 - (2) 전편에 이어서 어디까지 테스트할것인가에 대한 고민입니다. 30일차에 제가 덧붙혔던 DB 테스트에 대한 고민도 있습니다. 공유한 아티클에서는 setUp시에 DB create/tearDown에 DB drop을 한다는데 아마도 in-memory 디비를 이야기 하는거겠지요? 유닛테스트를 어디까지 할 것이며 integration을 어디까지 테스트할것인가는 항상 고민인것 같습니다.https://velog.io/@city7310/백엔드가-이정도는-해줘야-함-16.-테스트에-대한-고민-2
spring data 에서 @Transactional을 사용할때 propagation = Propagation.NESTED 의 제한적 용도에 대한 내용입니다 프로젝트에서 JpaTransactionManager를 사용하고 있어서 NESTED 는 결국 사용하지 않고 메소드를 분리하는 방법으로 해결했네요https://docs.spring.io/spring/docs/5.1.4.RELEASE/spring-framework-reference/data-access.html#tx-propagation-nested
RxJS Best Practices 제목이 곧 내용입니다. RxJS 의 Best Practices 에 대해서 소개합니다. 간만에 정말 잘 읽히는 좋은 글입니다. 파트원들에게도 공유해줘야겠어요.. 주요한 내용은 다음과 같습니다. 1. Avoid logic inside the subscribe function 2. Use subjects to force completion 3. Avoid duplicated logic 4. Avoid nesting — use chaining instead 5. Share to avoid stream duplication 6. Don’t expose subjects 7. Use marble diagrams for testing 옵저버헬을 일삼고 cold 와 hot 에 대해 깊이 고민하지 않으며 리액티브의 탈만 쓴 코드를 작성하는 제 모습을 반성하게 되네요. ㅎㅎ 특히 Don’t expose subjects 가 인상적입니다. Use marble diagrams for testing 는 아예 처음 알았네요.https://medium.com/better-programming/rxjs-best-practices-7f559d811514
나의 폭망한 프로젝트 답사기 윤석찬(차니)님이 Daum 시절 한메일 주소록을 개편하던 때 경험입니다. "눈에 잘 안띄는 헤비유저의 사용성을 잘 파악하자."http://channy.creation.net/blog/1313
JavaScript tree shaking, like a pro 프론트 개발하다보면 골머리 썩는 부분중 하나가 번들링 최적화하는 부분인데요. 그 핵심이 되는 tree shaking 에 관해 잘 설명해놓은 글이 있어 소개합니다. ModuleConcatenationPlugin 는 처음 알았네요. 나중에 자세히 살펴봐야겠습니다. 글 중간에 바벨이 importexport 를 트랜스파일링 하지 않게 설정하지 않으면 너가 한 노력들은 말짱 도로묵이다~ 하는 부분이 있어서 깜짝놀라 봤더니 babel 7부터는 기본적으로 es6 가 가능한 환경이면 별도로 트랜스파일링 하지 않도록 되어 있네요 ㅎㅎ 아 물론 저희 서비스를 포함한 대부분의 서비스는.. (눈물)https://medium.com/@bluepnume/javascript-tree-shaking-like-a-pro-7bf96e139eb7
Vim은 도대체 왜 쓰는가 빔 좋아하시나요? 저는 초급단계에서 엉덩이 붙혀버린 케이스인데 이게 연습을 안하니 도저히 실력이 늘지 않더라구요. 파일 혹은 패쓰 왓다갓다는 터미널로 하면서 에디터는 ide를 여니 스위칭이 많아지는것같아 올해는 좀 더 사용량을 늘려보려 노력중입니다. 근데 여전히 그 밖의 장점은 잘 모르겠습니다 🤔https://bengi.kr/1349
오늘만 코딩할 건 아니잖아 한정적인 자원(개발자인 나)를 잘 활용해야(스스로를 코칭 잘해야)한다는 내용으로 크게 4가지 측면으로 자원을 분리하고 관리하고 있는지 이야기 하고 있습니다. - 시력, 체력, 흥미, 집중 저도 요즘 시력과 집중에 문제가 좀 있다라는 생각이 듭니다. 머리가 복잡하다보니 책을 읽을때도 글 전체적으로 글이 들어오지 않아 어렷을때처럼 한문장 한문장 곱씹어보지 않으면 어렵더라구요. 매일 지키고 있지는 못하지만 월-금 아침에는 명상으로 아침을 열려고 노력하고 있습니다. 다들 자원을 효율적으로 사용해서 오랫동안 코딩해봐요!https://velog.io/@snoop2head/self-coaching
폭주하는 트래픽에 무너지는 서비스를 구하기 위한 한 시니어 개발자의 노력이 담긴 글인데요. "슬기로운 개발생활" 드라마로 만들어도 재밌겠네요. (우리만 재밌을수도..)https://javacan.tistory.com/entry/%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B5%AC%ED%95%98%EA%B8%B0-1%EB%B6%80-%EA%B7%B8-%EC%8B%9C%EC%9E%91
메뉴의 ... 윈도우나 맥의 상단 메뉴에서 혹은 우클릭에서 나오는 메뉴에서 “새로운 명령어...” , “가져오기...” 와 같이 말줄임표시에 대한 정리입니다. 이렇게 뒤에 ... 이 있는 경우는 바로 명령이 실행되는 것이 아니라 사용자의 선택을 요청하는 방식이라고 합니다. 오호!https://johngrib.github.io/wiki/three-dots-in-menu/
테크기업 기술면접 제대로 이해하기 개발 유튜버의 따끈따끈한 영상입니다. 테크기업 기술면접 제대로 이해하기가 주제인데요. 결국엔 입코딩이 중요하다라고 합니다. ㅎㅎ 영상에서 승지니어님이 "개발자는 문제를 해결하는 사람"이라고 언급하신 부분이 인상적인데요. 알고리즘 문제를 자주 풀다보면 실무에서도 어떤 문제를 해결하는 스킬이 느는 것 같더라고요. 자주 풀어봐야겠어요. 오늘도 다짐~ 하나 쌓아갑니다.https://www.youtube.com/watch?v=-X1VEUfXHv8&feature=youtu.be
열심히 보다는, 영리하게! 김훈민님이 세운 설계 원칙 세가지. 1. 가장 단순하게 문제를 해결합니다. 2. 확신할 수 없는 일은 고려하지 않습니다. 3. 말하지 말고, 보여주세요. 한번씩 생각해보면 좋을 것 같아 공유합니다 ㅎㅎhttps://coderk.github.io/posts/2019-12-05-33
Stop apologizing for bugs 버그 생성에 대해 사과를 그만해야한다는 이야기 입니다. 버그에 대해 사과하다보면 팀에게 악영향을 주는 문화가 생길수 있고 (버그는 없어야해!! 특히 시니어가 이러한 문화를 만들게 되면 모두가 버그프리한 코드를 만들어야할것같은 압박을 줌) 이러한 실수들은 대부분 우리가 어찌할수 없는 상황(데드라인, 주어진 환경 등) 이기 때문에 개인의 사과가 아니라 그 상황이 고쳐지도록 해야한다고 합니다.http://blog.danslimmon.com/2019/08/02/stop-apologizing-for-bugs/
네이버의 프론트엔드 조직에서 발행하는 FE news 4월호입니다. 유익함이 넘쳐흘러요~https://github.com/naver/fe-news
스프링 배치에서 카프카를 이용하는 경우를 찾다가 발견한 브런치인데 카프카 설치부터 차근차근 설명되어 있는 점이 좋아서 가져와봤습니다https://brunch.co.kr/@springboot/322
당신의 자바스크립트 API 문서는 안녕하신가요? 프론트엔드 맛집 NHN 엔터에서 자바스크립트 API 문서화 도구를 직접 만들기까지의 과정을 설명한 글입니다. 만드는 과정에서 만났던 문제들과 고민들이 느껴져 재밌게 읽었네요 ㅎㅎhttps://meetup.toast.com/posts/208
넷플릭스의 오프닝 건너뛰기에 대해 - 아니 대체 어떻게 한거야? 넷플릭스가 어떻게 오프닝건너뛰기에 관해 예측해보는 아티클입니다. - 사람 (...) - 오디오 인식 : 가장 유력함. 패턴 분석으로 반복되는 구간을 오프닝으로 간주한다. - 머신러닝 : 넷플릭스는 주당 10억 시간 이상의 영상을 처리한다고 합니다. (아니 이게 가능하다고요?) - 스크린 스크래핑 : 여기서 사용되는 실시간 오디오를 찾는게 다음검색의 지금이노래 서비스도 같은 기술인걸로 아는데 변화가 있으려나요? references - https://medium.com/swlh/feature-teardown-netflixs-skip-intro-15cac114a136 - https://medium.com/an-attempt-at-writing/netflixs-skip-intro-feature-how-the-hell-do-they-do-that-7c5db9408f82https://velog.io/@syj9484/aboutskipintro
서비스 구하기 4부, 완결입니다. 몰입감이 장난 아니네요, 손 떨려서 일을 어떻게 했을까요? 판교에서 만나면 화이팅 크게 소리쳐주고싶습니다.https://javacan.tistory.com/entry/%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B5%AC%ED%95%98%EA%B8%B0-4%EB%B6%80-%EA%B7%B8-%EB%81%9D
2020년 4월 개발자가 가장 많이 구매한 책 top100 긴 연휴를 맞이해 그동안 미뤄왔던 기술서적 정독을 해볼까 합니다! 이미 있는 책들을 읽어도 모자를 시간이지만 ㅠㅋ 다른 개발자들은 뭘 보고 있는지, 그리고 오랫동안 사랑받고 있는 책이 무엇인지는 여전히 궁금하네요. 지금 잡고 있는 책은 effective python인데 effective 시리즈를 다 읽은건 아니지만 이펙티브 자바(...) 보다 훨씬 재밌게 구성되어있고 알짜배기 꿀팁이 많아 즐겁게 읽고 있습니다 :)https://www.notion.so/03592f5e463e405ab4737057f41c22b1
초보 개발 팀장의 1년 회고 쏘카 개발 팀장으로 계시는 분의 회고인데요. 책을 읽으면서 얻었던 인사이트를 업무에 녹여내는 모습이 인상적이네요!https://zzsza.github.io/diary/2020/04/26/novice-leader-retrospect/
IT 블로그는 아직 죽지않았다 개발 글이 유통되는 플랫폼에 대한 고찰입니다. 블로그형 서비스 > 페이스북 > 유튜브 > 다시 블로그형 서비스?http://channy.creation.net/blog/1332
Build Service that provides HTTP and gRPC API with Spring (without Proxy) gRPC를 붙히다가 찾고 읽은 실용만점 아티클입니다. grpc를 꽤 오랬동안 안보고 있다가 요즘 보니 grpc-web도 있더라구요. 그래서 오잉?! http/2 가 브라우저에서 되나?! 하고 보니 envoy로 프록시를 두어 통신하는 방법이더라구요. 이 블로그에서는 envoy대신 http endpoint를 제공해서 다른 grpc 서버와 통신하는 방법을 튜토리얼 방식으로 알려줍니다. envoy 대신 http enpoint를 사용한 이유는 auth라던가 더 부가적인 기능들을 붙힐수 있기 때문이라고 합니다.https://medium.com/@thinhda/build-service-that-provides-http-and-grpc-api-with-spring-9e7cff7aa17a
# 함수형 프로그래밍 언어는 어떤 것들이 있을까?!https://medium.com/@jooyunghan/%EC%96%B4%EB%96%A4-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%96%B8%EC%96%B4%EB%93%A4%EC%9D%B4-%ED%95%A8%EC%88%98%ED%98%95%EC%9D%B8%EA%B0%80-fec1e941c47f
버튼 디자인 - UI 컴포넌트 시리즈 부트스트랩에서 버튼 가져다쓰면서 느낌적인 필링으로만 느끼던 디자인을 꼼꼼히 설명해주네요!https://medium.com/guleum/%EB%B2%84%ED%8A%BC-%EB%94%94%EC%9E%90%EC%9D%B8-ui-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-%EC%8B%9C%EB%A6%AC%EC%A6%88-9c5dc20ec802
라이브러리 오류로 수백만 자바스크립트 빌드 실패 is-promise 의 ES6 modules 지원을 위한 export 설정을 변경하여 이를 사용하던 react-create-app 등 700개가 넘는 라이브러리들이 빌드가 실패하는 일이 있었습니다. https://github.com/then/is-promise/compare/2.2.1...2.2.2 유독 js 생태계에서 이런일들이 자주 있는것 같네요ㅎㅎ 줄의 코드를 위해 디펜던시 그래프를 만들어야 하는지에 대한 찬반토론이 활발하네요https://m.zdnet.co.kr/news_view.asp?article_id=20200428120441
Todo list 만들기는 이제 그만! 현실성 없는 Todolist는 이제 그만! 진짜로 real world에서 써먹을 수 있는 example을 만들자는 취지에서 시작된 realworld.io 에 기여한 이야기 입니다. 둘러보니 동일한 스펙 하지만 다양한 언어와 framework로 구현하여 새로운 환경을 배우려하는 사람들에게 찐도움이 될수 있도록 만든 알짜배기 repo네요! 저도 빈틈에 기여해봐야겠네요! (나중에해야징ㅋ)https://woowabros.github.io/experience/2020/04/14/stop-making-todo-list.html
코루틴이란 말, 많이 들었지만 자바로 프로그래밍을 배운 개발자로서 쉽게 이해하기 힘든 개념이예요. 부끄럽지만 동기, 비동기라는 용어도 사실 헷갈립니다.https://jeonghwan-kim.github.io/2016/12/15/coroutine.html
STOP!! You don’t need Microservices. 마이크로 서비스 아키텍처는 기본 아키텍처가 될 수 없다고 이야기합니다. 물론 마이크로 서비스 아키텍처가 좋은 해결 방법이 되는 상황은 존재하지만, 아마 대부분의 애플리케이션은 도리어 마이크로 서비스 아키텍처를 도입함으로 지불해야할 비용이 더 크니, 정말 지금 상황에 마이크로 서비스 아키텍처가 필요한지 환기시키는 글입니다. 개인적으로는 공감이 가는 부분이 꽤 있네요. 비동기/논블럭킹도 비슷한것 같아요. Keep it simple, stupid! 알면서도 늘 어렵네요 ㅎㅎhttps://medium.com/swlh/stop-you-dont-need-microservices-dc732d70b3e0
개발자들은 잘 모르는 하드웨어 이야기 저는 진짜 하드웨어에 엄청 약한 편인데 글을 맛깔나게 써주셨네요! 제가 만져본건 그나마 라즈베리 파이인데그냥 라즈베리파이 호환 장비도 엄청 다양하고 재밌는 하드웨어들이 많더라구요. 나중에 시간이 생기면 이것저것 만져보고 놀고 싶네요.https://velog.io/@jkd1/개발자들은-잘-모르는-하드웨어-이야기-1-도구와-구성요소
Synchronized 블록이 락을 획득하는 단위에 대해서 찾아보다가 "고유락"이란 개념을 알게됐어요 ㅋㅋㅋ 예전에 배웠을 때 봤을텐데.. 왜 처음보는 개념같죠? 프레임워크 위에서만 노니까 synchronized 키워드 같은 자바 기본적인 개념에 대해서는 무지해지는 것 같네요... 이 개념이 잘 정리된 블로그를 찾아서, 다시 정리했습니다!https://brunch.co.kr/@kd4/156
window.location Cheatsheet 제목 그대로 window.location 이 반환하는 Location 객체에 대한 이야기입니다. 부끄럽게도 window.location..assign()이 있는지 처음 알았네요.. 심지어 window.location.href = 와 성능차이가 나는것도 아니라는걸.. window.location.href = 를 사용할때마다 왠지모를 불편한 마음이 들었는데, window.location..assign()를 써야겠습니다.https://dev.to/samanthaming/window-location-cheatsheet-4edl
오늘은 StoryBook 경험기를 읽어보았습니다. (요즘 제가 인증이 너무 뜸했어서 머쓱하네요 😭 다시 화이팅해보려구요,,) Storybook은 UI 컴포넌트 개발을 도와주는 도구인데, 이번에 새로 시작하는 플젝에 사용해보려고 보고 있어요. https://ideveloper2.dev/blog/2020-04-25--storybook-%EC%9E%98-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0/empty
Single Sign On (SSO)의 이해 회사 표준 채널 중 하나로 Slack을 사용하고 있는데요, enterprise로 사용하게 되면 Sign in SAML 이라는 화면을 자주 봅니다. SSO, OAuth는 익숙한데 SAML은 잘 모르겠어서 찾아보다가 읽게된 글입니다. 정리하자면, - SSO는 SAML과 OAuth의 구현체 - SAML은 "인증/권한" 관리를 해주는 XML 기발의 프로토콜 - SSO 기업용에 주로 사용됨 - OAuth는 모바일 플랫폼을 위해 만들어진 JSON 기반의 프로토콜 - "권한부여" 만undefined
[ 뛰어난 개발자의 시그니처 타입을 좇는 것에 대하여 ] 취미는 개발, 특기도 개발 그리고 밥벌이도 개발, 그래서 실력도 넘사벽이 되어버리는 슈퍼 개발자들 그 틈에서 놀고 싶어서 열심히 공부하는 척, 개발을 즐기는 척도 해봤는데요. 솔직히 슈퍼 개발자의 꿈, 접어야겠습니다. 시작부터 틀렸어요... 난 취미로 개발을 시작하지 않았어...ㅠ 덕업 일치는 한 달에 한번 있을까 말까.. 그 와중에 어떤 유튜버의 영상을 우연히 보게 됐어요. 뛰어난 개발자의 시그니처 타입을 좇다가 지친 경험을 말해주는데요, 나만 그런 게 아니구나 하고 위로가 되네요... (근데 이 분 후드티가 뭔가 다음카카오 후드티인 것 같은데,,,) 기술적으로 특출난 개발자가 되는 건 포기하더라도, 개발 덕후는 포기하더라도, 서비스 덕후는 포기하지 않고 수단으로써 개발을 적절히 활용하는 영리한 개발자가 돼야겠어요.https://www.youtube.com/watch?v=z_DgkE6hlT0&feature=youtu.be
We're not smarter than browsers 제목 그대로, 우리는 브라우저보다 똑똑하지 않으니 브라우저의 기본 기능을 잘 활용하라는 아티클입니다. 카페라는 서비스특성상, 컨텐츠 제작자의 저작권을 보호해주기 위해 저희도 우클릭방지, 클립보드 조작에 관한 여러 트릭을 사용하고 있는데요. 브라우저의 기본 동작을 막는것은 많은 사이드이펙트를 불러오고 사용자경험을 해치는데 어느정도 동감합니다. Web의 취지에 맞게 더 유연하고 개방적인 정책을 가져갔으면 싶네요 ㅎㅎ 물론, 이를 위해선 웹 생태계가 더 성숙해져야겠죠. 하하https://remysharp.com/2020/04/29/were-not-smarter-than-browsers#:~:text=We%27re%20not%20smarter%20than%20browsers
10 VS Code extensions I can't code without 없이 못살아 VS Code extension들입니다. 우클릭으로 여러 파일 한번에 코드 포맷팅하는건 정말 최고네요! 저장할때마다 포매팅이 되는게 좋을때가 있지만 가끔 한참 개발중에 포매팅 되면 오히려 깨져버려서 흐름이 끊기고 다 하고 포매팅 다시 하자니 파일 하나하나마다 들어가야 했는데 좋아보이네요!https://dev.to/godcrampy/10-vs-code-extensions-i-can-t-code-without-3ann
Web Performance: Minimising DOM Reflow/Layout Thrashing 프론트엔드 개발에 있어 가장 많이 하는 트러블슈팅이 렌더링 성능 개선일텐데요. 그중에서도 많은 지분을 차지하는 Layout Thrashing 에 관한 내용입니다. 개발자도구의 Performance 탭을 잘 활용해서 성능튜닝을 하시는 고수분들을 보면 감탄밖에 안나오더라구요. 저는 수련이 부족해서 몇일 눈이 빠지게 봐도 잘 모르겠던데.. 그래도 쿼리튜닝하듯, 측정하고, 범인을 찾아서 DOM manipulation 잘 뜯어 고쳐서 빠르게 딱 뜨면 프론트 개발이 그렇게 재밌을수가 없습니다. ㅎㅎ --- 참조한 다른 아티클들도 전부 좋네요 ㅎㅎ https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing#use_flexbox_over_older_layout_models https://csstriggers.com/ https://gist.github.com/paulirish/5d52fb081b3570c81e3a https://github.com/wilsonpage/fastdomhttps://medium.com/better-programming/web-performance-dom-reflow-76ac7c4d2d4f
git push -u origin master -u 옵션에 대한 설명입니다. 중요한 내용인데, 무슨 옵션인지 전혀 모르고 있었네요. 반성하면서 공유해봅니다.https://blog.naver.com/codeitofficial/221946628621
아티클은 아니고 영상이지만 ㅎㅎ 오늘은 SameSite 정책에 관한 영상을 봤습니다. https://youtu.be/Q3YuKipzPbsempty
KAIST 프로그래밍 언어 연구 그룹 소속 홍재민 님께서 작성 및 공개한 프로그래밍 언어에 대한 (매우 양질의) 아티클https://hjaem.info/articles/main
리팩터링에 대한 단상 김훈민님이 리팩터링에 대한 개인적인 생각을 정리한 글입니다. "수치로 증명하기는 어렵다. 그저 설득을 할 수 있을 뿐. 이 지점에서 리팩터링은 정치의 영역과 맞닿아 있다.​" 이 부분이 특히 공감되네요 ㅎㅎ 참 어려운 영역입니다.https://coderk.github.io/posts/2020-05-06-36
개발자를 위한 효율적인 MacOS 백업 방법 오늘은 꿀팁 공유! 평소에 생각해보지 않았는데 프로젝트별, 언어별 캐시 디렉터리를 제거하면 더 효율적으로 백업이 가능하겠네요. 와우https://www.letmecompile.com/%ea%b0%9c%eb%b0%9c%ec%9e%90%eb%a5%bc-%ec%9c%84%ed%95%9c-%ed%9a%a8%ec%9c%a8%ec%a0%81%ec%9d%b8-macos-%eb%b0%b1%ec%97%85-%eb%b0%a9%eb%b2%95/
Spotify, TikTok, and other popular iOS apps were crashing due to a Facebook issue 오늘 아침에 핫했죠. ios facebook sdk 장애로 인해 전세계 수많은 앱들이 실행과 동시에 크래시로 죽어나갔습니다. 저희회사 앱들도 많이 영향을 받은것 같던데.. 어쩌다 이런 일이 발생했는지는 아직 페이스북측에서 포스팅한게 없는것 같네요ㅎㅎ 해당 레포에 재밌는 코멘트가 있어서 같이 가져왔습니다. https://github.com/facebook/facebook-ios-sdk/issues/1374#issuecomment-624942187 "Don't fire the intern! We all make mistakes!!"https://www.theverge.com/2020/5/6/21250023/facebook-sdk-login-spotify-tinder-tiktok-ios-iphone-crash
Docker and OOM(Out Of Memory) Killer 오늘 도커 빌드가 계속 OOMKilled로 실패하다가 찾은 글입니다 ㅠㅠ 제 원인은 이와 다른 것이였지만 docker 커널 내 oom kill의 원리를 조금이나마 (아주조금 ㅠㅠ) 이해할수 있는 글이였습니다!https://blog.2dal.com/2017/03/27/docker-and-oom-killer/
Building Microservices with Kotlin and gRPC 최근에 새로운 프로젝트를 시작하며 gRPC를 도입해보면 어떨까 하는 이야기를 시작하게 되면서 찾아보게된 Kotlin conf 영상입니다. 차근차근히 gPRC 데모 코드와 함께 쓸만한 라이브러리들을 함께 설명해주고 있어서 처음 도입시 도움이 많이 될 수 있는 영상 같습니다. 영상 마지막에는 중요한 이야기도 해줍니다 "Don't use grpc" 지금 하려는 서비스/프로젝트가 크게 코스트에 대한 고려가 필요하지 않다면 (ex. 하루 한명 트래픽....) rest가 더 좋은 초이스 일 것이다 등. 시작하기 전에 왜 grpc를 도입하려는지 잘 생각해보는게 좋을 것 같네요.https://www.youtube.com/watch?v=pCTLu4awGVk
바닐라 아이스크림에 알레르기가 있는 자동차 엥 그건 안될 수가 없는데? 의 현실 세계 버전입니다. 예상 못한 버그를 발견했을 때 부정, 의심, 수긍, 반성의 사이클을 갖게되는데 더 빠르게 수긍과 반성으로 진입할 수 있도록 훈련해야겠어요 500 마일 이메일 문제 https://edykim.com/ko/post/500-mile-email-problem/https://www.clien.net/service/board/park/14924850
나는 프론트엔드를 안다고 말할 수 있을까? 저도 비슷하게 아무것도 몰라요 병에 걸려있습니다. 예전엔 모르는걸 모른다고 얘기할 수 있는게 참 어려웠는데, 어느덧 모른다고 얘기하면 부끄러울 연차가 되어가고 있다는게 무섭네요 ㅎㅎhttps://evan-moon.github.io/2020/03/02/what-is-knowing/
페이스북 리빌딩 이야기 성능을 개선하고 사용성을 높이기 위한 CSS, JS, Data 등 카테고리 별 개편 이야기입니다. 개편 이야기를 담은 글들을 꽤 많이 봤었는데요, 역시 페북. 다양한 인사이트를 얻을 수 있는 양질의 글이네요!https://engineering.fb.com/web/facebook-redesign/
와디즈 SW 인턴의 넋두리 요즘 페북과 트위터에서 핫하길래 읽어본 스타트업 인턴 3개월 후기(회고라고 말하기도 어렵네요) 입니다. 개인적으로는 영양가가 부족한 불량식품 글 같습니다. 물론 적절한 욕과 찰진 말투가 후루룩 읽기 좋지만 업계 전체를 끌어내리는 비방과 다른사람의 노력을 쉽게 깍아내리는 듯한 태도 (기술 블로그를 기술 포르노 사이트, 신입/주니어에게 배운점을 공유하도록 유도하기 등) 등은 일련의 일들이 진짜 이 사람에게 도움이 안된 일이였더라도 분명 다른 사람에게는 보람을 느끼고 성장하는 과정이 되어줄텐데 이 글을 보고 실망하는 사람들이 있을 것 같아 매우 씁쓸했습니다.https://velog.io/@mowinckel/와디즈에서의-SW-3개월-I
가게노출 파트의 조금은 색다른 파일럿 프로젝트, 그리고 첫 업무까지의 이야기 우아한 형제들은 온보딩이 참 맛집인것 같습니다. 이번에도 재밌는 신입 개발자의 온보딩 프로젝트 경험기를 가져와봤습니다. '조직에서 신규 조직원이 왔을 때 어떻게 웰랜딩하도록 도울수 있을것인가?'는 예전부터 해오던 고민이였는데, 좋은 방법인것 같네요 ㅎㅎhttps://woowabros.github.io/experience/2020/04/29/pilot-project-deocks.html
[선배 개발자분들 정말 짜증납니다] 어제 와디즈 인턴글을 보니 10년 전에 OKKY에서 핫 했던 글이 생각나서 옮겨왔습니다. "라뗴는 말이야.." "긍정적이고 발전적으로 생각하자." 이런 생각이 들던데, 이제는 저도 나이가 먹었나봐요,,,http://www.popit.kr/선배-개발자분들-정말-짜증납니다에-대한-선배의-답/
Machine learning system design pattern ML의 꽃은 역시 현실화가 아닌가 싶습니다. 일반 서비스 시스템과 비슷하면서도 ml의 인퍼런스라던가 지속적 학습 데이터를 부어주는 방법이 진짜 비지니스화에서 중요한 부분이지만, 여전히 커가고 있는 분야인 만큼 각개전투를 하고 있는게 현실인것 같습니다. 일본의 중고마켓 서비스로 유명한 mercari에서 머신러닝을 어떻게 비지니스모델에 녹여내고 있는지 패턴별로 pros and cons를 잘 정리해주었습니다.https://mercari.github.io/ml-system-design-pattern/
개발하기 싫을 때 노트북 앞에 앉는 법 개발을 생업으로 하니 사실 개발하기 싫어도 노트북 앞에 앉을 수 밖에 없다는 것은 정말 다행인것 같습니다. (불행인걸까요?ㅋ) 최근 많은 부분에서 버벅이고 헤매면서 개발이 내 업이 맞는걸까 라는 아주 오래전에 했던 고민들을 최근에 다시하게 되었습니다. 주변 다른 사무직 회사원 친구들은 자기 인생을 즐겨가며 회사일 대충해! 라고 말하지만 공부를 하지 않으면 회사일을 대충조차 할 수 없는 이 직업이 정말 괜찮은 걸까? 지금도 가끔 벅찬데 내 능력이 안따라가면 어쩌나 라는 불안감이 여전히 불쑥 찾아오곤 합니다.누구나 다들 하는 고민이라 하니 시간이 해결해 주리라 믿고 기다리기에는 생각대로 일이 진행이 되지 않을 때, 특히 주변의 사람들은 성장해 가고 있고, 유투버들은 하루를 알차게 살아가고 있는데 나 혼자 도태되고 있는건 아닐까 하는 초조함은 어쩔수 없나 봅니다.https://velog.io/@sineunju/개발하기-싫을-때-노트북-앞에-앉는-법
뉴욕타임스가 건강한 댓글 공간을 AI와 만들어가는 방식 - Jigsaw라는 업체에서 Perspective라는 머신러닝 서비스를 이용해서 댓글관리를 한다. (perspective link) - Perspective는 댓글을 ‘유해’, ‘스팸’, ‘음란’ 3가지로 분류를 하고 각각의 정도에 따라 점수를 부여한다. - 댓글을 관장하는 커뮤니티 데스크를 운영하며, 저널리즘 훈련을 받은 15명이 근무 중이다. - 커뮤니티 데스크는 Perspective의 분류를 참고해서 댓글을 관리한다. 셀 아지트에 올라온 아티클이 흥미로워서 가져왔습니다. "머신러닝을 신뢰할 수 없으면 적당히 이용만 해라." 를 가장 잘 적용한 서비스가 아닐까 싶어요.https://www.mediagotosa.com/nyuyogtaimseuga-geonganghan-daesgeul-gongganeul-aiwa-mandeuleoganeun-bangsig/
Javascript ES6 — Iterables and Iterators 많은 사람들이 "자바스크립트는 근본이 없어!" 라고 외치는 부분중 컬렉션이 많은 비중을 차지하는데요. ES6에 "Iterables and Iterators" 는 결이 없던 '순회' 에 관한 부분을 추상화하여 잘 정리했다고 할 수 있겠습니다. 개인적으로는 덕분에, 자바스크립트에서 보다 깔끔하게 컬렉션 중심의 프로그래밍이 가능해졌다고 생각합니다. 제너레이터도 그렇구요. 이 "Iterables and Iterators" 를 다룬 짧은 글이 있어 소개합니다 :Dhttps://towardsdatascience.com/javascript-es6-iterables-and-iterators-de18b54f4d4
HikariCP Maximum Pool Size 설정 시, 고려해야할 부분 자바 혹은 코틀린 하면 Spring, 그리고 Spring-boot 그리고 spring에서 제공하는 data-starter 이렇게 하다보면 이제는 기본적으로 HikariCP를 만나게 되는데요. 사실 그냥 거의 default로만 사용하고 큰 고민 안하고쓰다가 최근에 갑자기 connection 풀이 미친듯이 올라가서 찾아보게된 글입니다. 짧게 요약하자면 connection의 수를 thread 갯수와 상관있으며 이 수가 맞지 않으면 데드락 상태에 빠져 장애에 이를수 있다는 이야기 입니다. 실제 hikaricp 내부에서 transaction 중 connection을 어떻게 가져오고 반환하는지를 자세히 다루고 있어 완전 유용하고 재밌게 읽었습니다. 결론은 pool size = Tn x (Cm - 1) + 1 라고 합니다 :)https://jaehun2841.github.io/2020/01/27/2020-01-27-hikaricp-maximum-pool-size-tuning/
Conditional JavaScript for Experts Truthy 와 Falsy, Short-Circuiting 등 js 에서 조건문을 작성할 때 알아두면 유용한 팁들을 정리해둔 아티클입니다. 기본적인 내용이지만 정리가 잘 되어 있어서, js 를 처음 공부하는 친구들에게 소개해주면 좋을 글이네요 ㅎㅎhttps://medium.com/hackernoon/conditional-javascript-for-experts-d2aa456ef67c
자바 직렬화, 그것이 알고싶다. 시스템들끼리 데이터를 주고 받기 위해 사용하는 자바 직렬화, JSON 등 다른 선택지가 많아서 제대로 사용해 본 적이 없었는데요. 어떤 경우에 사용해야하는 지 궁금해서 찾아봤습니다. 결론은 "자바 시스템끼리 간단하게 자료를 교환할 때 사용해라" - 외부 저장소로 저장되는 데이터는 짧은 만료시간의 데이터를 제외하고 자바 직렬화를 사용을 지양합니다. - 역직렬화시 반드시 예외가 생긴다는 것을 생각하고 개발합니다. - 자주 변경되는 비즈니스적인 데이터를 자바 직렬화을 사용하지 않습니다. - 긴 만료 시간을 가지는 데이터는 JSON 등 다른 포맷을 사용하여 저장합니다.https://woowabros.github.io/experience/2017/10/17/java-serialize.html
에어비앤비 인력 감축 공지 에어비앤비가 결국 인력 감축에 들어갑니다. 이 내용을 알리는 대표의 글이 인상적이네요. 왜 이런 결정을 내려야 했는지, 회사 입장을 충분히 이해할 수 있게 자세한 설명이 들어가있고 퇴사자를 위한 사려 깊은 배려도 보입니다.https://www.airbnb.co.kr/resources/hosting-homes/a/may-5-an-important-update-from-airbnb-188?src_section=220019&c=.pi80.pkb21uaS8xLzM5OTk1&euid=426905bf-5395-f575-8830-a7241b8189a1&fbclid=IwAR31fukJDVoeolRpUxng7SVT_4tcdmW0-2qYwt9R-MSza9VEsY1iOBVivcI
카프카의 토픽 파티셔닝 관련 내용입니다 제대로 써보는건 이번이 처음인데 생소하네요 카프카는 거꾸로 해도 카프카https://blog.newrelic.com/engineering/effective-strategies-kafka-topic-partitioning/
팀 문화의 탄생 우아한 형제들 상품시스템팀의 개발문화를 소개하는 아티클입니다. 개발문화를 만들어가는 중심에 Keep, Problem, Try 가 있고, 이를 통해 짱짱 멋진 개발문화를 만들고있어 하고 자랑하는 글입니다. 저희파트도 좋은 개발문화를 가지고 있다고 만나는 사람마다 자랑하고 다니는데, 역시 좋은 개발문화의 첫 걸음은 좋은 사람들이겠지요https://woowabros.github.io/experience/2020/05/13/birth-of-team-culture.html
왜 자바에서 final 멤버 변수는 관례적으로 static을 붙일까? (정말 오랜만이네요,,, 벌써 50일이 넘었다니,,,) 오늘도 무심히 private static final ... 을 치다가 가져와봤습니다.https://djkeh.github.io/articles/Why-should-final-member-variables-be-conventionally-static-in-Java-kor/
학습 안티 패턴 1. '나는 안돼'라고 생각한다 2. 연습에 포인트가 없다 3. 배움보다는 잿밥이 먼저다 4. 학습보다는 학습 자료 수집에 열중한다 5. 투여한 시간(매몰 비용)에 따른 보상을 바란다 6. 타인의 인정을 바란다 많이 뜨끔하게 되네요 ㅠㅠhttps://sungkukpark.github.io/tir_learning_anti_patterns/
글자수를 세는 7가지 방법 뉴스 댓글에서도 이모지를 넣었을 때 댓글 카운팅이 이상하게 되던 현상이 있었는데요. 우리가 자주 사용하는 UTF-8 인코딩으로는 글자 수를 정확하게 카운팅하기 힘들다고합니다. 여러분 버그 조심하세요~~https://engineering.linecorp.com/ko/blog/the-7-ways-of-counting-characters/
spring kafka integration test 를 하는 방법에 대해 다룬 블로그입니다 배치에서 step 단위로 테스트를 잡기 어려워서 카프카만 별도로 돌리려다 보니 여기까지 찾아보게됐네요 ㅠㅠhttps://medium.com/trendyol-tech/how-to-integration-test-on-spring-kafka-producer-cb9d1caf0795
Coming to Chrome: a new way to use tabs 세상에는 두가지 타입의 사람이 있다고 합니다. 탭 몇개만 쓰는 사람과 탭 수집가. 저는 탭 수집가입니다... 뭐가 무슨탭인지 모를때까지 쓰다가 컴퓨터가 살려달라고 이륙하면 크롬을 전체 껏다 켜야하는...그런 유저인데요. 크롬 베타에서는 탭을 그룹화할수 있는 기능이 생겼습니다. 꼭 그룹화 하지 않더라도 색과 태그를 줄수 있어서 끄지 말아야할 중요한 탭들을 구분하기 좋을것 같습니다.https://blog.google/products/chrome/manage-tabs-with-google-chrome/
HTTPS 전환 후 서버 메모리는 안녕한가요? 얼마전 새로 배포한 컴포넌트의 서버군이 메모리가 심상치않게 차오르고 있어 유심히 지켜보고 있는데요, 원인을 찾는 와중에 팀장님이 던져주신 글이 있어 공유해봅니다ㅎㅎ. "프로세스가 사용하는 메모리의 양보다 더 많은 양의 메모리가 사용된다면 Slab 메모리의 사용 상태를 살펴보는 것도 메모리 누수를 해결하는 방법이 될 것 같다. 어떤 문제가 발생했을 때 눈에 보이는 부분만 문제로 인식하고 해결하려고 하는 경우가 종종 있다. 하지만 근본 원인을 찾아서 해결하지 않으면 같은 문제가 다시 발생하거나 또 다른 문제가 발생할 수 있다. 근본 원인을 찾아서 해결하는 습관을 가지는 것이 좋겠다." 아, 물론 아직 원인은 못찾았습니다.. 주륵https://d2.naver.com/helloworld/8842776
서머타임과 배치작업 서머타임, 한국에는 없는 문화라서 전혀 생각해보지 않았는데요. 서머타임이 있는 국가에 배치작업을 해야할 때 주의해야 할 포인트들이 있더라고요, 우리나라에서 개발한다면 신경쓰지 않을 문제지만 배치 작업 자체에 주의점들도 있어서 가져왔습니다 :Dhttps://meetup.toast.com/posts/232
Vue Plugins You Don’t Know You May Need 두가지의 유용한 플러그인 "Vue-Dummy", "Vue.ImagesLoaded" 에 대하여 소개하는 글입니다. 특히 Vue-Dummy는 프로토타이핑할때 유용하겠네요 ㅎㅎ 토이프로젝트 할때 '아 이런거 있으면 좋겠는데' 싶었는데, 역시 사람생각은 비슷하군요. 그나저나, 요즘 Medium Daily Digest 품질이 점점 안좋아지는것 같은 느낌이 드네요. 예전엔 기가막히게 갔다줘서 항상 감탄하면서 회사에서 "저희도 추천글을 이렇게 쏴줘야해요" 했던것 같은데..https://medium.com/swlh/vue-plugins-you-dont-know-you-may-need-573902dfdbae
Learn Deno : Chat app Deno 1.0이 나오고 이제 슬슬 준비하는 분위기 입니다. 가볍게 따라해 볼만한 tutorial들이 올라오고 있습니다. 과연 node 세계에 얼마나 큰 파장을 가지고 올지 기대가 됩니다!https://dev.to/aralroca/learn-deno-chat-app-37f0
backend-roadmap 꾸준히 업데이트가 잘 되고 있는 developer roadmap 입니다. 내가 이 길을 잘 가고 있는지 가끔 체크인 할 때 필요한것 같습니다. 최근 add된건 gRPC인데 최근에 도입 준비만 하고 다른 일정으로 밀리고 있는데 얼른 도입해서 제 커리어에 한 줄 도입해야겠네요.https://github.com/kamranahmedse/developer-roadmap
KISS ( Keep It Simple Stupid ) 어제 치즈가 올려주신 개발자 로드맵의 디자인 패턴 항목이 있었는데요, 거기에 KISS, YANGI 라는게 있더라고요? 뭔지 몰라서 검색해봤습니다. KISS ( Keep It Simple Stupid ) - 단순하게 유지해라. 어려운 객체 지향 개념, 디자인 패턴을 억지로 넣는 것보다 단순하게 개발하는게 더 낫다. YANGI ( You are not gonna need it ) - 진짜 필요한 것만 구현한다. 미래를 예측하지 않는다. 미래 따위는 생각하지 않는 현재주의 개발자로서 굉장히 마음에 드는 패턴 이름이네요 ㅎㅎ '모든 패턴은 적절히 활용해라' 중용의 미덕이 여기서,,,https://kksem.tistory.com/21
[ 당신이 예상치 못한 HTTP 헤더 ] HTTP 헤더로 하는 구인! 재밌네요 :D 우리도 심어봐야지...https://frenxi.com/http-headers-you-dont-expect/
Webinar - Getting started with the serverless framework docker , K8S도 아직 잘 모르겟는데 세상은 벌써 serverless로 넘어가고 있는것 같습니다. 인프라에 약한 저로써는 사실 ㅎㅎ insfrastructure as a code 세상이 좋기도 하면서 어떻게 변해갈지 흥미진진합니다. 보기에는 만능에 편해보이는데 실제 production으로 넘어갓을때는 어떠할지 많이 궁금합니다.https://www.youtube.com/watch?v=LXB2Nv9ygQc&feature=youtu.be
[ 프로젝트가 장난이야?! ] 토이 프로젝트에 대한 글입니다. 작년부터 토이 프로젝트 해보자, 해보자, 했었는데 아직 한번도 못했네요... 이 글을 보니 다시 열정 뿜! 뭘 만들어볼까요? 추천 받습닏...https://woowabros.github.io/experience/2018/11/12/toy-project.html
Improved Next.js and Gatsby page load performance with granular chunking chrome 팀이 javascript 생태계의 오픈 소스에 성능 개선에 대한 기여를 하고 다니는데 (...) 그중 webpack의 CommonsChunkPlugin 을 SplitChuncksPlugin 으로 전환하여 Next.js, Gatsby 의 성능을 개선한 사례를 소개하는 글입니다. 저도 얼마전에 레거시 프로젝트는 번들링 사이즈 최적화를 하면서 진행했던 내용들이라 더 와닿네요 ㅎㅎ webpack 4.0 부터는 CommonsChunkPlugin 은 삭제되고 SplitChuncksPlugin 만 사용 가능한데요. 아직 프로젝트에서 CommonsChunkPlugin 를 사용하고 계시다면 한번 읽어보시면 좋을것 같습니다 ㅎㅎhttps://web.dev/granular-chunking-nextjs/
Stop setting the language of your website based on user location "사용자의 위치에 따라 언어설정을 바꾸지 맙시다" - 사람들은 여행을 하거나 그 지역의 언어를 쓰지 않을 수 있다. - 영어를 기본으로하고 사용자가 언어를 선택하게 만드는 건 최악 - 브라우저/기기 언어로 보여주는 것이 좋다. - 내가 산 기기는 나의 주사용 언어로 되어있고 이게 안맞다면 내가 기기설정을 바꾸면 된다.https://dev.to/bitdweller/stop-setting-the-language-of-your-website-based-on-my-location-31h0
Is Deno a Threat to Node? 2년전 JSconf 에서 Node의 아버지 Ryan Dahl가 "난 이제 Node 메인테이너에서 물러날꺼야. Node는 잘못만든거같아.." 라는 발표를 해서 자바스크립트 커뮤니티가 뒤집어졌던적이 있었는데요. 그때 새로운 자바스크립트 런타임을 만들꺼야!! 하고 만든 Deno가 얼마전 1.0 릴리즈가 나왔습니다. 정말 Deno가 Node를 해치우고 대세 Javascript 런타임으로 자리잡을 수 있을지 살펴보는 아티클이 있어 가져왔습니다. 간단한게 Deno의 장점과 단점을 적어두었고요. 장점과 단점을 각각 다음과 같이 뽑네요. 장점 - Secure (No file, network, or environment access by default_ - Ships only a single executable file - Say no to node_modules and package.json - TypeScript support out of the box 단점 - Deno is not compatible with Node (NPM) packages. That’s a huge disappointment for the big JavaScript dev community. - Since it uses the TypeScript compiler internally to parse the code to plain JavaScript, it is still very slow comparatively. - It lags in HTTP server performance. 토이프로젝트 하나 만들어보면서 어떻게 생긴 아이인지 살펴볼 필요는 있을것 같습니다 ㅎㅎ.https://medium.com/better-programming/is-deno-a-threat-to-node-1ec3f177b73c
Github cheat sheet 깃헙을 똑똑하게 쓸수 있는 방법이 많네요! 중간중간 추억의 깃헙 스크린샷들이 정겹습니다 ㅋhttps://github.com/tiimgreen/github-cheat-sheet
[모듈 번들러를 만들어보자] 모던 자바스크립트 개발에서 없어선 안 될 모듈러, 트랜스파일러, 폴리필 같은 솔루션은 어떻게 동작하는 지 가~끔 궁금했는데 이렇게 직접 만들어 보시는 분도 계시네요. 모듈러 원리에 대해서 얕게 알아봅시다.https://engineering.linecorp.com/ko/blog/write-you-a-webpack-for-great-good/
L4/L7 스위치의 대안, 오픈 소스 로드 밸런서 HAProxy Config 그냥 항상 복붙하듯이 쓰다가 확인하고 싶은것들이 있다가 찾은 글입니다. Config들은 복붙하다보면 왜 이렇게 썻는지 종종 까먹게 되는데 , 물론 블로그를 보는 것도 좋지만 공식 doc을 보는 습관을 가져야 겟습니다.https://d2.naver.com/helloworld/284659
간단하게 만드는 이상한 알람 우아한 형제들에서 DB 메트릭의 통계를 활용하여 평소와 다른 추이를 보였을때 알람을 받도록 구현한 사례를 공유하는 게시글입니다. 저희 파트는 배포가 굉장히 잦은 편이고.. 파트내 배포, 서버담당자가 저라서, 매일 출근하면 가장 먼저 하는 일이 어젯밤엔 잘 있었나 확인하는 일이라 더 흥미롭게 읽었던것 같네요ㅎㅎ 실무에 적용해볼만한 내용인것 같습니다.https://woowabros.github.io/experience/2020/05/14/anomaly_alarm.html
[10배 뛰어난 개발자 되기] 개발 잘 하고싶다~라는 고민에서 좋은 개발자는 뭘까, 시니어 개발자는 어떤 사람일까에 대한 글들을 읽어봤습니다. 와중에 멋진 번역 글을 발견했네요. '10배 뛰어난 엔지니어는 남들보다 10배 뛰어난 사람이 아니라, 주변 사람을 10배 뛰어나게 만드는 사람이다' '함께 자라기'란 책에서도 읽었던 내용인데 자꾸 까먹네요. 단순히 개발'만' 잘 하면 좋은 개발자가 아닌데, 다시 한번 상기시켜주는 좋은 글이라 공유드립니다!https://muchtrans.com/translations/10xdeveloper.ko.html
[ 소프트웨어 환멸감 ] 어제는 '좋은 개발자'가 주제였고 오늘은 '좋은 개발'이 주제네요. 개발자가 가져야 할 소명의식에 대한 글입니다. 작년에 봤던 것 같기도 한데,,, 재밌어요! 추천.https://muchtrans.com/translations/software-disenchantment.ko.html
[ SPA에서의 접근성에 대해 배운 것들] 기능 개발하기도 바쁜데, 언제 접근성을 챙기기 힘들죠 ㅠ_ㅠ 하지만 기본적인건 알고 있어야 할 것 같습니다! 다른 건 어느정도 고민했던 내용인데, 자동 완성에 대한 접근성 이슈는 생각도 못해봤네요.. ㅎㄷㄷ...https://muchtrans.com/translations/what-i-ve-learned-about-accessibility-in-spas.ko.html
GW-BASIC 나이 지긋하게 먹은 빌게이츠 코드가 있다는 GW-BASIC이 오픈되었습니다. 38 years ago 가 인상적입니다!!https://github.com/microsoft/GW-BASIC
[10 Things I Regret About Node.js - Ryan Dahl - JSConf EU] 얼마전에 공유했던 Deno를 처음 소개한 JSConf 2018 Ryan Dahl의 발표를 잘 번역해둔 아티클이 있어 가져와봤습니다. 몇년전에 되도 않는 영어로 끙끙거리며 들었던게 기억는데, 한글로 보니 참 편하고 좋네요. 이부분이 킬링포인트입니다. "나이 들어가는 와중에 배운 게 있는데, 프로그램 설계할 때 추가하면 깜찍해 보이는 것들이 있어요. 진짜 하면 나중에 항상 후회합니다. 필요하지 않는데 그냥 좋아 보인다면, 하지 마세요."https://www.notion.so/3ca5303d1d434777859212da39378a58
[ 구독자의 목소리가 보여@@ ] 생활 속 데이터 분석, 브런치 작가분이 구독자들 정보를 긁어다가 추천 아티클을 직접 뽑아내는 내용입니다. 방식보다는 이런 생각을 하고 실행하는 행동력에 감탄했습니다. 어디 ... 이런 쓸모없지만 뿌듯한 짓 없을까요...https://brunch.co.kr/@goodvc78/4
[ Spring Boot @Async 어떻게 동작하는가? ] 스프링 부트에서 제공하는 @Async 동작 방식에 대한 '개략적인' 설명입니다! '자세한 내용은 생략' 하는 아티클인데요. 그래서 이 아티클 하나로는 AOP 기반 Async 동작을 모두 이해하기에는 무리가 있습니다. ㅠ_ㅠ 하지만 @Async를 이해하기 위해서 알아야 할 것들을 알려주는 마중글로는 손색이 없네요!https://brunch.co.kr/@springboot/401
기획자는 필요없다. 현직 기회자가 얘기하는 기획자가 필요없는 상황의 회사들 (기획자가 조인을 선택하지 말아야 하는 단계의 회사들) 과 "기획자는 필요없다" 는 얘기에 대한 본인의 생각을 풀어낸 글입니다. 읽으면서 많은 생각을 하게 되네요 ㅎㅎ 개인적으로는 꼭 필요한 직군이라 생각합니다.http://minieetea.com/2020/05/archives/5993
[ 우아한모노리스 ] 개인적으로 MSA보단 모노리스 아키텍처를 선호하는데 이 영상에서 배울 점이 많아 가져왔습니다. 너무 기네요 ㅠ_ㅠ 1.5배 시청! 추천드립니다 ㅎhttps://www.youtube.com/watch?v=SrQeIz3gXZg&fbclid=IwAR0e9aHmgC-WvhVFyeoEScr2qh9nhrTDyKfHkM8-6Nsq_EEKZZ-HguWpjwI
Introducing Vite, the Fastest Dev Server Ever 얼마전에 뷰 레파지토리에 추가된걸 보고 이건 뭐지? 싶었는데, vite에 대한 좋은 소개글이 있어 가져와보았습니다. webpack 과 같은 번들러 없이 겁나 빠르게 vue 프로젝트를 구동하는 개발환경이라 소개하는데요. 아직 웹팩도 잘 모르겠는데 뭐가 자꾸만 나오는지 싶지만, 오피셜 라이브러리인만큼 한번 살펴볼 필요는 있을것 같습니다.https://vuejs-course.com/blog/introducing-vite-the-fastest-dev-server-ever?utm_campaign=Vue.js%20News&utm_medium=email&utm_source=Revue%20newsletter
[ 왜 인터넷은 근본부터 글러먹었는가? ] 넷플릭스, 유튜브의 망사용료 이슈가 최근 불거지고있죠? 망사용료 규제가 망중립성 파괴를 가져올 수 있고 망중립성 파괴가 어떤 결과를 낳을 지, 그리고 낳을 수 밖에 없는 지에 대해 말해줍니다. 인터넷의 역사를 복습하고 ISP들 간 이해 관계를 이해할 수 있습니다!https://medium.com/@unifiedh/%EC%99%9C-%EC%9D%B8%ED%84%B0%EB%84%B7%EC%9D%80-%EA%B7%BC%EB%B3%B8%EB%B6%80%ED%84%B0-%EA%B8%80%EB%9F%AC%EB%A8%B9%EC%97%88%EB%8A%94%EA%B0%80-%EC%BD%94%EB%A1%9C%EB%82%9819%EC%99%80-%ED%95%9C%EA%B5%AD-%EC%9D%B8%ED%84%B0%EB%84%B7%EC%9D%98-%ED%95%B4%EC%99%B8%EC%A0%91%EC%86%8D-%EC%9E%A5%EC%95%A0-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EB%84%B7%ED%94%8C%EB%A6%AD%EC%8A%A4-%EC%A0%84%EC%9F%81%EC%97%90-%EA%B4%80%ED%95%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0-ae27826e7fc8
CORS는 왜 이렇게 우리를 힘들게 하는걸까? 웹개발자라면 누구나 겪게되는 CORS에 관한 내용을 자세하게 풀어놓은 친절한 글이 있어 가져와보았습니다. 기존에 JSP로 된 레거시들을 독립된 프론트엔드 환경으로 분리하는 업무가 주업이라, CORS좀 풀어주세요 라는 말을 입에 달고 사는데요.. (이젠 지쳐서 로컬은 그냥 크롬 익스텐션을 씁니다. https://chrome.google.com/webstore/detail/moesif-orign-cors-changer/digfbfaphojjndkpccljibejjbppifbc) 내용도 좋지만 문동욱님의 글 풀어가시는게 참 좋네요 ㅎㅎhttps://evan-moon.github.io/2020/05/21/about-cors/
Big things in JDK 13 JDK 13에 주요 피쳐들에 대해서 잘 설명해 놓은글이 있어 가져와보았습니다. 전업 FE로 이직한 후에 자바는 아예 손에서 놨더니 이런글이 도움이 많이 되네요 ㅎㅎhttps://meetup.toast.com/posts/240
[ 네이버 FE news ] 네이버 FE팀에서 발행하는 FE 기술 소식 github ! 2,3,4,5월 버릴게 없네요. 저는 5월의 Best practices for good PR's 1독 추천 드립니다.https://github.com/naver/fe-news
Top 5 Reasons Javascript Developers Prefer Deno Over Node 제목 그대로 노드 대신 디노를 사용해야할 5가지 이유입니다. 요즘 자바스크립트 생태계에는 Deno 관련글로 연일 핫한데요, 명확하고 심플하게 설명해둬서 가볍게 잘 읽히네요 ㅎㅎhttps://levelup.gitconnected.com/top-5-reasons-javascript-developers-prefer-deno-over-node-b1ff01734811
[ Vim 도대체 왜 쓰는가 ] Vim, 긱해보여서 잘 쓰고 싶은데 항상 한 30분 배우다가 때려치웁니다... 생각해보면 약간 허세(?) 느낌도 나고... 그런 느낌적인 느낌을 잘 정리한 글이네요. (근데 이 글 왜 낯익죠?, 다른 분이 공유해주셨던가,,,)https://bengi.kr/1349
[ 특수문자 모음 ] 가끔 어떤 특수문자를 영어로 어떻게 표현해야할지 멍청 때릴 때가 있는데요. 그때 보기 딱! 좋은 자료입니다. 필자분이 특수문자 읽는 방법 뿐 아니라 특징, 유니코드, HTML entity, UTF-8 코드까지 정리해주셨어요. 박수 백만번https://johngrib.github.io/wiki/special-chars/
[ 이슈 트리 ] 문제 해결, 의사 결정, 체계적인 사고를 도와주는 툴 혹은 프레임워크를 모아둔 사이트가 있습니다! 하나씩 가볍게 파보기 좋은 주제 같아요. 오늘은 문제를 구조적으로 생각하고 해결하기 위한 체계적인 방법 이슈 트리에 대해서 정리해봤어요. ## 이슈 트리 - 이슈트리는 문제 해결을 위한 지도이다. - 이슈트리를 통해서 문제를 보다 명확하고 체계적인 시각으로 바라볼 수 있다. - 이슈트리를 이용하면 문제를 잘게 나누어 해결하기 쉬운 단위로 나누고 각 세부 문제별 우선 순위를 정할 수 있다. (분할정복 기법) - 이슈트리로 문제를 정리하면 커뮤니케이션에서 이점을 취할 수 있다. ### 이슈 트리 종류 이슈 트리에는 두 가지 종류가 있습니다. - Problem Tree: 왜(why) 문제가 발생하는가에 집중하는 트리 - Solution Tree: 어떻게(how) 문제를 해결할 것인가에 집중하는 트리 ### 이슈 트리 만들기 좋은 이슈트리는 트리 노드에 모든 문제를 포함해야합니다. 좋은 트리를 만들기 위해 엄격하게 지켜야할 몇가지 원칙들이 있습니다. 1. 문제를 카테고리 별로 잘게 쪼갠다. 2. MECE 원칙을 지킨다. - MECE(Mutually Exclusive Collectively Exhaustive의 약자, 상호배제와 전체포괄)는 항목들이 상호 배타적이면서 모였을 때는 완전히 전체를 이루는 것을 의미한다. 이를테면 '겹치지 않으면서 빠짐없이 나눈 것'이라 할 수 있다. 3. 디테일에 집착하지 않는다. 예컨데 특정 문제를 그 문제가 발생하는 가설과 함께 작성하지 않는다. 4. 80/20 원칙을 적용하라 - 영향력이 큰 문제에 집중하고 가설보다는 데이터를 믿어라https://untools.co/issue-trees/
[ First principles ] 복잡한 문제를 쪼개 본질적인 문제를 찾고 이를 기반으로 혁신적인 해결책을 찾는다. Frist Principles 방법론은 'reasoning from frist Principles'이라고도 불린다. 이 방법론은 문제 해결을 위한 효율적인 방법론 중 하나이다. 문제의 기본 원칙을 구별한다면 창의적인 해결법을 찾는 것에 도움이 된다. Frist Principle은 즉 문제의 출발점이며 더 이상 세분화 할 수 없는 문제의 본질이다. Frist principles thinking 은 문제의 본질을 파악하는데 도움이 된다. ## How to use it? 아래 step들로 문제를 재구성해보자. 1. 특정 문제의 본질을 찾아서 문제를 나눠보자. 2. 나눠진 문제들의 대한 해결책을 찾아보자. step들만 보면 굉장히 간단해보인다. 문제의 본질을 찾기 위해선 하지만 굉장히 높은 주의 집중력이 요구된다. 문제의 본질을 찾기 위한 몇 가지 노하우들을 살펴보자. ### The Five Whys The Five Whys는 UX 업계에서 유명한 기술로, 문제의 본질을 찾기 위해 반복적으로 why라는 물음을 던지는 스킬이다. 이 방법을 통해서 문제의 뿌리를 찾는 기술을 높여준다. 물론 5번만 물음을 던질 필요는 없다. 하지만 보편적으로 다섯 번 안에 문제의 본질에 도달할 수 있다. ### 소크라테스 대화법 비판적 사고를 가능하게 하는 질문 훈련법이다. 여섯가지 질문 타입이 있는데, 이 질문 타입들은 문제의 본질을 찾기 위한 보다 깊은 질문을 할 수 있게 도와준다. 1. 설명 - "무엇을 의미하는가?" 2. 면밀히 살피기 위한 추정 - "그 문제 대신에 무엇을 추정할 수 있나?" 3. 면밀히 살피기 위한 이유/증거 - "왜 그것이 사실/본질이라 생각하는가?" 4. 의미 및 결과 - "그것이 어떤 영향을 가져올 것인가?" 5. 다른 견해 - "다른 대안은 있나?" 6. 원래 질문에 대한 질문 - "그래서 질문의 요점이 뭐였나?"https://untools.co/first-principles/
The process: Making Vue 3 곧 4년만의 Vue의 메이저 버전 업데이트인 Vue 3 가 릴리즈 될텐데요. 전체적인 코드베이스를 전부 TypeScript 로 바꿔 다시 작성해 커뮤니티에서 많은 화제가 되었죠. Vue 의 창시자 Evan You가 이 재창조의 과정을 겪으면서 느꼇던 점들을 기록한 아티클이 있어 가져와보았습니다. 항상 이런류의 아티클들은 관점을 확장하는데 많은 도움이 되더라구요. 추천합니다 ㅎㅎhttps://increment.com/frontend/making-vue-3/
[ 10 JavaScript Quiz Questions and Answers to Sharpen Your Skills ] JS 심화 지식을 묻기 위한 퀴즈와 답입니다. 면접 문제들 같고 재밌어서 가져왔어요 ㅎㅎ 3번 deep copy와 관련한 문제는 실무에서도 항상 헷갈렸습니다. ㅠ_ㅠhttps://typeofnan.dev/10-javascript-quiz-questions-and-answers/
[ 리눅스 명령어 대체 ! altbox ] 자주 사용하게되는 명령어들의 상위 호환 툴?들을 정리한 사이트인데요. 그동안 리눅스 명령어를 발전시킨 프로젝트들은 많이 봤었는데 너무 헤비한 느낌이 있어 거부감을 좀 가졌었어요. 근데 여기 소개된 명령어들은 가볍게 쓸 수 있고 유용할 것 같아요! 애플리케이션 이름으로 프로세스를 죽이는 fkill이 마음에 들어서 fkill 링크를 공유합니다 ㅎhttps://altbox.dev/fkill/
[ 우리 팀 Github에 당장 연결해야 할 네 가지 서비스 ] 깃헙 플러그인, 사이드 프로젝트들을 소개합니다. 팀 단위 레포에서 사용할만한 유용한 프로젝트들이 많네요! 슬랙을 자주 사용한다면 PR 리마인더 사용해보면 좋겠네요!https://medium.com/%EB%B0%95%EC%83%81%EA%B6%8C%EC%9D%98-%EC%82%BD%EC%A7%88%EB%B8%94%EB%A1%9C%EA%B7%B8/%EC%9A%B0%EB%A6%AC-%ED%8C%80-github%EC%97%90-%EB%8B%B9%EC%9E%A5-%EC%97%B0%EA%B2%B0%ED%95%B4%EC%95%BC-%ED%95%A0-4%EA%B0%80%EC%A7%80-%EC%84%9C%EB%B9%84%EC%8A%A4-4ea3c165114
좀 더 저렴하게 사용하는 Google Cloud Platform(GCP) 요즘 하고 있는 사이드프로젝트를 gke 위에 돌리고 있는데요. 아직 릴리즈하기전이라 개발용도로만 쓰고 있는데도 비용이 한달에 30만원에 육박하여 급하게 아직 무료크레딧을 안쓴 아내의 계정으로 돌려두었습니다. vm도 제일 낮은 사양에 돌리는거라곤 gke 클러스터 하나와 MySQL 인스턴스 하나인데.. 뭐 이렇게 많이 나와 하고 찾아보다 GCP 비용을 줄이는 방법에 관한 친절한 아티클이 있어 공유합니다.ㅎㅎ 이전에도 한번 이분의 글을 공유한 적이 있는데, 아티클 맛집이네요https://medium.com/@jwlee98/%EC%A2%80-%EB%8D%94-%EC%A0%80%EB%A0%B4%ED%95%98%EA%B2%8C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-google-cloud-platform-gcp-456cd71379f8
Implementing Promises In JavaScript 이런글은 항상 재밌죠. Promise 직접 구현해보기입니다. is-promise 이후로 밥먹듯이 쓰는 promise를 나는 잘 모르는구나. 하는 생각이 들어 요즘 Promise 스펙 읽기에 열을 올리고 있는데요. 저도 한번 하루 날잡아서 구현해보아야겠습니다 ㅎㅎhttps://medium.com/free-code-camp/how-to-implement-promises-in-javascript-1ce2680a7f51
[ 구글의 디자인 윤리학자 ] '기술이 어떻게 사람들의 생각과 행동을 윤리적으로 이끌어야 하는지'에 대한 내용입니다. 수익을 올리기 위해서 사람들을 더 잡아두는 기능들과 사회에 선한 영향력을 미치는 것, 어떻게 보면 이율배반적인 관계 같지만 그 속에 남아 있는 철학이 빛을 발하면 꼭 그런 것만은 아닌 것 같아요. 의사 결정 과정은 좀 애매했지만 최근 포털의 실검 폐지, 연예 댓글 폐지도 이 글의 내용과 결을 같이하는 것 같습니다. 1독 권합니다 ㅎhttps://brunch.co.kr/@cliche-cliche/61
3분 모나드 함수형 프로그래밍의 꽃이라 불리는 모나드에 관하여 설명한 글입니다. 이런 말이 있죠.. "당신이 만약 모나드를 이해하고 나면, 그걸 다른 사람에게 설명할 수 있는 능력을 잃어버리게 된다. 이것이 모나드의 저주다. — Douglas Crokford" 잘 설명해둔 글인것 같긴한데.. 역시 잘 모르겠습니다..https://overcurried.com/3%EB%B6%84%20%EB%AA%A8%EB%82%98%EB%93%9C//3%EB%B6%84%20%EB%AA%A8%EB%82%98%EB%93%9C/
[ 디폴트를 어떻게 디자인할까? ] 오늘도 UX, 디폴트를 사용자 친화적으로 넣어주는 것이 어떤 효과를 가져다주는지에 대한 글입니다. 백엔드 개발자로서 이 글을 읽어보니 앞으로 default를 코딩할 때 더 사려깊게 디자인해야겠구나~ 싶었습니다https://brunch.co.kr/@cliche-cliche/64
[ 진짜 심심해서 대충 만든 검색 서비스에서... ] 거창하게 1인 서비스를 만들어서 큰 수익을 만들겠다! 하고 기획하지말고 일단 시작하라! 좋은 아이디어가 생각나도 밍기적거리다 타이밍을 놓친적이 많았고, 반성도 많이했는데 고쳐지질않네요. 다시 한번 다~짐 해봅니다. 다음 아이디어는 반드시 구현하리!https://blog.naver.com/hidejj79/221987279200
[ AWS 학습 자료집 ] AWS를 어디서부터 배워야할지 막막한 저 같은 사람들에게 정말 유용한 AWS 학습 로드맵입니다.https://gist.github.com/serithemage/9993400aa483c95ade954a1e36b1004b
[ 실시간 댓글 개발기 ] 조부용님의 실시간 댓글 개발기입니다! 실시간 댓글 아키텍처 설계에 대한 이야기를 담고있는데요, 인싸 개발자의 문장력..! 재밌네요!https://tech.kakao.com/2020/06/08/websocket-part1/
과연 팀장 탓 일까? 요즘 큰 규모의 릴리즈를 앞두고 막판 크런치모드중이라 기술 아티클을 읽는일도 몸과 마음이 버거워서 기술과는 관련없는 글을 가져와보았습니다. "개발에서 고민해야 하는 과제에 대해서는 ‘이것 해주세요’ 라고 assign 하기보다 ‘이런 배경으로, 이런 것들을 해야 해요’라는 story 를 전달하고 있다. (뭐. 간혹 이거 해주세요 할 때도 있..지만 되도록 안하려고 노력 중이다.)" "나는 왜 과거에 나는 이런사람입니다 라는 것을 알리지 않았던 걸까? 이런 걸 더 하고싶고, 그러니 이런걸 더 지원해줬으면 좋겠고 이런 시시콜콜하면서도 중요한 일들을 계속 이야기하지 못했던 걸까. 아마 정치질로 보여질 수도 있다는 생각에 입을 다물고 있었을지도 모르겠다. 직위체계가 엄격한 회사가 아니었기 때문에 윗 분들과도 격없이 이야기할 수 있었는데, 그래도 솔직하게 말하지 못하고 님은 절 몰라요 퇴사할래요. 라는 면담의 기억만 그들에게 남겨두고 나온 걸까." 이 두 부분이 많이 와닿네요. 참 좋은 글이네요.http://minieetea.com/2020/05/archives/6013
[ URL 끝에 '/'는 왜 붙이는 걸까? ] 트래일링 슬래시 (후행 슬래시) 들어보셨나요? comment.daum.net/report?userId=333 로 요청하면 comment.daum.net/report/?userId=333 주소로 자동으로 리다이렉팅되어서 무슨 일인가 싶어 살펴봤습니다. directory path와 file path에 대한 지식인데 기본적인 내용인데 몰랐던 내용이라 삽질했네요. 삽질 공유기 글감으로 뙇인데, 시간 날때 정리하기로 하고 우선 기본 아티클부터 공유드립니다 :Dhttps://djkeh.github.io/articles/Why-do-we-put-slash-at-the-end-of-URL-kor/
How to create more complex slots in Vue 처음 Vue 를 익힐때 난해했던 기능중 하나가 바로 slot 이였는데요. 지금은 익숙하게 사용하지만 익숙해지기까지 꽤 오랜 시간이 걸렸던게 생각나네요. 그 slot 에 관하여 잘 정리해둔 글이 있어 공유합니다. 이 글을 좀 더 빨리 봤으면 덜 돌아왔을텐데 아쉽네요 ㅎㅎhttps://medium.com/javascript-in-plain-english/vue-components-more-complex-slots-31324a83aa87
[ 그래서, 자바스크립트 테스트가 뭔가요? ] 저는 개인적으로 테스트와 어사(어색한 사이)입니다. 특별히 JS 테스트는 거의 모르는 사이라고 봐도 무방할 정도인데, 존경하는 조모 개발자 님께서 Jest를 자유자재로 사용하시더라고요. 감명 받아서 JS 테스트 세계에 발을 들여볼까~합니다. 그러던 중 발견한 좋은 마중글이네요. JS 테스트의 필요성, 방법, 프레임워크의 역할 등을 알기 쉽게 잘 정리한 글입니다.https://rinae.dev/posts/what-is-testing-javascript-kr
[ 테스트를 작성하라, 너무 많이는 말고 ] 테스트 작성 기준에 대한 글입니다. 단위 테스트를 많이 작성하면서 테스트 주도로 개발하는 방법론이 정석이라 알고 있었는데, 이 글을 보니 통합 테스트가 더 중요할 수 있겠다 싶습니다!https://rinae.dev/posts/write-mostly-integration-test-kr
[ LINE의 OpenJDK 적용기 ] OpenJDK 적용기인데요, JDK별 특성도 자세히 설명해주시고 전사 시스템을 변경할 때 주의점도 얻을 수 있어서 여러모로 좋은 글입니다! 유튜브도 찍으셨네요~ https://youtu.be/BzJifsLXcNAhttps://engineering.linecorp.com/ko/blog/line-open-jdk/
[ Jest 떠먹여주는 튜토리얼 ] 내용이 꽉! 차있지는 않지만 적당히 알찬 튜토리얼입니다 ㅎㅎ Jest,,, JUnit도 잘 모르는데,,, 테스트와 친해지는 한 해를 가지기로 마음 먹었어요https://egghead.io/playlists/testing-javascript-with-jest-a36c4074
라이트하우스 6.0에서 바뀐 성능 지표변화 이터레이션 개발이 막바지에 다다르고 QA 시작전 가장 먼저 하는일이 Audits를 열어서 찍는 일인데요, 다음 버전에 변경되는 지표가 있다고 해서 가져와봤습니다. 요약하자면 FMP(First Meaningful Paint) 를 없애고 LCP(Largest Contentful Paint), CLS(Cumulative Layout Shift), TBT(Total Blocking Time) 가 추가되었다고 하네요.https://meetup.toast.com/posts/242
Forbidden header name 오늘은 아티클은 아니지만 업무하다 찾아본 Forbidden header name 에 대한 레퍼런스를 공유합니다. 맨날 헷갈리는게 User-Agent가 포함이었나 아니었나.. 하는 것들인데요. 이 기회에 머릿속에 잘 집어 넣어 두어야 겠습니다 ㅎㅎhttps://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name
[ 자바스크립트 async/await 마스터하기 ] 오늘 JS 코드를 짜다가 3 depth for 문을 동기로 돌려야하는 난관에 부닥쳤었습니다. 자바나 파이썬 같은 동기 프로그래밍 언어에 쉬운 작업인데,,, 한참을 해맸네요. 그러던 중 오늘자 GeekNews에서 반가운 글을 하나 발견 했습니다. ㅎ ============================================================================= 자바스크립트의 async/await 및 그 아래에 있는 Promise를 명확하게 이해하고 최신 자바스크립트에서 권장되는 코드를 작성하는 데 도움이 될 짧은 전자책 한 권을 소개합니다. p.s. 기왕 JS의 async/await가 주제로 나온 김에, 이와 관련된 글 2가지를 함께 묶어 소개합니다. map, reduce 함수에서 async/await 쓰기 https://velog.io/@minsangk/2019-09-06-0209-%EC%9E%91%EC%84%B1%EB%90%A8-eik06xy8mm await의 함정, 숨은 병목을 찾자 https://jaeheon.kr/161https://gcback-1.gitbook.io/mastering-async-await-by-valeri-karpov/
[ 이제 소프트웨어 개발자가 된 젊은 그대에게 ] 오늘은 가벼운 글! 개발자가 욕심내야할 포인트를 담백하게 풀어낸 글입니다. 요새 비지니스 도메인에 너무 몰두한 것같아 반성하고 있는데 어떻게 딱 혼내주는 글을 만나 반갑네요.https://brunch.co.kr/@lkj28/136
개발자 이력서 작성하기 (feat. 이력서 공개) 다른 사람의 이력서를 구경하는건 항상 자극도 되고 재밌기도 하고 참 좋은것 같습니다. 이직후에 한번 업데이트해야겠다~ 하는 생각을 귀찮음에 미루기만 했었는데, 이번 주말에 실천에 옮겨보아야겠습니다. ㅎㅎhttps://brunch.co.kr/@hee072794/132
[ Github, 인종차별적 뉘앙스가 있는 용어 교체 ] Master/Slave, BlackList/WhiteList 등 차별적 뉘앙스를 내포한 용어를 교체한다고합니다! Master를 Main으로 교체한다는 소식을 생코에서 접하고 읭? 지나친 PC 아닌가 했는데 블랙리스트, 화이트리스트를 보고는 끄-덕... (스팸 메일도 바꿔야하지 않을까... I Love Spam...)https://www.zdnet.com/article/github-to-replace-master-with-alternative-term-to-avoid-slavery-references/
[ 고 처리량 분산 비율 제한기 ] 카카오의 Alex 댓글 플랫폼은 여러 서비스가 사용하는 플랫폼으로 특정 서비스에 트래픽이 폭주하면 DB나 Redis등의 인프라가 단일 장애점이 될 가능성이 있습니다. 그래서 게시글 당 작성할 수 있는 초당 댓글 개수를 제한했었는데요. 오늘 라인 블로그를 보다가 이런 솔루션이 "고 처리량 분산 비율 제한기"란 거창한 이름으로 불린다는 걸 알게됐어요 ㅎㅎhttps://engineering.linecorp.com/ko/blog/high-throughput-distributed-rate-limiter/
Detecting Battery Status in JavaScript. 쓸 일이 있을진 모르겠지만.. 자바스크립트에서 디바이스의 배터리 관련 정보를 얻는 인터페이스입니다. 충전중인지, 배터리 잔량을 얼마인지, 충전한지 얼마나됐는지 등의 정보와 충전 상태가 변경됐을때의 이벤트를 제공하네요 ㅎㅎ 재밌습니다.https://medium.com/swlh/detecting-battery-status-in-javascript-732f724b2cc2
[ 웹개발을 위한 웹사이트 10선 ] 웹개발(프론트?)을 배우기 위한 블로그, 튜토리얼, 레퍼런스 사이트 모음입니다. 마지막에 엘리게이터라는 블로깅 서비스가 있는데 꽤 괜찮아보입니다! 따로 링크. https://alligator.io/https://medium.com/javascript-dots/10-websites-for-learning-web-development-e073d993cf02
[ mbti 별 개발자 vlog ] 유행 좀 타봤습니다. MBTI 성향별 개발자 인터뷰! 내일은 월요일이니 쉬어가는 의미로 vlog 하나 올립니다 ㅎㅎ 카카오 커머스분 같네요https://www.youtube.com/watch?v=c6-_1u5MCaI&feature=youtu.be
Event Sourcing과 Fintech Platform 오랜만에 올립니다 ㅎㅎㅎㅎ 게으름 맘껏 피며 잘 쉬다가 마지막에 돌아왔습니다. 어제 일요일 오전에 있었던 이벤트소싱관련한 웨비나 공유합니다. 금융과 감사는 절때 동떨어질 수 없는 일 일텐데요. 그렇다면 이벤트 소싱은 왜 audit trailing에 적합하며 필연적으로 필요한 시스템 구성 그리고 장단점에 대해 알짜배기로 공유해주셨습니다. 이벤트 소싱에 대해서 궁금증이 있다면 이 영상에서 시작하면 좋을 것 같습니다!https://www.youtube.com/watch?v=1QH6rKSGvY4&feature=youtu.be
[ 그런 개발자로 괜찮은가 - 문화편 ]개발자로서 무엇을 가치에 두고 업무를 해야하는지, 말해줍니다.중간에 임백준님의 페북 글이 인상 깊네요.https://taetaetae.github.io/2020/06/21/a-good-developer-in-terms-of-culture/index.html
WWDC 요약 포스팅이 벌써 올라왔네요.애플은 정말.. 사용자 피드백과 사용자경험을 중요시할뿐더러 그 반영 속도도 참 빠르다는 생각이 새삼드네요.https://fernando.kr/ios/2020-06-23-wwdc-report/
[ 개발자들이 코드리뷰를 하는 이유 ] SI, 금융, 스타트업... 코드리뷰 도입 타임라인인가 싶다가 업계에 따른 비교인가 싶다가 무슨 주제로 말하는거지 싶었는데요. 결국 제목에 답이 있네요. 코드리뷰에 정답은 없으니 그냥 하자! 우리팀의 스타일을 계속 맞춰나가면 된다!https://greypencil.tistory.com/141
[ 유용한 테스트 케이스를 위한 개발자의 자세 ] 테스트, 이제는 필수인건 알겠는데 어떻게 케이스를 짤지, 그리고 어디서 부터 어떻게 해야할지. 사실 이 부분이 가장 핵심인 것 같습니다. 테스트 프레임워크를 얼마나 잘 이해하고 사용하느냐 보다 정말 테스트해야할 부분을 얼마나 효율적으로 짤 수 있는가 중요하다는 아티클입니다. 스스로 만들어내었던 테스트 케이스들중에 의미 없는 것은 없었나, 잘못 생각한 케이스는 없었나 돌아보게 됩니다.https://blog.shiren.dev/2020-06-15-%EC%9C%A0%EC%9A%A9%ED%95%9C%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%BC%80%EC%9D%B4%EC%8A%A4%EB%A5%BC%EC%9C%84%ED%95%9C%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98%EC%9E%90%EC%84%B8/
[ 카카오스토리 팀의 코드 리뷰 도입 사례 ] 코드 리뷰 도입 이후 발전하는 과정을 보여줍니다! 어제 공유드렸던 글처럼 코드 리뷰 목적에 집중하여 개선하는 과정이 인상적이네요 ㅎhttps://tech.kakao.com/2016/02/04/code-review/
어서 와, SSR은 처음이지? - 도입 편 CSR을 하다보니 사용자의 네트워크가 좋지 않아 첫 페이지를 그리기 위해 수많은 request 를 처리하다 예상치 못한 지점에서 죽어버리는 경우에 디버깅도 어렵고 딱히 핸들링 할 방법이 없기에 저희팀도 꽤 오랫동안 첫 페이지를 SSR 해서 내려야 할지 고민중에 있는데요. 오늘은 네이버 블로그에서 SSR을 도입한 경험을 공유하는 아티클을 가져와보았습니다. 유익한 시리즈가 될것같네요 :Dhttps://d2.naver.com/helloworld/7804182
Case study: Analyzing Notion app performance 퍼포먼스 튜닝 아티클은 항상 옳죠. 노션 React 애플리케이션의 성능을 튜닝한 경험을 공유하는 아티클입니다. 대부분 잘 알려진 방법들이지만, 숙달하듯 한번 가볍게 읽어보시면 좋을것 같습니다.https://3perf.com/blog/notion/
[ 들어는 보았나 몹 프로그래밍! ]몹 프로그래밍은 한 명의 드라이버와 여러 명의 프로그래머가 하나의 PC로 코딩 또는 문서화 작업을 진행하는 개발 방식으로 1:1방식인 페어 프로그래밍을 1:n으로 확장시킨 형태이다. 여기서 n은 에자일 개발팀 전체 인원수로 팀 전원이 참여한다는 것이 특징이다.몹 프로그래밍, 개발 생산성을 높여주는건 확실해보이는데요, 저는 이 글을 읽고 몇 년 전 애자일 교육에서 선배 개발자가 했던 말이 생각이 났습니다. "짧은 스프린트는 결국 개발자를 갈아넣겠다는거 아닌가요?" 노동자의 에너지를 아껴주세요...https://helloworld.kurly.com/blog/mob-programming/
How to Use Vue’s watchEffect to Track Reactive Dependencies 곧 Vue.js 의 오랫동안 기다려온 메이저 릴리즈인 3.0 업데이트를 앞두고 있는데요. 이 3.0에 새롭게 추가되는 watchEffect 에 대해 잘 정리되어 있는 아티클이 있길래 가져와보았습니다. 어째 점점 react와 비슷해지네요 ㅎㅎhttps://medium.com/better-programming/using-vue-watcheffect-to-track-reactive-dependencies-7c99d76304e7
[ 리액트를 처음부터 배워보자 ] 주말동안 볼 아티클 인증! 리액트 기초 부족하다 싶으면 뙇https://medium.com/react-native-seoul/react-%EB%A6%AC%EC%95%A1%ED%8A%B8%EB%A5%BC-%EC%B2%98%EC%9D%8C%EB%B6%80%ED%84%B0-%EB%B0%B0%EC%9B%8C%EB%B3%B4%EC%9E%90-01-react-js%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-ad8ba252ee28
[ 참조 투명성 ] 참조 투명성 개념을 공부하다가 발견한 글인데요. 절차 지향 프로그래밍, 객체 지향 프로그래밍, 함수형 프로그래밍과 같은 프로그래밍 패러다임 간의 가장 큰 차이가 '상태를 어떻게 관리하는가?'에 있다고 말하면서 코딩 방식의 변화를 설명합니다. - '우리의 OOP는 정말 OOP일까, 잘 짜여진 OOP는 정말 효율적일까? - '함수형 프로그래밍 패러다임은 어떤 문제를 어떻게 바꿀 수 있을까?' 와 같은 내용들을 생각해볼 수 있습니다. - 절차지향적 사고에 갇혀있는 Java 개발자 올림https://blog.naver.com/hji7000/220764848626
Flutter FCM (Firebase Cloud Messaging) 적용부터 사용까지 (Android, iOS) 요즘 플루터로 사이드프로젝트를 하고 있는데, 개발 막바지에 이르러 TestFlight 에 앱을 배포하고 오매불망 푸쉬가 오기를 기다려도 오지 않아 파이어베이스 가이드를 이래 저래 살펴가며 삽질을 몇일 했지만 해결하지 못하고 있었습니다. 그러던 와중 단계를 차근 차근 잘.. 설명해둔 글을 발견해 해결했는데요. 구글 제품들을 쓰다보면 gcp 도 그렇고 파이어베이스도 그렇고 도큐먼트가 아쉬울 때가 많네요. 도큐먼트보다 더 친절한 플루터 FCM 적용하기 아티클을 공유합니다.https://dalgonakit.tistory.com/120
[ Virtual DOM을 직접 만들어보자 ] "React는 가상돔을 사용하기 때문에 빠르고 효율적으로 데이터 변경에 따른 렌더링이 가능하다." 여기서, 가상돔이 뭘까요? 어떤 방식으로 구현된 걸까요? 이~런 궁금증이 생긴다면 직접! 만들어보는게 최고죠.https://medium.com/@enro2414_40667/virtual-dom-%EB%B2%84%EC%B6%94%EC%96%BC-%EB%8F%94-%EA%B0%80%EC%83%81-%EB%8F%94-%EC%9D%84-%EC%A7%81%EC%A0%91-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EC%9E%90-1c44606ea9b1
기술아티클 이라기보다는 개인이 만든 라이브러리인데요~! 리액트 앱에서 PC(브라우저별)/Mobile 분기처리를 간편하게 할 수 있도록 도와주는 라이브러리입니다.이런걸 라이브러리화하는 행동력(?)이 부러워서 한번 공유해봅니다. ㅋㅋhttps://github.com/duskload/react-device-detect
Rough Notation 저도 기술아티클 대신 라이브러리를 하나 가져와봤습니다.Best of JS 뉴스레터를 보다가 눈에 띄어서 들어가보았는데요.웹페이지에 강조할 수 있는 애니메이션들을 구현해놓은 무척 귀여운 라이브러리입니다.너무 귀여워서 혼자만 알고있을수 없네요.스타 눌러두고 언젠가 꼭 써야겠어요.https://roughnotation.com/
[ Node 개발자를 위한 Rust 소개 ] 겁나 핫한 Rust! 성능 좋기로 소문난 Rust 지만 감히 들여다볼 용기가 안났는데요. Node와 함께 Rust의 언어적 철학을 들여다볼 수 있는 아티클이 있어 소개해드립니다.https://dev.to/tindleaj/introduction-to-rust-for-node-developers-3j05
Using JavaScript Object URLs 늘 파일업로드나, 이미지 업로드 구현시 업로드 API 가 응답으로 내려주는 섬네일 url 을 가지고 섬네일 표현을 했는데요. 이를 대신할 수 있는 DOM file object 를 참조할 수 있는 URL 을 생성하는 메소드인 URL.createObjectURL 에 대한 간략한 소개글이 있어 공유합니다. 개인적으로는 이런 메소드가 있는지 처음알았네요~. 놀랍고도 신기한 자바스크립트 세상. -- 오늘로 인증 마지막 날이네요!100일간 모두 고생 많으셨습니다. 개인적으로는 올려주시는 좋은 아티클 덕분에 넘넘 유익한 시간이었어요. 항상 프로젝트 100 마지막 날엔 '좀 더 열심히 할걸' 하는 후회가 드네요 ㅋㅋㅋ 시즌 2.. 기다리고 있겠읍니다..https://medium.com/swlh/using-javascript-object-urls-62f71161d729
[ '더 다양한 의견 노출'... '랜덤 댓글' 꺼낸 카카오 ] 오늘 드디어 마지막 날입니다! 기념비적인 날인만큼 식상한 기술 얘기가 아니라 업계 소식을 가져왔습니다. 많은 댓글 시스템에서 사용하는 추천순 상위 3개만 노출 베스트 댓글 기능은 어뷰징 논란, 다양성 실종, 초반 댓글 선점 등 다양한 문제를 낳았는데요. 이번에 카카오가 추천순이 아니라 좋아요 순만으로! 추천 목록을 구성하고 랜덤으로 뿌려주는 파격적인 시도를 했습니다. 관심을 받은 댓글이라면! 반대가 있더라도 노출하여 다양성을 확보하고 고정 노출되는 경우를 없애 어뷰징 이슈, 초반 선점 이슈를 해결하려는 시도입니다. 카카오는 지난해 연예 댓글 폐지 이후 댓글의 고질적인 문제를 해결하기 위한 다양한 노력을 하고 있는데요, 과연 이런 노력들로 댓글의 봄이 올 지, 지켜보시죠!https://news.v.daum.net/v/20200630163659307
profile
Kakao 개발자

10개의 댓글

comment-user-thumbnail
2020년 6월 22일

좋은 글 감사합니다.

답글 달기
comment-user-thumbnail
2020년 6월 23일

감사합니다.

답글 달기
comment-user-thumbnail
2020년 6월 23일

잘 읽어보겠습니다. 감사합니다.

답글 달기
comment-user-thumbnail
2020년 6월 25일

감사합니다!!

답글 달기
comment-user-thumbnail
2020년 6월 27일

좋은 글이네요. 감사합니다.

답글 달기
comment-user-thumbnail
2020년 6월 28일

감사합니다 좋은 참고가 되겠어요 !

답글 달기
comment-user-thumbnail
2020년 7월 5일

카카오 프로젝트 100 다음 참여는 언제 가능한가요?

1개의 답글
comment-user-thumbnail
2020년 7월 9일

https://blog.2dal.com 블로그 2개나 링크해주셔서 감사합니다. 더 열심히 써야겠어요! :)

답글 달기
comment-user-thumbnail
2020년 8월 5일

와 어마어마한 글들이네요. 하나씩 읽어봐야겠습니다.

답글 달기