전체 글

안녕하세요. 사진과 철학에 관심이 많은 웹 프론트엔드 개발자 오원종입니다. 시간이 지나도 꾸준히 읽힐 수 있는 글을 쓰고 싶습니다. 재미있는 일만 하면서 살고 있는 사람입니다.
오늘은 백준 3012번 문제를 풀어보려고 한다. 이 문제는 07/08 크로아티아 정보올림피아드 기출문제이다. https://www.acmicpc.net/problem/3012 3012번: 올바른 괄호 문자열 예제 1의 경우 다음이 가능하다. ({([()])}), ()([()]{}), ([([])]{}) www.acmicpc.net 크로아티아 정보올림피아드 기출 문제여서 그런지 문제에 대한 아이디어가 쉽게 떠오르지는 않았던 것 같다. (난이도도 심지어 플레티넘 3 ㄷㄷ...) 처음에는 ? 각각에 들어갈 수 있는 문자 "{", "[", "(" 등을 찾아서 경우의 수를 생각해 주어야 하나? 라고도 떠올려 봤는데 너무 생각해 주어야 할 케이스가 많았고 이 방법은 맞지 않다는 것을 깨달았다. 결국 DP를 통해 한..
이번 포스팅에서는 리액트 컴포넌트 성능 최적화 방법들을 알아보고자 한다. 컴포넌트가 리렌더링되는 경우는 다음과 같다. 자신이 전달받은 props가 변경될 때 자신의 state가 바뀔 때 부모 컴포넌트가 리렌더링 될 때 forceUpdate 함수가 실행이 될 때 매번 하나의 변화가 생길 때 마다 모든 요소들이 다시 불러와 지면 그 갯수가 적을 때는 큰 차이가 없지만, 수 백개, 수 천개 그리고 그 이상의 요소들을 불러올 때 성능이 느려지게 될 것이다. 따라서 리렌더링을 시키는 요소들을 어느정도 통제해 줄 필요가 생기게 되는데, 여기에서 많이 쓰이는 함수가 React.memo() 함수이다. React.memo() 클래스형 컴포넌트에서는 shouldComponentUpdate라는 라이프사이클을 사용하면 되는데..
오늘 소개할 맥주는 독일의 밀맥주 파울라너 바이스비어(Paulaner Weissbier)이다. 파울라너는 성 프란치스코 바오로에서 따온 이름으로 1634년 수도원 Neudeck ob der Au에서 양조가 시작되었다. 독일 대표하는 바이젠 맥주이며 맥주 생산량이 독일 내에서 10위권 내에 들어간다고 한다. 그렇다면 바이젠(Weizen)은 어떤 맥주를 말하는 걸까? Weizen은 독일어로 밀(wheat)이라는 뜻이다. 바이젠은 독일 남부지역에서 생산되는 밀맥주로, 바이에른 뮌헨의 다른 갈색 맥주에 비해 빛깔이 연하다고 해서 하얀 맥주를 뜻하는 '바이스비어'라고 불리기도 한다. 쓴 맛이 덜하고 부드러운 편이며 대표적인 맥주 브랜드로는 바이젠슈테판, 파울라너, 크롬바커, 에델바이스 등이 있다. 그리고 Hefe..
나는 이번 9월 우아한형제들에서 주최하는 우아한 테크러닝 세미나를 듣기로 했다. 원래는 오프라인으로 30명만 받아서 진행하기로 했었다는데, 코로나19 때문에 온라인으로 전환이 되면서 수백명이 들을 수 있게 되었다. 나한테는 참 다행인 것 같다. ㅎㅎ 이번 온라인 세미나는 3년차 미만의 주니어 웹 프론트엔드 개발자들을 대상으로 리액트와 타입스크립트를 중심으로 주니어 웹 프론트엔드 개발자에게 필요한 기술들을 알려준다. 나 같은 경우 지금 다니고 있는 회사에서 시니어 웹 프론트엔드 개발자가 없다 보니 시니어의 관점(?)에서 웹 프론트엔드 개발을 어떻게 바라보는지가 궁금했고 배우고 싶어서 세미나를 듣게 되었다. 한달 동안 진행이 되는데, 매주 공부한 내용들을 간단하게나마 정리해 보려고 한다. 첫 번째 세션 9월..
오늘은 오랜만에 BFS 문제를 풀어보려 한다. 백준 2146번 다리 만들기 문제이다.https://www.acmicpc.net/problem/21462146번: 다리 만들기여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다www.acmicpc.net 이 문제는 엄청 어렵게 느껴지진 않았다. BFS를 익숙하게 쓸 수 있으면 큰 문제 없이 풀 수 있는 문제로 보인다. 다만 BFS를 여러 차례 써야 하는 풀이가 있어서 조금 복잡하게 느껴질 수도 있을 것 같다.BFS에 대해서 간단하게 설명을 하면, 너비 우선 탐색 방법으로 그래프나 트리를 완전 탐색할 수 있는 방법 중 하나이다..
이번 포스팅에서는 자바스크립트의 스코프에 대해서 기본적인 개념을 알아 보려고 한다. 변수의 값은 어디에 저장되는지, 그리고 필요할 때 변수를 어떻게 찾아서 써야 하는지는 프로그래밍에서 중요한 요소이다. 따라서 특정 장소에 변수를 저장하고 나중에 그 변수를 찾는 데는 규칙이 필요하다. 이러한 규칙을 스코프(scope)라고 한다. 자바스크립트를 일반적으로 '동적' 또는 '인터프리터' 언어로 분류하지만 자바스크립트는 사실 '컴파일러' 언어이다. 물론 자바스크립트가 전통적인 많은 컴파일러 언어처럼 코드를 미리 컴파일하거나 컴파일한 결과를 분산 시스템에서 이용할 수 있는 것은 아니다. 하지만 자바스크립트 엔진은 전통적인 컴파일러 언어에서 컴파일러가 하는 일의 상당 부분을 우리가 아는 것보다 더 멋있게(?) 처리한..
이번 포스팅에서는 내가 Frenchpod101을 통해서 공부한 프랑스어를 기초부터 차근차근 정리해 보려고 한다. 어휘, 문법 크게 두 가지로 나누어서 정리를 할 예정이다. 어휘 comment : how Comment tu t'appelles? : What is your name? une fourchette : a fork Tu as une serviette en papier et une fourchette? : Do you have a paper napkin and a fork? faire : to make, to do Je peux lui montrer comment le faire. : I can show him how to do it. habiter : to reside, to live En 200..
· 끄적끄적
트레바리 후기를 써 보려고 한다. 나는 올해 5월부터 8월까지 럽럽-끼리라는 트레바리 클럽에 참여했다. 참고로 이건 온전히 내 돈 내고 신청했던 클럽 후기이다. (후원 해주시면 더 잘쓸 자신 있습니다!) 트레바리 첫 4개월동안 내가 보고 느낀 것들을 가식없이 솔직하게 적어 보려고 한다. https://trevari.co.kr/ 독서모임 기반 커뮤니티 트레바리 함께 읽고, 쓰고, 대화하고, 친해져요! trevari.co.kr 사실 이번 클럽은 3월에 시작했어야 했다. 기억상으로 2월달에 신청을 했던 것 같다. ㅋㅋ 그러다가 코로나가 터졌고, 모임은 연기되었다. 마침 그 때가 내가 회사를 퇴직한 시점과 맞물렸다. 사실 진지하게 환불 받을까도 고민했던 것 같다. 그러다가 그냥 정신없어서 잊고 살았고 결국 5월..
DevOwen
오웬의 개발 이야기