오늘은 최근에 내가 개발을 하면서 몇 시간동안 고민한 이슈에 대한 정리를 해 보려고 한다. 이 이슈는 내가 어떤 회사에 입사하기 위해 치뤘던 코딩 과제를 하는 도중에 발생하였다. 다행히도 이 과제 기한을 48시간을 주어서, 몇 시간 삽질을 해도 완성 후 제출할 수 있었으나, 만약에 짧은 시간에 해결을 해야 하는 경우였다면 문제를 해결하지 못했을 것이다. 내가 했던 삽질을 앞으로 나를 포함한 누구도 하지 않고 시간을 아끼기 위한 마음에 내용을 정리해 보고자 한다. 먼저 나는 REST API가 구현된 서버 코드를 이미 받은 상태였고, 이미 잘 구현된 API를 그래도 가져다 쓰기만 하면 되는 것이었다. README에 명세된 API는 다음과 같은 조건을 가지고 있었다. POST 메서드로 Content-Type은..
오늘 살펴볼 문제는 백준 3176번 '도로 네트워크' 라는 문제이다. https://www.acmicpc.net/problem/3176 3176번: 도로 네트워크 문제 N개의 도시와 그 도시를 연결하는 N-1개의 도로로 이루어진 도로 네트워크가 있다. 모든 도시의 쌍에는 그 도시를 연결하는 유일한 경로가 있고, 각 도로의 길이는 입력으로 주어진다. 총 K www.acmicpc.net 이 문제는 꽤 어렵다. https://solved.ac/ 라는 알고리즘 문제 난이도 측정 사이트에서는 이 문제를 플레티넘 4 레벨로 분류했다. 플레티넘 레벨은 상당수가 쉽게 해결책을 찾기 어려운 고난이도 문제이다.(나에게는) 이 문제도 그래서 사실 풀다가 다른 사람의 소스를 어느 정도 참고하였고, 천천히 상세하게 풀이를 정리..
자바스크립트에서 일정 시간 동안 발생하는 프로그램의 움직임을 어떻게 표현하고 나타낼 것인지에 대해 그동안 많은 연구가 있었다. 오늘은 그러한 연구의 결과 중 하나인 비동기성(Asynchrony)에 대해서 알아보고자 한다. 프로그램에서 '지금'에 해당하는 부분 그리고 '나중'에 해당하는 부분 사이의 관계가 바로 비동기 프로그래밍의 핵심이다. 자바스크립트 프로그램은 .js 파일 하나로도 작성될 수 있지만 보통은 여러 개의 덩이(chunk), 곧 '지금' 실행 중인 프로그램 덩이 하나 + '나중'에 실행할 프로그램 덩이들로 구성된다. 가장 일반적인 프로그램 덩이 단위는 함수이다. 여기서 명심해야 할 부분은 프로그램은 '지금'과 '나중' 사이에 중단되지 않으며 이 때 작업이 비동기적으로 처리되어 단지 '지금' ..
이번 포스팅에서는 CSS 관련 예상 질문과 답변을 정리해 보고자 한다. CSS class와 id의 차이점을 설명해 주세요. id와 class의 차이는 id는 유일한 요소에 적용할 때, 그리고 css는 복수의 요소에 적용할 때 사용한다는 점이다. 하나의 id는 한 문서에서 한 번만 사용이 가능하지만, 하나의 class는 여러 번 사용이 가능하다. 우선순위는 id가 class보다 높다. float가 어떻게 동작하나요? float 속성은 현재 위치의 왼쪽이나 오른쪽으로 shift되어 배치되는 박스의 일종이다. 이 때 컨텐츠는 float 속성이 적용된 요소의 주변에 위치하게 된다. 클리어링(Clearing)에는 어떤 것들이 있으며, 각각은 어떨 때 사용하나요? float 속성의 영향에서 벗어나기 위해 사용하는 ..
프론트엔드 개발자로 면접을 준비하면서 나올 수 있는 질문 리스트를 틈틈이 작성해 보고자 한다. 첫 번째로 웹 브라우저와 HTML 관련된 질문 리스트를 적어 본다. 참고로 이는 화상 면접이나 전화 면접에서 나올 만한 예상 질문들을 정리하는 내용으로, 경력 3년 이하 주니어 개발자 면접을 대비하기 위함이기에 너무 자세하고 깊은 내용보다는 간결하고 핵심적인 내용 위주로 적어보았다. Web Browser 브라우저의 동작 원리를 간단하게 설명해 주세요. 브라우저의 기본적인 역할은 HTML, CSS 명세에 따라 HTML 파일을 해석해서 표시하는 것이다. 브라우저를 구성하는 요소는 사용자 인터페이스, 브라우저 엔진(크롬, 사파리는 Webkit, 파이어폭스는 Gecko), 렌더링 엔진, 통신, UI 백엔드, 자바스크립..
지난 2주간의 크로스핏 일기를 적어보려 한다. 중간에 연휴가 있어서 센터가 쉰 날도 있었고, 개인적인 사정으로 운동을 쉰 날도 있어서 지난 2주 동안은 평소만큼 운동을 많이 하지는 못했다. 분발해야 할 기록 적당히 좋지도 나쁘지도 않은 기록 스스로 만족한 기록 4월 28일 화요일 WOD Deadlifts 5 sets 8 reps Bench Press 5 sets 8 reps Dips 5 sets 8-12 reps 이날은 스트렝스 훈련을 했다. 1RM의 60% 정도의 무게를 드는 훈련으로 나의 경우 데드는 185lb, 벤치 프레스는 115lb 정도로 8reps를 했던 것 같다. 아직 많이 부족하다. 악력도 키워야 하고 무엇보다 힘이 강해져야 함을 느꼈다. 스트렝스 훈련도 WOD와 별도로 틈틈히 하도록 하자..
나는 요즘 네트워크 공부를 하고 있다. 학부에서 배우지 않았지만 업무를 하면서 필요성을 많이 느꼈고, 기본적인 지식은 알고 있어야 겠다는 생각으로 공부를 시작하게 되었다. 나는 Udacity에서 라는 무료 강의를 통해 공부 중이며, 강의 수가 많지 않아서 빠르게 완강할 수 있다. 공부를 하면서 기본적인 개념들을 이렇게 블로그에 정리를 해 놓으려고 한다. https://www.udacity.com/course/networking-for-web-developers--ud256 Networking for Web Developers You've used the Internet. Now find out more about how it works. www.udacity.com 우선, 이 강의에서 간단한 실습들을 하..
스쿼시를 배우기 시작한지 한 달 정도 지났다. 아직 기본기를 배우는 단계이지만, 나중에도 기억하기 위해 스쿼시 기본기에 대해서 하나씩 차근차근 정리해 보려고 한다. 첫 번째는 스텝과 움직임에 대해서 정리해 보려고 한다. 스쿼시는 공이 정말 빠르게 왔다갔다 하고, 눈 깜짝할 사이에 공이 움직이기 때문에, 빠르게 움직이지 않으면 공을 놓치기 쉽다. 하지만 그렇다고 계속 빠르게 움직이려고 한다면 지치기가 쉽다. 나는 아직 이정도 수준이 되려면 멀었지만, 선수들의 경기를 보면 계속해서 공을 구석구석으로 찔러 넣는데 그걸 다 따라가서 치는 건 상당히 체력적으로 부담이 된다. 따라서 효율적인 스텝과 최소한의 움직임을 아는 것이 굉장히 중요하다. https://www.youtube.com/watch?v=L_bO2Ik..