2018년 회고 및 2019년 계획

원래 이런 포스팅은 1월 1일에 해줘야 제맛이겠지만… 방 정리하고 계획짜고, 지난 학기 마무리겸 강의 정리도 하다보니 조금 늦어졌네요. 이 글에서는 2018년 회고를 순서없이 떠오르는 대로 나열해보고, 2019년 목표를 간단하게 정리해볼까 합니다. 2018년 회고 제 상반기를 갈아 넣었던 연구실 Lecture Management System 프로젝트가 가장 힘들었습니다. Vue.js 기반의 프론트엔드 담당 + PM까지 했었는데, 도대체 왜 내가 데이터베이스 […]

Introduction to LLVM (2)

6. LLVM Compiler System For Compiler Developer, 컴파일러를 만들기 위한 모듈화된, 재사용 가능한 컴포넌트들을 제공 -> 컴파일러 제작 시간, 비용 등을 절감 Intermediate Representation(IR)이 매우 잘 정의되어 있음. 깔끔한 구조, 고품질의 컴포넌트가 풍부. C, C++, Objective-C, Swift 등의 프로덕션 레벨 컴파일러의 기반. LLVM JIT, OpenMP RT, AMD OpenCL 등도 LLVM 기반. LLVM Debugger도 굉장히 좋음. […]

Introduction to LLVM (1)

이번 학기에 고급 컴파일러 설계를 수강했습니다. 물론, 대학원 수업이기 때문에 형식적으로 “고급”이 붙었을 뿐이라 정말 완벽하게 고급진 내용은 아니였지만 LLVM의 구조, 철학, 사용하고 있는 이론적 배경 등을 배우는 수업이였기에 LLVM 소개글 정도로 포스팅의 목적을 정했어요. 수업에서 배운 내용을, 그리고 교수님이 내주셨던 과제와 개인이 제안해서 진행했던 과제들을 수행하면서 겪었던 시행착오들을 정리해 봅니다. 대부분의 내용은 Bernd Burgstaller […]

스크립트 언어를 하나쯤 쓰면 좋은 이유

조금 더 정확히는, 인터프리터 언어를 하나쯤 쓰면 좋은 이유로 생각할 수도 있겠다. 이유는 스크립트 언어가 아닌데 인터프리터가 있는 변태 언어, Scala 때문이다. 인터프리터가 주는 편리함은 생각보다 훨씬 좋다. 다음 예제는 엑셀로도 어렵지 않게 할 수 있다. 다만, 나는 조금 더 범용적이고 리눅스에서도 별 생각없이 터미널 창 띄워서 작업하는 그 감성을 좋아할 뿐이다. 위 예제를 보자. […]

Initialize Angular Form Control with Empty Array

Angular에서 폼의 초기값을 넣어줄 때 주의해야할 점이 있다. 폼에서 사용할 FormControlName을 이 곳의 group 에서 넘기는 객체에 미리 선언해야한다. 미리 초기값을 선언한다면 b와 같이, 선언하고 싶지 않다면 a와 같이 선언하면 되는 간단한 API 이다. c는 조금 다르다. 2를 초기값으로 가지며 배열의 유효성 검사가 없다는 뜻이다, c: [2, null]은 c: 2 와 동일하다. 이와 비슷하게, d는 초기값을 2로 […]