Today Sangmin Learned
article thumbnail
[자료구조] 트리
CS/자료구조 2021. 2. 22. 16:32

알고리즘 및 운영체제 정규학기 수업 대비 자료구조 공부를 하고 있다. 자료구조 트리(Tree) 데이터의 상-하 관계(계층적 관계)를 저장하는 자료 구조이다. 컴퓨터 폴더 구조 및 클래스 상속 관계 등을 예로 들 수 있다. 배열 및 링크드 리스트: 선형적 자료 구조 (앞과 뒤 라는 순서를 저장할 수 있음) 해시 테이블: 데이터 관계를 저장하지 않음 -> 계층적 데이터 관계를 저장하기에 적합하지 않다. 트리를 통해 저장할 수 있다. 트리 노드는 하위 관계가 있는 노드를 가리키는 레퍼런스를 갖는다. B와 C를 A의 자식 노드로 만들고 싶다고 해보자. 그럴 경우 A에 B와 C를 가리키는 레퍼런스를 저장하면 된다. 트리에서는 보통 이 레퍼런스를 화살표로 나타낸다. 더 많은 노드를 만들고, 이 노드들 사이에 부모-..

article thumbnail
[React] React의 기본, 특징과 JSX
Web/React 2021. 2. 15. 14:19

을 요약하고 동시에 제 나름대로의 생각이 담겨 있는 글입니다. React의 기본 render 함수 render() { ... } render 함수가 컴포넌트의 생김새를 정의함. view가 어떻게 생겼는지, 그리고 어떻게 작동하는지에 대한 객체를 반환함 render 함수를 통해 내부의 컴포넌트를 렌더링 React의 특징 Virtual DOM DOM은 객체로 문서 구조를 표현하는 방법을 말한다. DOM 자체는 빠르지만 웹 브라우저의 규모가 커질 경우 DOM의 변화 -> 다시 CSS를 연산 -> 레이아웃 구성 -> 페이지 리페인트의 과정에서 로딩되는 데이터가 많아지므로 느려짐. -> 어떻게 할까? 에서 출발함. Virtual DOM의 동작 방식 실제 DOM에 접근하는 대신에, 해당 DOM을 추상화한 자바스크립..

2/8 maplestory JS 코드 리팩토링 완성
토이프로젝트 2021. 2. 8. 18:51

https://jsfiddle.net/45xv7swm/5/ 에 maplestory 프로젝트 JS 코드 최종 완성본을 올렸다. const termSubmit = document.getElementById("btn_add_term"); const termList = document.getElementById("list_terms"); const termBox = document.getElementById("text_term"); const termLi = document.querySelectorAll("ul li"); termSubmit.addEventListener("click", () => { addRelatedTerm(termBox.value); }, false); termBox.addEventList..

기초 문법 #3 함수
Web 2021. 2. 8. 15:29

여기를 참고했다. 3.5 함수 자바스크립트 프로그램에서 가장 핵심적인 역할을 차지하는 함수 타입이 타입스크립트에서는 어떻게 표현되는지 다룬다. 함수의 타입 함수의 타입을 결정하기 위해서는 다음 두 가지 정보가 필요하다. 매개변수(parameter)의 타입 반환값(return value)의 타입 (반환 타입) 매개변수의 경우, 변수의 타입을 표기할 때와 마찬가지로 매개변수 뒤에 콜론(:)을 붙이고 타입을 적는다. (param1: number) 반환 타입은 매개변수 목록을 닫는 괄호())와 함수 본문을 여는 대괄호({) 사이에 콜론을 붙이고 표기한다.(function (): number { ... }) 예를 들어 두 숫자를 받아 그 합을 반환하는 함수는 다음과 같이 타입 표기한다. function sum(a..

기초 문법 #2 배열, 튜플
Web 2021. 2. 6. 23:19

여기를 참고했다. 3.2 배열과 튜플 순서가 있는 원소의 모음(collection)을 나타내는 가장 간단하면서도 유용한 자료구조인 배열, 그리고 그 사촌 튜플을 나타내는 타입에 대해 다룬다. 배열 배열 타입은 자바스크립트 Array 값의 타입을 나타내는데 쓰인다. 원소 타입 뒤에 대괄호([])를 붙여 표현한다. const pibonacci: number[] = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]; const myFavoriteBeers: String[] = [ "Imperial Stout", "India Pale Ale", "Weizenbock", ];배열 타입을 표현하는 또다른 방식이 있다. const pibonacci: Array = [0, 1, 1, 2, 3, 5, ..

기초 문법 #1 타입
Web 2021. 2. 5. 10:26

타입스크립트 코드에서 어떤 변수 또는 값의 타입을 표시하기 위해 타입 표기를 사용한다. 타입 표기는 식별자 또는 값 뒤에 콜론(:)을 붙여 value: type의 형태로 표기한다. const areYouCool: boolean = true; const answer: number = 42; const typescript: string = "great"; const greetings: string = ` Hello, Readers! Welcome to TypeScript. `; const hasType: Object = { TypeScript: true, JavaScript: false, }; 불리언 자바스크립트의 `boolean`에 대응하는, 참 또는 거짓을 나타내는 타입이다. const isTypeScr..

2/2 maplestory JS 코드 리팩토링
토이프로젝트 2021. 2. 2. 22:29

음.. for문을 돌리면서 파라미터를 받아와서 중복 검사까지 진행하는 코드 리팩토링을 완성을 했다. const termSubmit = document.getElementById("btn_add_term"); const termList = document.getElementById("list_terms"); const termBox = document.getElementById("text_term"); const termLi = document.querySelectorAll("ul li"); termBox.addEventListener("keyup", removeSpecial); termSubmit.addEventListener("click", removeSpecial); function removeSpe..

2/2 Gtk-WARNING **: cannot open display:
Slackbot 2021. 2. 2. 22:23

오늘은 일단 나가던 ES6 문법을 조금 더 나갔고, Slackbot DISPLAY 환경변수 설정 오류 디버깅을 시도했다. 환경변수 설정 오류는 ~/.bashrc에 들어가지지 않는 새로운 오류가 발견되었고, 일단 구글링을 통해서도 해결되지 않아서 오늘은 여기까지 했다. 내일 더 찾아봐야한다. 구글링 실력도 많이 부족하다고 느꼈다.

article thumbnail
1/27 디버깅#4 DISPLAY 오류
Slackbot 2021. 1. 27. 15:39

하..... 하루종일 붙잡고 있는데도 해결 못했다.. 어제랑 똑같은 곳에 머물러있다.. 일단 PyAutoGUI가 제대로 동작하고 있지 않다는 것은 확실하다. AWS EC2 내에서의 문제라 내 노트북에서 실행하면 아래와 같이 아주 잘 나온다 ㅠㅠ 해당 오류에 대해 구글링을 계속 해봤는데, 애초에 비슷한 오류를 겪는 사람이 많지 않고 스택오버플로우에 나와 같은 질문에 대한 해결책을 보고 따라해 봤는데도 안된다. 답답해 미치겠다 하 ..

article thumbnail
1/26 디버깅#3 AWS EC2에 PyAutoGUI가 적용되지 않는 문제 발생
Slackbot 2021. 1. 26. 15:13

어제 이미지와 함께 코로나 확진자수를 띄워주는 것을 PyAutoGUI와 Selenium의 webdriver를 이용해서 성공했다는 내용을 포스팅했다. 근데 문제는, 이것을 AWS EC2에 크론탭으로 적용하는 과정에서 발생한다. 구글링해본 결과 PyAutoGUI가 제대로 적용되지 않아서 생기는 문제라고 한다. 내가 사용하고 있는 AWS EC2 프리 티어 인스턴스의 경우 yum을 apt-get 대신에 사용하고 있다. 그래서 모든 install을 (sudo) yum install python37 이런식으로 해야하는데, yum의 경우 apt-get에 대해 쓰는 빈도가 현저히 떨어지고 대부분 정보가 apt-get 기반으로 되어있어서 yum을 통한 개발이 힘든 상황이다. 구글링을 계속 해봐도 yum 자체를 많이 쓰지..