분류 전체보기
[Compiler] 1. Lexical Analyzer :: 동작하는 방식
[Compiler] 1. Lexical Analyzer :: 동작하는 방식
2020.04.09* 2019/07/30 - [Programming/Compiler] - [Compiler] 1. Lexical Analyzer :: 소개와 용어 정리에서 이어지는 내용입니다. 지난번 글에서 말했던 개념을 빠르게 복습해봅시다 더보기 Token: (Token Name, 어떤 문자들을 대표하는 Symbol)와 (Token Value, 토큰의 구체적인 속성)의 쌍 (ex) "산술연산자(+, -, *, /, %)", "반복문(for, while)" Lexeme: 토큰들의 구체적인 예 (ex) "+" -> 산술연산자라는 토큰의 구체적인 예 Lexical Analyzer(Scanner)의 동작 방식에 대해 알아보자 Lexical Analyzer는 input으로 준 문자열을 읽어서 각각의 단어들이 무엇을 의미하는 단어..
[Quick Fix] WSL Powerline9k Theme 깨짐/이상하게 보이는 오류 해결법 :: Overflowing rPrompt on WSL
[Quick Fix] WSL Powerline9k Theme 깨짐/이상하게 보이는 오류 해결법 :: Overflowing rPrompt on WSL
2020.03.23WSL에서 Powerline9k나 Powerline10k 테마로 이쁘게 꾸며서 사용하려고 했다. 하지만 다음과 같이 창이 넘쳐흐르는 에러가 발생했고 그냥 나두기에는 너무 거슬렸다. 이 오류 말고도 아이콘 잘림 또는 깨짐, 오버플로우, 등이 있을 수 있다. 이 오류들은 전부 Double-Width Glyph때문에 발생하는 문제들이다. 원인 - Double-Width Glyph Double-Width Glyph: Monospace 폰트와 달리 두 개의 공간을 차지하는 문자 Ex) , ,... (아마 폰트에서 지원되지 않아서 안보일 수도 있다. 사진으로 바로 아래에 올렸으니 어떤 문자인지 확인해보자.) 문제를 일으키는 2칸 문자들의 예 Mac(iterm2)이나 다른 OS의 터미널 에뮬레이터에서는 잘 동작하..
Email Protocol 비교 :: POP3, IMAP, SMTP
Email Protocol 비교 :: POP3, IMAP, SMTP
2020.03.21이메일 Protocol을 검색하면 가장 먼저 POP3, IMAP, SMTP를 볼 수 있다. 이번 글에서는 이 3가지 Protocol을 소개해보겠다. 서버로부터 이메일을 가져오는 Protocol로 POP3 또는 IMAP를 쓰고 이메일을 보내는 Protocol로 SMTP가 쓰인다. 먼저 이메일을 가져오는 Protocol들에 대해 알아보자. Email 가져오기 - POP3, IMAP 흔히 이메일을 다른 곳에서 받아와서 보기 위한 방법으로 POP3 또는 IMAP 두 가지의 선택지를 준다. 그런데 지메일 설정에서는 POP3 Protocol은 "POP 다운로드", IMAP Protocol은 "IMAP 액세스"라고 표기했다. 둘 다 똑같이 내 이메일을 다른 기기에서 확인하기 위한 방법이데 왜 이렇게 미묘하게 다른 말..
Git Internals 정리 :: Git은 어떻게 동작할까?
Git Internals 정리 :: Git은 어떻게 동작할까?
2020.03.16Git의 내부 동작 방식Git은 복잡하고 처음에는 매뉴얼만으로 이해하긴 어려웠다...그리고 가끔씩 무슨 소리인지 모르겠는 경고문을 보여주곤 한다...나도 처음에 막 건들다가 아래와 같은 경고문을 보게 되면 정말 당황한 적이 있다. Detached Head?? Linked List의 헤드인가...? 왜 Head가 분리됐지...?Git의 문서를 보면 아직 이해가 안 되거나 아주 중요한 내용인지 모르고 그냥 읽고 넘어가버릴 때가 많다... 매뉴얼은 이해하기 어렵고 Git의 주의점까지 다 외워야 할까? ㅠㅠ나는 Pro Git의 마지막 장인 Git Internals(Git 내부 동작)를 읽으며 모든 막막함이 자연스럽게 해결되었다.[참고] Pro Git이란?Git의 교과서이다. 정리가 상세하게 되어있어서 웬만한 건..
졸업하기 전에 공부하고 싶은 것들
졸업하기 전에 공부하고 싶은 것들
2020.03.11배우면 배울수록 많은 분야들을 접해보고 싶어진다... 하지만 곧 졸업하면 더 많은 것들을 접하고 공부할 시간이 없을 것 같아서 슬프다 그래서 졸업 전에 내가 도전해보고 싶은 것들을 한번 정리해봤다. 1. 3D Modeling (blender) 2. 글 쓰는 법, 논문 쓰는 법, 잘 정리하는 법 3. 수학: 미분 방정식, 수치해석, 해석학, 정수론, 수리통계학 4. 자연계의 현상 시뮬레이션, Nature of Code를 읽으면서 나도 해보고 싶어졌당 5. 물리: 고전역학, 동역학, 파인만의 물리학 책 읽기 6. 기하 알고리즘 7. 디자인: 색감, 크기, 조화 등 여러 가지 디자인에 대해서 배우고 싶다.. 8. 강화학습을 이용한 앱 만들기 (Unity ML-Agent) 9. 누나랑 자바스크립트 심화 공부 1..
[리눅스] 간단한 리눅스 명령어들 정리
[리눅스] 간단한 리눅스 명령어들 정리
2020.03.08SSH openssh로 터미널에 접속한다. telnet과 달리 평문 통신을 하지 않고 보안이 되어있다. ssh -p 포트번호 아이디@호스트주소 보통 ssh와 동일한 포트로 ftp도 열어놓는다. logout 또는 exit 명령어로 로그아웃한다. SFTP 보안이 된 ftp이다. sftp -P 포트번호 아이디@호스트주소 대문자 P를 사용해서 포트번호를 지정하는 것을 주의하자. get을 하면 다운 put을 하면 업로드 bye를 하면 종료 SCP scp 명령어는 별도의 글을 작성했다. 2020/04/15 - [Programming/Linux] - [리눅스] scp 기본 사용법 List 파일을 모두 리스팅한다. ls 숨긴 파일과 권한까지 포함하여 한 줄씩 파일을 모두 리스팅한다. ls -al Recursive mo..
[C# 8.0] Nullable Reference Type이란?
[C# 8.0] Nullable Reference Type이란?
2020.02.29C# 8.0의 새로운 기능들 중 하나로 Nullable Reference Type(널 참조 형식)이 있다. https://docs.microsoft.com/ko-kr/dotnet/csharp/whats-new/csharp-8#nullable-reference-types C# 8.0의 새로운 기능 - C# 가이드 C# 8.0의 새로운 기능을 살펴봅니다. docs.microsoft.com 이미 클래스와 같은 Reference Type은 null을 가질 수 있는데 굳이 Nullable 필요할까?라는 의문이 들어서 찾아봤다. Nullable Reference Type에 대해서 알아보자 1. Nullable Reference Type을 선언하려면 Nullable Value Type과 같이 Class명 우측에 물음..
.gitignore가 동작 안할 때 상황별로 해결하기
.gitignore가 동작 안할 때 상황별로 해결하기
2020.02.29.gitignore 파일을 나중에 추가를 해주거나 아니면 다른 실수를 하면 .gitignore에 있는 파일이 전부 untracked로 파일로 다 뜰 때가 있다. 무시된 파일을 다시 추적해야 할 수도 있고 추적하고 있는 파일을 다시 무시해야 줘야 할 때도 있다. 그때의 해결법을 상황별로 정리했다. gitignore 작성 실수로 인해 발생하는 문제의 3가지 패턴과 그 해결법 상황 1. 이미 모든 파일을 git이 추적중인 경우 상황 2. 이미 추적 중인 파일 몇 개만 무시하고 싶은 경우 상황 3. 반대로 .gitignore에 있었던 파일을 다시 추적하고 싶을 경우 상황 1. 이미 모든 파일을 git이 추적 중인 경우 주로 .gitignore를 뒤늦게 추가해줬거나 잘못된 .gitignore을 올리고 나중에 눈치..
DigitalOcean으로 네트워크 실습용 서버 만들기
DigitalOcean으로 네트워크 실습용 서버 만들기
2020.02.29DigtalOcean에서 실습용 서버 만들기 DigtalOcean: 서버를 만들 수 있는 사이트. 대학생이면 Github Student로 50달러를 교육용으로 제공받을 수 있다. 아니라도 https://m.do.co/c/01669a1b94dc 이 링크를 통해서 가입을 하면 100달러를 무료로 지급해준다. (가입자 이벤트: 나한테도 25달러가 온다고 한다.) Server란? 원격으로 조정 가능한 컴퓨터이다. 주로 파일을 저장하거나 웹 사이트를 호스팅하기 위해 사용한다. 접속해야할 주소가 계속 바뀌면 안되니깐 Static IP Adress를 사용한다. 주로 인터넷을 통해 원격으로 접속한다. DigitalOcean으로 쉽게 서버 만들기 먼저 DigitalOcean에 일단 가입을 하자. https://m.do...
[CMD] 내가 연 폴더를 바로 Working Directory로 설정하기
[CMD] 내가 연 폴더를 바로 Working Directory로 설정하기
2020.02.28Window에서 cd하기 귀찮을 때 Tip 내가 클릭해서 연 폴더를 바로 Working Directory로 설정해서 CMD창을 열 수 있다. 1. Working Directory 폴더에 간다. 2. 주소창에 cmd를 친다. 3. 끝
[유니티] 모든 자식들 접근하기
[유니티] 모든 자식들 접근하기
2020.02.26유니티에서 간단하게 모든 자식들 접근하기 1. 선택한 게임 오브젝트 바로 아래에 있는 자식만 iterate하고 싶은 경우 foreach(Transform child in transform) { Debug.Log(child.name); } 2. 선택한 게임 오브젝트 아래에 있는 모든 자식을 iterate하고 싶은 경우 Transform[] allChildren = GetComponentsInChildren(); foreach(Transform child in allChildren) { // 자기 자신의 경우엔 무시 // (게임오브젝트명이 다 다르다고 가정했을 때 통하는 코드) if(child.name == transform.name) return; Debug.Log(child.name); } GetComp..
[C#] Nullable (Value Type)
[C#] Nullable (Value Type)
2020.02.26Nullable이란? Nullable Value Type은 널 값을 가질 수 없는 Value/자료형을 Null 값을 허용해주는 게 하는 새로운 타입이다. 예를 들어서, Bool은 True 또는 False만 가질 수 있지만 Nullable을 쓰면 True, False, Null까지 가지게 해 준다. Nullable 선언하기 Nullable Type은 값 형식(T)에 물음표(?)를 붙이면 된다. T? 의 예시 bool? isOlder = null; int? myAge = 12; Nullable Type은 제네릭인 System.Nullable 구조체의 인스턴스여서 Nullable로도 선언할 수 있다. Nullable의 예시 Nullable isOlder = null; Nullable myAge; 대표 이미지 ..