본문 바로가기

전체 글159

실용주의 프로그래머 TIL(22.03.28) 오늘의 책 읽기 연습문제 풀고 복습하기 오늘의 TIL 연습 문제 23 "x 언어에는 파이프라인이 없는데요"에서 우리는 다음과 같은 코드를 썼다. 아래 가지 코드의 차이는 무엇인가? 여러분이 보기에 우리는 어느 쪽을 선호할 것 같은가? const content = File.read(file_name); const lines = find_matching_lines(content, pattern); const result = truncate_lines(lines); const result = content_of(file_name) .find_matching_lines(pattern) .truncate_lines(); 해설 const content = File.read(file_name); const no_co.. 2022. 3. 28.
aws ufw enable 접속 불가 (볼륨 분리) aws ufw enable 접속 불가 해결하기 새로운 서버에 mysql-server를 깔고 방화벽을 설정하다가 ufw enable을 해버려서 더 이상 ssh접근이 불가하게 되었다. 개발 중이던 코드가 들어있기 때문에 차마 날려버릴 수가 없었음.. 그래서 여기를 참고하여 잘 해결해보았다. https://gksdudrb922.tistory.com/202 [AWS] EC2, ufw enable 후 ssh 접속 불가 문제 Ubuntu는 기본 방화벽으로 ufw를 사용한다. 이 때, ufw를 disable 했다가 enable 했을 때, ssh 접속이 다시 되지 않는 경우가 있다. 사실 무시하고 넘어갔겠지만 ufw를 enable 할 때, ssh 접속이 끊어질 수 있 gksdudrb922.tistory.com 진행방법.. 2022. 3. 28.
실용주의 프로그래머 TIL(22.03.26) 오늘의 책 읽기 5장. 구부러지거나 부러지거나 오늘의 TIL 결합도 줄이기 되돌릴 수 있는 의사 결정을 통해, 불확실한 세상에서도 유연성과 적응력을 잃지 않을 수 있다. 우리가 어떤 것 하나만을 골라내려고 해도, 그것이 우주의 다른 모든 것과 얽혀 있음을 깨닫게 된다. 이벤트에 잘 반응하는 어플리케이션을 만들기 위한 전략 유한 상태 기계(FSM) 감시자(Observer)패턴 게시-구독 반응형 프로그래밍과 스트림 옵저버 패턴은 모든 감시자가 감시 대상에 등록을 해야 하기 때문에 결합이 생긴다. 감시 대상이 콜백을 직접 호출하도록 구현하기 때문에 성능 병목이 될 수 있다. 이러한 문제는 "게시-구독" 전략으로 해결한다. 외부 설정으로 애플리케이션을 조정할 수 있게 하라 외부설정을 사용하지 않는다면 코든느 적.. 2022. 3. 27.
윈도우에서 매직트랙패드 사용하기!! 요즘따라... 손가락도 좀 아프고 오른 손목도 좀 아픈 것 같아서 마우스를 어떻게 해야하나 고민을 하고 있었다....(롤 많이해서 그런거 아님!!) 그렇게 고민하던 차에 서랍 속 깊숙히 숨어있던, 태블릿이 하나 있어 당근🥕으로 판매를 하였다. 꽁돈(?)을 번 것 같은 기쁨에 최근 고민하고 있던 트랙패드를 지르게 되었다!! 사무실 장비가 윈도우라서 아무래도 매직 트랙패드가 조금은 어색하지 않을까? 라고 생각하다가 별로면 맥북에 쓰지 뭐~ 라는 생각으로 충동구매를 했다. 윈도우에 블루투스를 잘 연결하고 트랙패드를 움직여 보았지만... 먹통이라 약간 당황하게 되었다.... 열심히 구글링을 하다보니 https://github.com/imbushuo/mac-precision-touchpad/releases Rel.. 2022. 3. 25.
실용주의 프로그래머 TIL(22.03.24) DAY5 (2022. 03. 24) 오늘의 책 읽기 4장. 실용주의 편집증 오늘의 TIL DBC 구현 코드를 작성하기 전에 유효한 입력 범위가 무엇인지, 경계 조건이 무엇인지, 루틴이 뭘 전달한다고 약속하는지등을 나열하는 것만으로도 엄청난 도움이 된다. 오류 발생시 소비자의 입장을 우선하라. 이것은 시스템의 여러 다른 부분을 적용할 수 있는 분명하고 간력하며 명확한 선언이다. 이는 모든 시스템 사용자와 맺는 계약이며 동작에 대한 우리의 보증이다. 방어적 프로그래밍은 시간낭비다. 그냥 멈추는 게 낫다! 기본 원칙은 방금 있을 수 없는 에러가 발생했다는 것을 코드가 발견했다면 프로그램은 더 이상 유효하지 않다. 이 시점 이후로 하는 일은 모두 수상쩍게 된다. 죽은 프로그램이 끼치는 피해는 이상한 프로그램이 .. 2022. 3. 25.
실용주의 프로그래머 TIL(22.03.23) DAY5 (2022. 03. 23) 오늘의 책 읽기 3장. 기본도구 오늘의 TIL 중국 속담 아무리 흐린 먹물일지라도 가장 훌륭한 기억력보다 낫다 모든 소프트웨어는 작성되자마자 레거시가 된다. (지식을 일반 텍스트로 잘 저장하자) 소스코드 뿐만 아니라 메모,makefile, 빌드와 릴리스 절차, 로그파일까지 모두 버전 관리시스템에 기록하자 디버깅은 단지 문제 풀이일 뿐이라는 사실을 받아들이고, 그런 마음으로 공략하라 엔지니어링 일지를 작성하라. 2022. 3. 23.
블로그 첫 수익 (adsense) 블로그를 시작한지 어느덧 일년이 넘었다. 딱히 특별한 걸 포스팅하기보단 공부했던 것들 중 다음에 또 찾아볼 것 같은 내용들만 잡다하게 정리했다. 아무래도 수익이 있으면 조금이나마 블로그를 더 많이 쓰게 될 것 같아서... 에드센스 신청부터 수익이 모일 때까지 약 160개의 글을 쓴 것 같다. 그러다 오늘 이메을을 확인하다 adsense 관련된 메일이 온 것을 확인했다. 에드센스는 수익금이 100달러를 넘게되면 자동으로 지급신청이 되는 것 같다. 그래서 30달러인가 넘었을 때부터 계좌를 등록하고 집주소로 우편도 보내 인증도하고 다양한 절차가 필요했나보다. 그렇게 약 1년하고도 3개월만에 드디어 adsense 첫 수익을 실현하게 되었다. (young 블로그는 광고가 너무 많아서 사행성이라는 친구의 말이 갑.. 2022. 3. 22.
실용주의 프로그래머 TIL(22.03.21) DAY3 (2022. 03. 21) 오늘의 책 읽기 2장.실용주의 접근법 오늘의 TIL ETC (Easier to Change) 잘 설계된 코드는 ETC하고, 잘 설계된 코드는 결합도가 줄어 단일 책임 원칙(Single responsibilty principle)에 유용 네이밍을 잘해야 코드가 읽기 쉬워지고 수정에 용이 ETC는 규칙이 아니라 가치(Value)로 결정을 내리게 도움을 줌. 방금 한 일이 전체 시스템을 바꾸기 쉽게 만들었는지를 고민해야 한다. 저장할 때마다, 테스트를 쓸 때도, 버그를 수정할 때도. DRY (Don't Repeat Yourself) DRY하게 코드를 짜야한다는 것은 자주 들어왔던 이야기이다. 단순하게 반복을 지양해야 하는 것이 아니라, 구현 내용상의 무의미한 반복을 지양해야.. 2022. 3. 21.
실용주의 프로그래머 TIL(22.03.19) DAY2 (2022. 03. 19) 오늘의 책 읽기 서문 1장.실용주의 철학 오늘의 TIL 당신의 인생이다 (스스로 결정하고 행동할 수 있는 개발자가 되자) 해당 주제에서 나온 내용은 많은 개발자들이 불만에 가득 차 있는데, 왜 해당 문제에 대해 직접 바꾸지 않았냐는 것이였다. 해당 내용을 읽고 내 상황에 대해 돌아보니, 우리 회사는 성과를 몰라주지도 않고, 월급도 불만이 없고, 분위기도 원만하고, 출퇴근도 자유롭고, 수평적인 관계이면서, 내가 원하는 기술 스택을 사용할 수도 있고, 일정도 내가 원하는 대로 조율할 수 있는 상황이다. (이렇게 좋은 환경임에도 아무것도 하지 않고 가만히 있었는지 자책감이 든다...) 딱 한가지 문제점은 주니어임에도 불구하고 개발관련해서 도움을 요청할 수 있는 사람이 없다는.. 2022. 3. 20.
실용주의 프로그래머 TIL(22.03.18) DAY1 오늘부터 노마드 개발자 북클럽 (실용주의 프로그래머) 챌린지가 시작되었따!! 이 책을 통해 품질을 요구사항으로 만들어라 ETC는 규칙이 아니라 가치다. 모든 코드의 중복이 지식의 중복은 아니다. 내면의 파충류에게 귀 기울여라 계약으로 설계하라 리펙터링은 언제 하는가? 프로그래머는 사람들이 자신이 원하는 바를 깨닫도록 돕는다. 에 대해 알아보고자 한다. #노개북 은 스케쥴표, 감상평(TIL), 퀴즈와 미션, 커뮤니티등을 지원하여 혼자 읽을 때보다 동기부여도 되고 의지를 더욱 불태울 수 있게 해주는 노마드 코드의 챌린지 중 하나이다. 약 3주간의 짧고도 긴 챌린지를 무사히 완주할 수 있기를...!! 인증 2022. 3. 18.
node 버전 업데이트하기 기존에 사용하던 node의 버전이 너무 낮아서 update를 하기로 했다. https://www.npmjs.com/package/n n Interactively Manage All Your Node Versions. Latest version: 8.0.2, last published: 2 months ago. Start using n in your project by running `npm i n`. There are 19 other projects in the npm registry using n. www.npmjs.com npm에 node 버전을 관리할 수 있는 n이라는 패키지가 있어서 사용해보려고 한다. npm을 이용해 n을 전역으로 설치 npm install -g n n stable을 입력하면 n.. 2022. 3. 1.
lets encrpyt 인증서 갱신 오류 해결 현재 사용중인 인증서가 만료되어 갱신을 해야하는 상황이 되었다. 물론 crontab으로 자동으로 갱신이 되도록 등록을 해두었지만 뭔가 오류가 있어서 갱신이 되지 않은 것 같다. 그나저나 벌써 3개월이 지났다니...;; 시간이 너무 빠르네 그래서 현재 사용중인 인증서의 상태를 보기 위해 다음과 같이 입력하였다. certbot certificates 조회해본 결과 이렇게 INVALID:EXPIRED라고 만료되었다는 것을 확인할 수 있다. 그럼 갱신을 위해 certbot renew를 하면되는데, 그냥 수행하게 되면 실패하는 경우가 발생할 수 있고 이로 인해 또 다른 오류가 발생할 수 있다. 그래서 갱신이 되는 상태인지 확인하기 위해 아래와 같이 입력해주었다. certbot renew --dry-run 이렇게 .. 2021. 12. 2.
Missing or invalid credentials 에러 처리하기 Missing or invalid credentials. Error: connect ECONNREFUSED /run/user/0/vscode-git-9cddb075f4.sock at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1146:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '/run/user/0/vscode-git-9cddb075f4.sock' } remote: Repository not found. fatal: Authentication failed for 리눅스를 이용해서 개발을 할 때, 종종 커밋까지는 되는데 push가 안되는 경우가 있다. 이럴 때는 ctrl +.. 2021. 11. 23.
fimga px to rem 사용하기 desktop 페이지가 거의 완성되어 반응형으로 동작하는 moblie 페이지를 제작하려고 한다. 어디선가 주워듣기론 desktop 페이지는 px을 사용하는 게 좋고, moblie페이지는 rem을 사용하는 게 좋다고 했던 게 기억났다. (모바일 페이지에 더 유연한 디자인을 적용하는 게 좋다고 했던 것 같다...) 그래서 figma에서 inspect탭에서 사이즈를 가져와서 코드로 짜려고 하는데, 기본적으로 피그마는 px단위만을 지원하기 때문에, 직접 수치를 변환해서 사용해야 하는 것 같았다. 그래서 찾아보니 px을 입력하면 rem으로 바꿔주는 플러그인 들이 있는 것 같았다. 하지만 일일히 수치를 입력하고 계산하기 귀찮아서 Heron Handoff 라는 플러그인을 사용하기로 했다. 피그마 화면에서 플러그인 -.. 2021. 11. 18.
nginx 413 request entity too large 이전에 파일 제출 기능을 만들었을 때는 별 문제가 없었지만 nginx를 사용하고나서 파일 제출시 다음과 같은 에러가 나타났다. 413 requests entity too large 첨부된 파일의 크기가 1mb를 넘을 때, 보안을 위해서 기본적으로 막혀있다고 한다. 그래서 nignx.conf에서 server 부분에 다음 내용을 추가해 주었다. client_max_body_size 0; clinet_max_body_size를 0으로 하면 파일크기를 따로 제한하지 않는다고 한다. 끝 2021. 10. 13.