😃책에서 기억하고 싶은 내용을 써보세요 쉬운 정답은 없다. 도구든, 언어든, 운영 체제든 최고의 해결 방안 같은 것은 없다. 오직 특정한 환경 조건들마다 가장 적절한 시스템들이 있을 뿐이다. 바로 이것이 실용주의가 필요한 이유다. 어떤 특정 기술에 매이면 안 된다. 개별 상황마다 그 상황에서 좋은 해결 방안을 고를 수 있도록 충분한 배경지식과 경험을 쌓아야 한다. “우리가 단지 돌을 자를지라도 언제나 대성당을 마음속에 그려야 한다.” 실용주의 프로그래머의 특징 얼리 어댑터 또는 새로운 것에 빨리 적응하는 사람 호기심 많은 사람 비판적인 사고의 소유자 현실주의자 다방면에 능숙한 사람 자신의 기예에 관심을 가지는 사람 문제를 고치기 위해 노력하라. 하지만 너무 오랫동안 노력하지는 말라. 기술에 뒤쳐지는 ..
컴퓨터를 좀 다루다보면 32비트, 64비트를 많이 들어봤을 것이다. 컴퓨터에서의 데이터는 0 아니면 1로 표시된다. 이런 데이터를 나타내기 위해, 0과 1로만 표시하는 2진법을 사용하고, 0 아니면 1로 표시되는 숫자 한 칸을 쉽게 생각하면 한 비트라고 생각하면 된다. 그렇다면 32비트의 운영체제라고 하면 32개의 비트로 정보를 나타내는 것이고, 64비트라면 64개의 비트로 정보를 나타내는 것이다. 그렇다면 총 몇 개의 정보를 나타낼 수 있을까? 1개의 비트로 나타낼 수 있는 정보는 0 아니면 1로 2가지이다. 그렇다면 1비트일 때 2개의 경우의 수를 갖게 되는데, 32비트라면 2개의 경우의 수가 동시에 32개가 있는 것이므로 2^32개가 된다. 그말인즉, 0000 0000 0000 0000 0000 0..
log 설정도 한 번 봐야지, 봐야지 하다가 오늘 마침 설정 건드린 김에 정리해본다. 오늘 내가 설정 수정한 내용은 시스템 분리였다. 기존 A시스템이 있는 상태였고, 여기에 B시스템을 새로 추가하면서 로그를 따로 관리하게 되어 분리해야했다.(기존 시스템에 새로운 시스템을 추가하는 것에 대한 논의는 차치하고.) logback 설정파일 일반적으로 logback 설정파일은 src/main/resources 아래에 logback.xml로 존재한다. 구조는 , 안에 (선택), (선택), 최대 1개의 로 구성되어 있다. // 선택 // 선택 // 최대 1개 참고로 logback 0.9.17버전부터는 태그 이름의 경우, 대소문자를 구분하지 않는다고 한다. 예를 들어, , , 는 모두 이다. 다만, 이런 식으로 구성할..
기존 SVN 레포지토리에 있던 소스를 다른 레포지토리로 옮기고 체크아웃 후 실행하는데 그 과정에서 발생한 문제들의 해결방법을 정리해본다. 1. properties 파일을 찾지 못하는 문제 프로퍼티 파일이 존재하는데 프로파일을 찾지 못하겠다며 다음과 같은 오류가 발생했다. class path resource [config/properties/system-properties-local.yml] cannot be opened because it does not exist 그래서 찾아보니 build path의 문제였다. 이클립스의 프로젝트 위에서 오른쪽 클릭 후 [Build Path] - [Configure Build Path]를 선택한다. Source탭에서 properties 파일이 존재하는 경로를 넣어준다...
이제 3개월만 있으면 지금 회사에서도, 개발자로서도 1년이 된다. 퇴사하고 싶은 마음은 3개월주기로 온다더니 좋은 사람들과 함께 일해서 재밌어서 그렇기도 하고, 내가 배울 게 많아서인지 시간이 정신없이 갔다. 종종 내가 다른 일을 했던 걸 아는 사람들은 나에게 개발자로 직업을 바꾼 걸 후회하진 않느냐고 묻는다. 난 그렇다고 대답한다. 일상을 살면서도 문득 개발자로 직업을 바꾸길 잘했다는 생각이 든다. 정말 좋아하고 원하는 일을 직업으로 삼고 있던 사람들은 나보다 이런 재미를 일찍 느끼고, 회사가 그렇게 나쁘지 않은 곳임을 일찍 알고 있었다고 생각하니 조금 배가 아프기도 하다. 그렇다고 지난 9개월이 매일 행복했던 건 아니었다. 내가 단독으로 개발하기 벅찼던 내용을 진행하기도 하고, 개발자로서의 경험치가 ..
쿼리를 작성하면서 이 쿼리는 테이블 풀 스캔이 일어나는 쿼리다, 일어나지 않는 쿼리다, 인덱스는 어떻게 사용하는 게 더 좋을 것 같다 등의 말을 들었는데, 도대체 그걸(테이블 풀 스캔이 일어나는지, 아닌지) 어떻게 아는지 궁금했다. 그러다가 EXPLAIN을 알게 되어 정리해본다. 아래의 링크들을 참고하여 작성했다. 8.8.1 Optimizing Queries with EXPLAIN MySQL :: MySQL 8.0 Reference Manual :: 8.8.1 Optimizing Queries with EXPLAIN 8.8.1 Optimizing Queries with EXPLAIN The EXPLAIN statement provides information about how MySQL executes ..
🔗 Window.sessionStorage Window.sessionStorage - Web API | MDN sessionStorage 읽기 전용 속성은 현재 출처 세션의 Storage 객체에 접근합니다. sessionStorage는 localStorage와 비슷하지만, localStorage의 데이터는 만료되지 않고, sessionStorage의 데이터는 페이지 세션이 끝날 developer.mozilla.org 🔗 Web Storage API 사용하기 Web Storage API 사용하기 - Web API | MDN Web Storage API는 브라우저에서 쿠키를 사용하는 것보다 훨씬 직관적으로 key/value 데이터를 안전하게 저장할 수 있는 메커니즘을 제공합니다. developer.mozil..