본문 바로가기

반응형

전체 글

(104)
컴퓨터과학부 2학년의 경험 1학년 2학기, 학과 행사 경품 추첨에서 운이 좋게도 빔프로젝터에 당첨되었다. 성능은 그저 그랬지만, 안드로이드 기반이라 다른 앱을 설치할 수도 있었다. 키보드와 마우스를 블루투스로 연결해 게임을 돌려도기도 하고, 밤하늘의 별들을 보여주는 앱을 만들어 천장에 비추곤 했다.여름방학 때 게임 앱을 만들어보기도 했고, 안드로이드 기반 빔프로젝터로 이리저리 갖고 놀다보니 자연스럽게 안드로이드 개발에 관심이 생겼다. 게임 앱과 밤하늘의 별 앱은 플래시로 만든 것이지만, 이제는 더 표준적인 방법인, 안드로이드 스튜디오를 설치해 자바로 앱을 만들어보고 싶어졌다. 당시 내 노트북은 비록 저전력 CPU에 내장그래픽이었지만, 충분한 인내와 함께라면 어찌어찌 개발은 할 수 있었다. 그렇게 자바를 배우기 시작해 학교 공지사항..
컴퓨터과학부 진학 전, 그리고 1학년의 경험 컴퓨터과학부에 진학한 것은 개발을 좋아했기 때문이다. 초등학교 5학년 때 우연히 방과후학교 수업을 통해 플래시를 배웠고, 이후 계속 혼자 조금씩 공부해 간단한 게임을 만들어 친구들과 즐기곤 했다. 중고등학생 때는 음악 플레이어 등 혼자 쓸만한 도구들을 만들기도 했다. 이후 고2 때는 학교 축제 앱을 개발해 배포했고, 축제 프로그램 최우수상이었는지 아무튼 가장 큰 상을 탔다. 나 혼자 만들고 배포해보고 싶어서 했던 것이라 애초에 수상 자격이 된다는 것도 몰랐다. 그저 새벽까지(아침까지) 재밌게 개발했던 것은 확실했다. 나는 내가 만든 서비스를 다른 사람이 사용하며 피드백을 받는 것이 즐거웠다. 자연스럽게 나는 개발자가 되기로 생각했다.  일찍이 개발을 경험했다고 해서 내가 개발을 '잘' 했던 것은 아니었다..
카카오 FE 개발 3년 돌아보기 첫 회사에 입사한 지도 벌써 만 3년이다. 정말 바쁜 날들이었고, 훌륭한 동료분들 사이에서 정말 정말 많이 배웠다. 개발뿐만 아니라, 다른 것들도. 1, 2년 차 때까지는 대학 4학년 때부터 하던 알고리즘 스터디도 계속하고, 토이 프로젝트나 개인 공부도 많이 했다. 하지만 최근 들어서는 다소 부진해진 것 같다. 그만큼 모니터 바깥으로 눈을 돌렸기 때문인데, 특별히 아쉬울 건 없고 내 생활이 계속 변하고 있구나 생각한다. 옛날에는 소비가 정말 없는 편이었는데, 요새는 조금 늘었다. 최근에는 조금 비싼 모니터도 사고, 그보다 더 비싼 키보드(친구가 선물로 많이 보태줬다.)도 추가됐다. 물론 여전히 멋지고 예쁜 옷이나 신발을 사는 건 어렵다. 여전히 내 코드는 마음에 안 든다. 작성할 당시에는 최선이었겠지만,..
CSS 'ic' 단위 살펴보기 CSS에는 숫자( 자료형)에 단위를 붙인 '치수' 자료형()이 있다. 여기에는 (거리), (각도), (시간), (주파수), (해상도) 등이 있다. 본 글에서는 자료형의 단위 중 하나인 ic에 대해 알아본다. ic 단위란? ic는 'ideograph count'(표의문자 수)의 뜻을 가진, CJK 문자의 일반적인 진행 단위다. 조금더 정확히는, 水(U+6C34) 글리프를 렌더링 할 때 사용되는 폰트에서 해당 글리프의 진행 단위를 나타낸다. 여기서 글리프의 '진행 단위'란, 요소의 인라인 축에 따른 너비나 높이다. 일반적으로는 글리프의 너비라고 생각하면 된다. caniuse.com에 따르면, IE와 Samsung Internet을 제외한 모던 브라우저에서 대부분 지원된다. Opera도 최신 버전(92)부터 ..
Typescript 4.9 2022년 11월, Typescript 4.9 RC(Release Candidate)가 발표되었다. RC이므로 정식 릴리즈 전까지 중요한 버그 수정 외 변경사항은 없을 예정이다. 이번 v4.9가 담은 변경사항을 알아보자. satisfies 기존에는 다음과 같이 코드를 작성할 수 없었다. type DataType = Record; const data: DataType = { name: 'John', age: 30, }; const upperCasedName = data.name.toUpperCase(); // error const nextAge = data.age + 1; // error console.log(upperCasedName, nextAge); data.name, data.age가 각각 stri..
OKLCH란? 웹 기술이 발전함에 따라 CSS를 이용한 색 표현 기술 또한 발전하고 있다. 이제 정적인 색 하나를 표현하는 것을 넘어, 색을 재사용하거나 변화를 주는 등, 더 동적으로 사용하고 있다. 그리고 sRGB를 넘어 DCI-P3 색영역을 지원하는 모니터가 출시하고 있어, 더 다양한 색을 지정할 필요 또한 생겼다. Lab & LCH Lab는 CIE XYZ(또는 CIE 1931 XYZ로, CIE RGB 색 공간을 선형변환하여 만들어짐)를 비선형 변환하여 만들어진 색 공간으로, XYZ 색 공간보다 균일한 색 체계를 목표로 한다. 여기서 '균일'하다는 것은, 색 공간에서 같은 거리만큼 떨어진 색채는 인간의 눈에 같은 크기만큼의 색 차이로 인지되는 것을 뜻한다. 이를 위해 휘도(밝기)를 L축으로 독립하고, 두 축 a, ..
NPM은 사실 Node Package Manager의 약어가 아니다. npm은 흔히 Node Package Manager의 약어로 알려져있지만 실제로는 그렇지 않다. 사실 npm은 npm is not a acronym(직역: npm은 약어가 아니다)에 대한 재귀 약어다. PHP가 PHP: Hypertext Preprocessor의 재귀 약어인 것과 같다. 그렇지만 Node Package Manager가 아주 틀린 말은 아니다. npm의 첫 커밋에서 README.md의 제목은 npm - The Node Package Manager였다. 다만 약 5년 뒤 JavaScript Package Manager로 변경되었을 뿐이다. 한편, npm의 전신은 pm(pkgmakeinst의 약어)이라는 bash 유틸리티였다.
[Web] Top Layer Top Layer(최상위 레이어)는 엘리먼트의 순서있는 집합으로, 브라우저 뷰포트에서 관련 document 위에 존재한다. 각 document는 하나의 연관된 최상위 레이어를 갖는다. 최상위 레이어의 요소는 z-index나 DOM 계층에 대해 걱정할 필요가 없다. 또한, 해당 요소들은 ::backdrop 의사-엘리먼트를 갖는다. 최상위 레이어의 요소는 그 집합에 나타나는 순서대로 쌓인다. 가장 마지막으로 나타난 항목이 맨 위에 나타난다. 즉, 최상위 레이어 내 요소 간 z-index는 의미가 없다. 따라서 요소의 순서를 변경하려면 삭제 후 다시 추가해야 한다. ::backdrop은 그것과 관련된 요소의 바로 밑에 그려진다. 즉, 이전의 요소들보다는 위에 그려진다. 최상위 레이어가 없었을 때는, 맨 마지막..