본문 바로가기

Daily89

210124_TIL 🍎 오늘 한 일 ✔️ DFS, BFS, 백트래킹 알아보기 자료 구조 중 트리에 대해 배우면서 주로 DFS(깊이 우선 탐색)에만 집중해서 배웠는데, BFS(너비 우선 탐색)에 대해서도 궁금해져서 찾아봤다. 깊이 우선 탐색 현재 노드에서 갈 수 있는 곳까지 최대한 최대한 깊이 가보는 방법이고, 스택이나 재귀로 구현할 수 있다. 경로마다 가중치나 특징이 있을 때 주로 쓴다고 한다. 반면 너비 우선 탐색은 현재 노드에서 가까운 곳부터 탐색하면서 최대한 넓게 가보는 방법으로 큐로 구현할 수 있다. 보통 최단경로를 찾을 때 쓴다고 한다. 그리고 웹페이지 크롤링이나 가비지 컬렉션에도 이 BFS 방식이 사용된다고 하는데 검색속도 자체가 DFS보다 빨라서 실시간에 적합하기 때문인 것 같다는 생각이 들었다. 🍎 기억할 것.. 2021. 1. 25.
210123_TIL 🍎오늘 한 일 ✔️ Data Structure 복습 데이터 자료 구조들을 한번씩 다시 그려보고, 관련된 socrative 문제들 중 헷갈렸거나 새로 배운 개념들을 정리했다. 시간 복잡도와 각각의 장단점에 초점을 맞춰 복습했다. ✔️ Sprint 회고 기록해두기 사실 지난 주동안 새로 배운 것도 많고 그날그날 배운걸 정리하기에도 시간이 빠듯해서 지지난주에 했던 포켓몬 게임을 만들었던 Sprint에 대한 기록을 해두지 못하고 넘어갔었다. 느낀 점도 그렇고 새로 알게된 것들을 잊기 전에 정리해두자는 마음으로 기획부터 구현과정, 새로 배운 기능에 대해 다시한번 복습하며 기록했다. 🍎 기억할 것 ✔️ z-index 어느 객체가 앞으로 나오고, 뒤에 나올지 배치 순서를 결정하는 CSS 속성 ✔️ pageX, pag.. 2021. 1. 24.
210122_TIL (시간복잡도, 자료구조 복습) 🍎 오늘 한 일 ✔️ Big-O 표기법 & 자료구조 연관지어 생각해보기 빅오(Big-O) 표기법은 그냥 알고리즘이 돌아가는 최악의 시간이고, 상수..지수.. 등이 있다는 것, 그리고 대략 어떤 코드가 어느정도의 시간이 걸리는 구나 정도로만 알고 있었다. 빅오 표기법에 대해 좀 더 깊게 다루는 세션을 들으면서 자료구조와 어떻게 연관되는지도 자세히 배워 전에 블로깅 해뒀던 글에 추가했고, n^3의 시간도 빅오로 표시하면 n^2로 취급한다는 것, 그리고 코딩테스트 문제를 풀 때 시간복잡도에 대한 조건을 보고 어떤 자료구조를 써서 풀 수 있는 문제인지 역으로 힌트를 얻을 수 있다는 것도 알게 되었다. ✔️ Data Structure 복습 이번 주 동안 배웠던 자료구조들(스택, 큐, 연결리스트 ,해시테이블, 그래.. 2021. 1. 23.
210121_TIL (자료구조 - 트리, 이진검색트리) 🍎 오늘 한 일 ✔️ Graph, Tree, Binary Search Tree 메서드 작성해보기 오늘도 페어분과 Graph, Tree, Binary Search Tree 자료구조들의 메서드들을 코드로 작성해봤다. 세 가지 구조 모두 기본적으로 노드(node)라고 하는 요소들과 노드와 노드를 연결하는 간선(edge)으로 구성되기 때문에 비슷한 느낌이 있었다. 그래프 자료구조는 방향성이 존재하지 않는 무방향 그래프를 기준으로 해서 비교적 쉽게 해결했던 것 같은데, 이진 검색 트리는 순서나 방향이 정해져 있어서 가장 시간이 많이 걸렸다. 그래도 무엇보다 구조상 재귀를 사용했어야 했는데, 재귀가 실행되는 모습이 조금씩 머리속에 상상이 되기 시작했다는게 제일 기뻤다..ㅠㅠ ✔️ 자료구조 블로깅 어제 공부했던 연결.. 2021. 1. 22.
210120_TIL (자료구조 - 해시테이블, 그래프) 🍎 오늘 배운 것 ✔️ 해시테이블 (자료구조) 해시 테이블의 메서드 중 삽입, 삭제, 리사이징을 하는 메서드들을 페어분과 직접 코드로 작성해봤다. 처음에 해시테이블의 전반적인 구조를 생각하지 않고 무작정 코드를 작성하려해서 자꾸 오류가 났는데, 잠시 리프레시할 시간을 갖고 구조를 그림으로 그려보니 조금씩 감이 잡히기 시작했던 것 같다. 특히 bucket의 존재를 잊고있어서,, 많이 해맸던 것 같다. 통과는 됐지만 왜인지 잘 이해가 가지 않아서 초기화하고 처음부터 다시 작성해보니까 숲을 봤어야 했는데 나무를 보고있었다는걸 깨닫기도 했다. 자료구조는 꼭 그림으로 하나씩 그려보자..! ✔️ 그래프 (자료구조) 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료 구조인 그래프(Graph)에 대해 공부했다. 그.. 2021. 1. 21.
210119_TIL (자료구조 - 스택, 큐, 연결리스트) 🍎 오늘 배운 것 ✔️ 자료 구조 (스택, 큐, 연결리스트) 여러 개의 데이터들을 효율적으로 관리하기 위해 저장 순서나 처리 순서를 정해둔 '자료 구조'에 대해 배웠다. 가장 먼저 스택(Stack), 큐(Queue), 연결리스트(Linked List) 에 대해 공부했는데 사실 개념만 봐서는 잘 와닿지 않았다. 각각의 자료 구조들과 관련된 메서드들을 직접 코드로 작성해보기도 했는데, 오히려 이 과정에서 이해가 되기 시작한 부분들이 많았다. 특히 연결 리스트는 뭔가 머리속에 딱 그려지지가 않아서 직접 손으로 그려보거나, 예시를 객체 형태로 작성해보면서 익숙해지려고 노력했던 것 같다. 공부한 내용들을 저녁 시간동안 쭉 정리해보고, 작성했던 코드도 수도 코드로 다시 써보니까 각각의 자료구조를 언제 사용하는게 효.. 2021. 1. 20.
210118_TIL (포켓몬게임 Javascript 완성) 🍎 오늘 한 일 ✔️ 포켓몬 게임 - Javascript 마무리 오전부터 오후까지 시간이 있어서, 페어분과 어제 못다한 기능들을 구현하기로 했다. 오전에는 캐릭터들에 애니메이션들을 추가하는 작업에 중점을 두기로 했고, 오후에는 localStorage에 정보를 저장하고 불러오는 작업에 중점을 두기로 했다. 사실 둘 다 잠을 별로 못자서 굉장히 멍한 상태였는데, 그 상태로 포켓볼이 벽에 닿으면 방향을 바꿔 튕겨나가는 애니메이션을 추가하는 작업을 하다가 약간 멘탈이 나갈뻔하기도 했다. transform이나 transition은 직관적으로 어떤 애니메이션이 적용되는지 바로 알 수 있는데, 포켓볼 작업은 직접 수식을 적용해야했기 때문이었다.. 페어분의 제안으로 아예 잠시 리프레시를 했더니 오히려 머리가 맑아져서 .. 2021. 1. 19.
210117_TIL (포켓몬게임 HTML, CSS) 🍎 오늘 한 일 ✔️ 게임 디자인, 기능 구현 어제 기획, 설계 해두었던 게임을 본격적으로 만들기 시작했다. 정말 하루종일 페어분과 줌을 켜고 컴퓨터 앞에만 있던 하루였던 것 같다,, HTML으로 전체적인 구조를 잡아두고 세부적인 부분들을 CSS로 디자인했다. 저번에 와이어프레임을 자세히 짜두어야 나중에 편해진다는걸 많이 느껴서 이번에도 자세히 짜고 시작해보려고 노력했다. 두 명이서 짜니까 아이디어도 다양하게 나올 수 있던 것 같다. 그리고 Javascript로 기획했던 기능들을 하나씩 구현해봤다. 뭔가를 만드는 스프린트에서 기획부터 구현까지 페어분과 전부 같이 진행해본건 처음이었는데, 고민되는 부분이 있으면 바로바로 공유해 도움을 얻을 수도 있고 서로 git을 통해서 협업을 해보기도 해서 여러 방면에서.. 2021. 1. 18.
210116_TIL (포켓몬게임 기획) 🍎 오늘 한 일 ✔️ 지난 주에 배운 것 복습 지 난 주동안 배운 내용들을 한 번씩 다시보면서 복습하는 시간을 가졌다. 헷갈렸던 개념들도 있고 계속 뭔가 꾸역꾸역 이해하고 넘어갔던..? 그런 느낌이었는데 처음부터 한번에 다시 보니까 따로 생각하고 있던 개념들이 이어지는 느낌이 들었다. 그 중 시간이 없어 알아보지 못했던 궁금했던 것들도 찾아보고, 기억할 만한 부분들만 따로 적어두었다. ✔️ 게임 기획 & HTML, CSS 기본적인 클래스 간 상속, 다형성만 구현해 둔 상태여서 본격적으로 게임 기능을 추가하고 디자인을 하고자 계획을 세웠다. 이번에는 페어분과 함께 진행하기로 해서 어떤 식으로 게임을 구성하면 좋을 지 이야기 하고, 전반적인 구조를 먼저 잡기 위해 와이어 프레임을 만들었다. 기능은 아이디어가.. 2021. 1. 17.
210115_TIL (OOP 써먹기, 간단한 게임 구현해보기) 🍎 오늘 한 일 ✔️ 객체 지향 프로그래밍 사용해보기 (pseudoclassical, class ver.) 프로토타입기반 언어인 Javascript에서 Prototype을 통해 객체를 생성을 할 수 있는 방법들 중 Pseudoclassial한 방법과 class 표현식을 이용하는 방식 두 가지를 이용해 직접 구현해 보았다. class를 사용하는 것이 훨씬 편하기는 하지만, 전반적인 과정을 이해하는 데 Pseudoclassical 한 방법을 먼저 공부한게 도움이 되었던 것 같다. ✔️ 상속, 다형성을 기반으로한 게임 만들기 어제 배운 객체지향 방식을 사용해 간단한 게임을 만들어봤다. prototype을 글로만 공부하기보다는 직접 코드로 쳐보니 좀 더 개념이 잡히는 느낌이었다. 우선은 페어분과 게임 캐릭터(?.. 2021. 1. 16.
210114_TIL (OOP와 함께한 하루..) 🍎 오늘 한 일 ✔️ 객체 지향 프로그래밍(OOP) 관련 개념 블로깅 객체가 무엇인지부터 객체지향 프로그래밍의 네가지 특징(캡상다추), 클래스가 무엇인지까지 먼저 정리를 했다. 그런데 Javascript는 클래스라는 개념이 없는 '프로토타입 기반'언어라 객체지향 프로그래밍을 위해서는 프로토타입이라는 객체를 가지고 클래스의 작동 방식을 흉내내야 했다. 지금까지 어떻게 흉내내왔는지 다양한 시도들이 있었는데, 이를 나도 구현해보기 위해서는 이와 관련된 prototype, __proto__, constructor 속성들의 역할들을 이해하는 것이 필요해 자세히 공부하는 시간을 가졌다. 그리고 이를 바탕으로 Object.create 메서드를 이용해 새로운 프로토타입 객체를 만들어 보기도 했다. + 노션 공유 페이지.. 2021. 1. 15.
210113_TIL (ESLint로 리팩토링하기, Node.js로 알람봇 만들기) 🍎 오늘 한 일 ✔️ ESLint 어떤 규칙을 정해서 그 부분에 수정할 사항이 생기면 도와주는 ESlint를 설치하고, 공식 문서를 참고해 다양한 옵션을 줘보면서 어떤게 나에게 맞는지 확인했다. 빨간줄이 많은게 보기 좋지 않은 것 같아 검사 조건을 최대한 완화시켰다. ✔️ HA 리팩토링 지난 주에 풀었던 HA 문제들을 페어분과 함께 리팩토링하는 시간을 가졌다. 서로 코드를 비교해보면서 비교해 볼 수 있었는데, 페어분과 다른 방식으로 접근한 문제가 많아서 재밌게 진행했던 것 같다. 구조 분해 할당, Spread Operator, 화살표 함수, for of 문 등 ES6문법을 최대한 적용해보려고 했다. 다른 것들은 그래도 (ES6 문법인줄도 모르고) 많이 사용해 비교적 익숙했는데, 구조 분해 할당은 이번에 .. 2021. 1. 14.
반응형