본문 바로가기

분류 전체보기216

JavaScript의 this (this of JavaScript) 현재 사용되고 있는 많은 언어들은 this 키워드를 제공하고 있습니다. 자바스크립트에서의 this는 상황에 따라 다른것을 가리키기 때문에 편리하지만 정확히 무엇을 가리키고 있는 것인지 쉽게 헷갈리는 식별자 중 하나입니다. 오늘은 이 this에 대해서 알아보겠습니다. this는 어디에서 오는가? 코드 곳곳에서 등장하는 this는 보통 함수의 스코프를 가지고 있다고 생각하기 마련입니다. 그도 그럴것이, this 키워드를 사용하면 함수 내부 변수를 조작하거나 함수를 실행시키는등 스코프에서 할 수 있는 작업들을 할 수 있기 때문입니다. 그렇다면 자바스크립트의 this는 사용될때마다 동적으로 함수의 스코프가 바인딩된다고 생각하면 될까요? 그 전에 먼저 this가 어디에서 오는것인지 알 필요가 있습니다. 우리는 t.. 2021. 7. 21.
GoF의 디자인 패턴, 객체지향의 사실과 오해 책 구입했어요. 기존에 진행하던 자바스크립트 스터디가 끝나고, 다음에 함께 볼 책으로 디자인 패턴을 선정하였습니다. GoF의 디자인 패턴은 리팩토링이나 클린 코드 같은 책들과 함께 개발자들의 바이블로 꼽히는 책 중 하나인데, 그만큼 많이 읽히고 좋은 내용들이 들어있기 때문입니다. 비록 책의 예시 코드들은 C++로 구현이 되어있다고 하지만, 패턴의 흐름을 읽는데는 크게 문제가 되지 않기도 하고 C++에서만 사용되는 특정한 문법들이 많이 들어있거나 하지도 않다고 들었기 때문에 큰 마음 먹고 도전해보기로 의견이 모이게 되었습니다. 요즘 들어 부쩍 디자인 패턴에 대한 이해가 필요하다고 느낀것도 이유입니다. GoF의 디자인 패턴은 북 스터디를 진행하면서 차차 읽어가기로 했고, 다른 책을 한권 더 사게 되었습니다. 바로 객체지향의.. 2021. 7. 19.
GitHub Copilot technical preview 신청했어요. 본인이 개발자이거나 이쪽 분야를 공부하다보면 인공지능과 딥러닝에 대해 알게 모르게 접할 기회가 많아집니다. 워낙 핫한 기술이기도 하고, 일상생활에서도 4차 산업혁명이니, 인공지능의 시대니 하는 문구들이 심심찮게 들려오기 때문일 것 같습니다. 그래서인지 개발자가 코딩으로 AI를 만든다 라는 말에는 전혀 위화감이 들지 않았습니다. 너무나도 당연한 말이니까요. 그런데, AI가 코딩으로 개발을 한다 라는 말은 어떠신가요? 인공지능이 스스로 코드를 짠다니, 마치 기계가 인간을 지배하는 세상이 찾아온 SF 영화에 나올것만 같은 이야기입니다. AI가 내 코드를 대신 짜주는 상황을 상상해보신적이 있으신가요? 그런데 그것이 실제로 일어났습니다. 바로 깃허브의 Copilot인데요, 구현하고 싶은 내용 또는 적절한 함수 이.. 2021. 7. 14.
썸네일 생성기를 만들었어요 (Thumbnail generator) 오랜만의 토이 프로젝트입니다. 그동안 블로그 포스트를 작성하며 매번 썸네일을 직접 만들었는데, 대단한 퀄리티는 아니었지만 매번 이미지 편집 프로그램을 이용하는 과정이 조금 번거로웠습니다. 이 정도의 간단한 이미지 정도라면 프로그램으로 만들어 사용하는게 낫지 않을까? 라는 생각이 들어 썸네일을 생성해주는 프로젝트를 진행해보기로 하였습니다. 구상 가장 익숙한 기술 스택인 자바스크립트와 노드를 이용하여 제작할 예정이었으니, 어떤 방식으로 작동할지 먼저 구상하고 그에 맞는 라이브러리를 찾기로 계획했습니다. 먼저 우리가 만들 썸네일 생성기는 이미지를 배경으로 하고, 가운데의 대제목과 그 밑에 조그만한 부제목으로 이루어진 간단한 형태의 썸네일을 만들어주는 방식으로 작동할것입니다. 그렇다면 먼저 css를 사용해 원하.. 2021. 7. 10.
solved.ac 골드 티어 달성했어요. 종강을 맞아 UCPC 준비도 할겸 백준 문제를 풀기 시작했어요. 최소한 하루에 한 문제씩은 꼭 풀기로 다짐하고 동아리 부원과 함께 스터디를 진행중인데 오늘 드디어 골드 티어를 찍게 되었네요. 다음 목표는 플래티넘으로 잡고 계속 열심히 풀어봐야겠어요. 이번 UCPC에서도 좋은 결과 있었으면 좋겠네요. 요새 이거랑 다른 스터디들, 그리고 토이 프로젝트도 따로 진행중이라 블로그 포스팅이 조금 뜸한데... 시간내서 공부했던 내용들도 정리할 예정이에요. 하고있던 것들 어느정도 마무리만 되면 토이 프로젝트 했던것도 정리해서 올려볼게요. 깃허브 프로필에도 골드 명함이 띄워지니까 기분이 좋네요 😊 색 바뀌면 또 기록해둬야겠어요 🥇 2021. 7. 5.
JavaScript의 클로저 (Closure of JavaScript) 클로저라는 용어 자체는 생소하게 들릴 수 있지만, 사실 클로저의 내용은 지금까지 자바스크립트를 공부했다면 자연스럽게 알고있는 내용입니다. 코드를 통해 바로 확인해보겠습니다. function a() { let a = 1; function b() { console.log("a is " + a); } return b; } let c = a(); c(); // a is 1 a() 내부에 b()가 선언되어 있고, 전역에서 변수 c에 a()를 담아 c()를 실행시키는 모습입니다. 보통의 경우 라인 1의 function a() { ... 부터 라인 9의 let c = a(); 에 이르기까지의 과정에서, a() 는 그 사용을 다 하였기 때문에 가비지 컬렉터가 할당된 메모리를 해제시켜버립니다. 그러나 위의 코드를 직접 .. 2021. 6. 26.