전체 글

안녕하세요. 사진과 철학에 관심이 많은 웹 프론트엔드 개발자 오원종입니다. 시간이 지나도 꾸준히 읽힐 수 있는 글을 쓰고 싶습니다. 재미있는 일만 하면서 살고 있는 사람입니다.
안녕하세요 데브오웬입니다. 오랜만에 맥주 리뷰 포스팅을 하려고 합니다! ㅋㅋㅋ 오늘 소개할 맥주는 독일의 대표적인 맥주 브랜드인 에딩거의 헤페바이젠 맥주 '에딩거 바이스비어' 입니다! 저는 개인적으로 밀맥주 덕후에요 ㅋㅋㅋ 대표적으로 호가든과 크로넨버그 블랑 매우 좋아합니다. 밀맥주는 독일 남쪽 바이에른에서 유래한 맥주로, 맥주의 원료 함량 중 밀 맥아의 비율이 50% 이상 들어가는 맥주를 말해요. 밀 맥아가 보리 맥아보다 다루기가 힘들어서 맛있게 만들기 더 어려운 맥주라고 합니다. 대표적인 맥주로는 독일의 에딩거, 바이젠슈테판, 파울라너 등과 오스트리아 에델바이스 바이스비어, 벨기에의 호가든과 크로넨버그 블랑 등이 한국에서 유명하지요. 밀맥주는 엷은 색과 부드러운 촉감, 풍부한 맛과 향이 특징입니다. ..
· 끄적끄적
최근에 다시 프랑스어 공부를 시작했다. 예전부터 하고 싶었었는데, 회사 다닐 때는 바빠서 못했던 것이었다. 원래는 나는 작년에 프랑스어 교재 두 권을 구매했었다. Grammaire Progressive du francais Intermediaire 와 Vocabulaire progressif du francais 라는 책이고 CLE 사에서 출판한 전세계적으로 유명한 프랑스어 교재였다. 하지만 이 책들은 프랑스어 원서였고, 프랑스어로 모든 문장이 쓰여져 있었다. 그러다 보니 한 페이지 한 페이지 넘어가는게 사실 쉽지 않았다. 모르는 단어도 많았고 재미가 없었다. 그래서 나는 학원을 다닐까 고민도 해 보았었다. 강남역 쪽에 프랑스어 학원이 많이 있었다. 커리큘럼도 괜찮고 좋은 선생님들도 많았던 것 같다. 하..
지난번 포스팅에 이어서 타입스크립트의 클래스와 인터페이스에 대해서 조금 더 정리해 보려고 한다. ㅎㅎ 오버라이딩(Overriding) 오버라이딩은 부모 클래스에 정의된 메서드를 자식 클래스에서 새로 구현하는 것을 일컫는 개념이다. 부모 클래스에서 오버라이딩을 당하는(?) 메서드를 오버라이든 메서드 라고 하고, 자식 클래스에서 오버라이딩된 메서드를 오버라이딩 메서드라고 했을 때, 오버라이딩이 이루어지기 위해서는 다음 두 가지의 조건을 만족해야 한다. 조건 1. 오버라이든 메서드의 매개변수 타입은 오버라이딩 메서드의 매개변수 타입과 같거나 상위 타입이어야 한다. (단, 오버라이딩 메서드의 매개변수 타입이 Any 이면 예외) 조건2. 오버라이든 메서드의 매개변수 갯수가 오버라이딩 메서드의 매개변수 갯수와 같거..
이번에는 쓰레드에 대해서 공부한 내용을 정리해 보려고 한다. 지난 포스팅에서 프로세스에 대해서 정리를 한 적이 있었다. 프로세스는 스케줄링의 단위로서 실행 단위(Execution unit)이다. 또한 소유하고 있는 자원에 대한 보호(Protection domain) 개념을 가지고 있기도 하다. 지금까지는 하나의 실행 흐름을 가지고 실행중인 프로그램에 대해서만 다루었기 때문에 프로세스만 가지고 설명이 가능했다. 하지만 프로세스의 처리 속도가 점점 빨라져야 할 필요성에 맞추어, 하나의 프로세스가 수행해야 할 여러 작업들을 나누어 수행할 수 있는 설계가 필요해졌고, 이에 생겨난 개념이 쓰레드(Thread)이다. 쓰레드는 프로세스 내의 실행 흐름이다. 이 역시 실행 단위(Execution unit)으로 볼 수 ..
이번에는 타입스크립트의 클래스와 인터페이스에 대해 공부한 내용을 정리해 보고자 한다. 객체지향 프로그래밍과 클래스 기초 객체지향 프로그래밍(Object Oriented Programming, OOP)은 커다란 문제를 클래스 단위로 나누고 클래스 간의 관계를 추가하면서 코드 중복을 최소화 하는 개발방식이다. 클래스 간의 관계를 추가할 때는 상속이나 포함 관계를 고려하여 추가한다. OOP를 통해 어플리케이션을 개발하면 코드 중복을 상당히 줄일 수 있다. 타입스크립트는 자바스크립트(ES6)에 비해서 OOP를 지원하는 부분이 훨씬 더 많다. 타입스크립트에서는 클래스 선언을 다음과 같이 할 수 있다. 더불어 Rectangle 클래스 타입은 그 아래의 인터페이스 타입과 정확하게 일치한다. class Rectangl..
오랜만에 운영체제 공부를 다시 시작하게 되었다. 이번에는 CPU 스케줄링에 대해 정리해 보려고 한다. CPU 스케줄링이란? CPU 스케줄링은 프로세스가 작업을 수행할 때, 언제 어떤 프로세스에 CPU를 할당할지를 결정하는 작업이다. 기본적으로 멀티프로그래밍과 시분할에 기반한다. 메모리 내에 실행 준비된 프로세스 중 하나를 선택하여 CPU를 할당한다. 한정된 CPU 및 I/O장치 등의 시스템 자원을 가지고 최고의 성능을 내야 하고, 따라서 자원을 언제 어떻게 할당할지를 결정하는 문제는 정말 중요하다. CPU 스케줄링의 목표는 CPU를 최대로 활용하는 것, 즉 idle을 최소화 하는 것이다. 참고로 이 때 time quantum은 커널이 CPU를 쓰는 시간에 포함하지 않는다. CPU 스케줄링의 결정은 다음 ..
Vue.js란 무엇인가? Vue.js는 사용자 인터페이스를 만들기 위한 프로그레시브 프레임워크이다. Vue.js의 핵심 라이브러리는 뷰 레이어만 초점을 맞추어 다른 라이브러리나 기존 프로젝트와의 통합이 매우 쉽다. Vue.js는 현대적 도구 및 지원하는 라이브러리와 함께 사용한다면 정교한 단일 페이지 응용프로그램을 완벽하게 지원한다. Vue.js 의 주요 특징을 정리해 보면 다음과 같다. 1. 가상 DOM(Virtual DOM): Vue.js에서는 React.js, Ember.js 프레임워크와 유사하게 가상 DOM을 사용한다. 가상 DOM은 원본 HTML DOM을 표현하는 메모리 상의 가벼운 DOM 트리로, 원본 DOM에 영향을 미치지 않고 업데이트를 할 수 있다. 2. 컴포넌트(Components): ..
나는 지난 12월부터 약 3개월 정도 역삼역 근처 크로스핏 박스에서 운동을 하고 있다. 최근에 퇴직을 해서 시간이 많아졌고 지난 한 주동안 했던 운동을 정리해 보려고 한다. 크로스핏은 바벨, 덤벨, 풀업바, 로프, 로잉, 박스 등을 이용해서 하는 종합적인 운동이다. 매일매일 WOD(Workout Of Day)가 바뀌며 하는 운동 종목도 달라진다. 시간을 정해놓고 최대한 많은 양의 운동을 하거나, 같은 운동량을 최대한 빠른 시간안에 끝내는 것을 목표로 하는 경우가 많다. 그래서 운동 시간만 놓고 보면 짧다고 생각할 수도 있는데 운동 강도는 전혀 만만하지 않다. 왜 크로스핏을 하냐고 물어보면 나는 "재밌어서" 라고 대답을 한다. 그냥 헬스장도 오랫동안 다녀보았지만 루틴이 지루하고 혼자 하다 보면 중간에 나태..
DevOwen
오웬의 개발 이야기