it공부 (이야기) 7

230718 카카오 Tech meet 2회 후기

안녕하세요 230719 카카오 Tech meet에 다녀왔습니다! 귀중한 경험을 제공해 준 카카오 임직원 여러분께 감사드립니다. 개발자 서밋이나 ~~ 콘같은것에 많이 지원을 해보았지만, 실제 행사에 다녀온것은 처음인데 생각보다 너무 즐겁고 유익한 시간이었습니다. 짧은 지식으로 모자라게나마 필기내용을 요약하여 블로그에 남깁니다. 혹시 오류나 문제사항이 있다면 댓글로 알려주세요! 1부 app server refactoring 후기 이상우 선생님 (soo님) 간단하게 java로 만든 객체를 리팩터링 하는 이야기를 해주셨습니다. 제가 spring에대한 경험이 없음에도 불구하고, 쉽게 풀어 이야기를 해주셔서 쉽게 이해할 수있었습니다 A. 가변 context class는 신중하게 사용하자 가변 context clas..

error:0308010C// webpack과 nodejs의 호환문제 / 자바스크립트 멜론 클론코딩

버그 발생 정보 "scripts": { "build": "npm run build:server && npm run build:assets" } npm run build를 터미널에 입력하자 아래의 오류 메시지가 출력되었다. node:internal/crypto/hash:71 this [kHandle] = new _Hash(algorithm, xofLen); ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash.... 파일경로 중략 { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital en..

파이썬 리펙터링: 코드 스타일을 공부할때가 왔다.

프로그래밍 언어는 기계가 아닌 사람을 위해 쓰였다. 컴퓨터는 코드를 실행하고, 사람은 코드를 읽는다. 누가 했는지는 잘 모르지만, 유명한 말이 있다. 프로그램은 읽을 수 있게 작성되어야 한다. 실행은 부차적인 일이다. 뭣도 모르고 프로그래밍을 처음 시작했을 땐, 구현이 전부라고 생각했었지만 개인프로젝트를 하면서 이제 정말 저 말이 깊게 와닿는 거 같다. 기나긴 로직을 구현한다면 오류하나 없는 복잡한 코드보다 오류가 있는 읽기 쉬운 코드가 좋다. 코드가 읽기 쉽다면 버그가 발생해도 금방 찾을 수 있다. 유지보수가 쉬운 스타일과 (객체지향 SOLID라던가), 읽기 쉬운 스타일은 같은 개념은 아니다. 하지만 읽기 쉽다면 유지보수 역시 쉽다. 다음 코드는 내가 처음 짠 코드이다. # 이름의 길이를 계산해주는 프..

문서여행: 패키지 공식문서에 없는 메서드의 뿌리를 찾아서 / WebSocket, on, 객체지향, 상속

미리 보는 결론: 만약 사용하는 패키지 오브젝트의 메서드나 속성이 해당 공식 문서에 없다면, 그 오브젝트를 정의할 때 상속받은 오브젝트가 존재하나 확인하고 관련 문서를 찾아봅시다. on.. 어디서 온 녀석이지? 노마드코더의 zoom 무료 클론코딩 강의를 수강하던 중이었다. 이 강좌에선 메시지를 주고받기 위해 ws라는 패키지를 이용해 웹소켓 서버를 구축한다. 웹소켓 서버는 on 이벤트리스너를 통해 유저의 접속을 감지한다. 나는 이on에대해 조금 더 자세히 알고 싶었다. 메서드의 반환값이나 감지할 수 있는 이벤트종류등등을 이해한다면 더 다양한 기능을 구현할 수 있기 때문이다. chat gpt에게 webSocket의 on에 대한 질의를 작성하였으나, 서버문제로 먹통이었다. 그래서 웹소켓 서버와 관련된 인터넷 ..

파이썬으로 타입체크 해보자: Type hint 아닙니다. (타입힌트아님)

동기 노마드코더의 파이썬 챌린지를 하던 중, 입력받은 숫자를 계산하는 함수를 만들어야 했다. 나는 여기서 함수에 인자로 입력받은 숫자에 대한 타입체크를 수행하고 싶었다. 파이썬은 함수의 입력인자 및 출력 값의 데이터 타입을 확인하는 기능이 있다. 바로 타입힌트(type hint) 가 그것이다. 하지만 이것은 말 그대로 타입 힌트이지 타입체크가 아니다. 아무런 강제성이 없다. 허접한 영문장으로 구글에 파이썬 유니온타입 타입체크를 검색하자 (how to check union type in python?) 스택오버플로우에서는 "typing"이라는 라이브러리를 추천해 주었다. typing 라이브러리 주소 https://docs.python.org/3/library/typing.html typing.Union U..

javascript의 Date모듈의 Month는 0월부터 11월 까지 있다.

Mdn문서 설명: getMonth() 메서드는 지역시간에 근거한 달력을 0-기반 값으로 반환합니다. (숫자 0은 그 해의 첫 달을 의미합니다.) *이글의 작성일자: 2023/03/14 getFullYear은 2023을 잘 반환한다. 다른 메서드 getDate도 오늘이 14일임을 정확히 알려준다. 그런데 getMonth만 시작 숫자가 0을 기반으로 설정되어 있어서 현재 달에 해당하는 숫자보다 1 낮춰서 반환한다. 즉, 2를 반환한다. 당장 콘솔창을 열어서 아래의 코드를 입력해보면 2023/2/14를 얻을 수 있다. const today =new Date(); today.getFullYear() today.getMonth() today.getDate() 비슷한 zero-base 메서드를 찾아보면 getDay..

MDN 문서 여행: fetch()메서드를 이해해보자. /// XMLHttpRequest, Asynchronous, promise, then 그외 무수한 개념들...

목차링크 1.시작: fetch가 뭐야? 2. XMLHttpRequest: 선배님들이 사용한 api통신 오브젝트 3.Promise & then : fetch의 밑바탕 +@ 영단어 resolve 4. Synchronous & Asynchronous:동기와 비동기, Promise의 개발이유 5. 결론: 영상속 코드 이해하기 들어가며.. 이 글은 특정 개발지식을 익히기에 적합한 글이 아닙니다. 문서에 쓰여있는 개념들을 읽으면서 실시간으로 내용을 써넣었기 때문에, 개념의 정돈보다는 흐름에 집중했습니다. 항상MDN 문서를 위키 탐독하듯이 돌아다니면서 공부를 합니다. 인상적인 개념 몇가지만 포스팅으로 남기는것이 늘 아쉬워 공부 과정 전체를 글로 남겼습니다. 시간 넉넉하고 심심하신분만 읽어보시길 바랍니다. 사실 쓰다가..