본문 바로가기

전체 글

(133)
(좋은 코드 작성을 위해) makeLastSeenMsg makeLastSeenMsg 문제 사용자의 이름과 미접속 시간(분)을 입력받아 조건별로 다른 메세지를 리턴해야 합니다. 출력 string 타입을 리턴해야 합니다. 미접속 시간이 1시간 보다 적을 경우, 분 단위로 표기합니다. 미접속 시간이 1시간 보다 크고 24시간 보다 적을 경우, 시간 단위로 내림처리하여 표기합니다. 미접속 시간이 24시간 보다 클 경우, 일 단위로 내림처리하여 표기합니다. mine function makeLastSeenMsg(name, period) { let day = Math.floor(period / (24 * 60)); let hour = Math.floor(period / 60); let min = period; if(period >= 24 * 60) return `${na..
(자바스크립트) 배열에서 데이터의 불변성, immutable & mutable immutable 하게 리턴하는 Array 내장함수에는 arr.slice, arr.concat 등이 있고 mutable 하게 리턴하는 것들에는 arr.push, arr.pop, arr.shift, arr.unshift, arr.splice 등이 있다. 데이터 불변성 여부를 따져야 하는 경우 배열 관련한 알고리즘 문제를 풀다보니 처음 입력받은 데이터를 변경하지 말아야 하는 경우 혹은 데이터를 변경해되 괜찮은 경우들이 종종 보인다. 예를 들면 주의 사항에 아래와 같은 것들이 있다. 기존 배열에 주어진 요소가 추가된 상태(주소값 동일)로 리턴해야 합니다. 입력받은 배열을 수정하지 않아야 합니다(immutability). 1번 문구의 의미는 기존 배열에 새로운 요소가 추가되었기에 처음의 배열 데이터는 수정이 되..
이광근, <컴퓨터 과학이 여는 세계>, 인사이트, 2015-(4) 정말 오래 읽는다. 바뻐서 못 읽고 있는 것이지 책이 재미 없는 게 아니다. 알고리즘과 소프트웨어 알고리즘은 컴퓨터가 따라할 문제풀이법이다. 자동으로 돌릴 수 있는 혹은 기계적으로 자동화된 문제풀이법. 복잡도란 알고리즘 실행시 드는 비용. 시간이나 메모를 말한다. 사람들은 알고리즘의 비용을 더 줄이기 위해 노력해왔다. 당연히 사람들은 아주 빠르고(시간) 가볍게(메모리) 일을 마치는 알고리즘을 원한다. 더보기 나의 생각 개발자들은 현실적으로 내가 만든 알고리즘이 더 싸고 빨라질 방안은 있는지 아니면 더 좋기는 불가능한지, 결국 컴퓨터가 현실적인 비용으로 해결할 수 있는 문제의 경계를 잘 판단해야 한다. 알고리즘의 예 패스워드 해킹하기. 초보 해커들의 방법은 모조리 흝기다. 십진수 4자리 수가 패스워드라고 ..
맥북 한/영 전환 일반적으로 맥북에서 제공하는 한/영 전환은 1) caps lock으로 2) ctrl + space다 그런데 이 2가지가 불편하다. 나도 2번 방법으로 처음에 사용했는데 타자의 속도가 나지 않는 단점이 있다. 그래서 검색을 해보니 karabiner 라는 프로그램을 설치해서 우측 command 키를 한/영 전환 변환키로 사용한다고 한다. 그런데 입력소스에서 우측 command 키가 먹히지 않는 경우가 있다. 이 문제는 시스템환경설정-개인정보보호-입력모니터링 메뉴에서 카라바이너 observer와 grabber를 허용하지 않아서 그런 경우가 있었다. 그리고 여기서도 카라바이너가 허용되지 않아있는 경우가 있다. 이런 경우 허용으로 변경해주어야 한다. 화면이 자물쇠로 막혀 있으니 왼쪽 하단의 자물쇠를 풀어주고(비밀..
변수 선언 let 과 const 차이 - 재선언, 재할당 여부 그렇다면 let 과 const 의 차이점은 무엇일까? 이 둘의 차이점은 immutable 여부이다. 둘다 재선은 불가하다. let 은 변수에 재할당이 가능하다. 그렇지만, const는 재할당 모두 불가능하다. 혹시 선언자 const는 헌법을 뜻하는 constitution에서 온거 같다. 헌법 처럼 굳건하군 그래서 한번 선언되고 할당된 건 다시(재) 안됨. 기존 자바스크립트에서 var로 선언해주었는데 중복선언이 되다보니 욕을 많이 먹어서 이크마6를 통해 let, const 나오게 됨
개발자 도구 콘솔창 1. 개발자 도구 콘솔창 단축키 개발자 도구 콘솔창 단축키 브라우저 윈도우 리눅스 맥 크롬 Ctrl + Shift + J Ctrl + Shift + J Cmd + Option + J 파이어폭스 Ctrl + Shift + K Ctrl + Shift + K Cmd + Option + K 사파리 Ctrl + Alt + C - Cmd + Option + C IE F12 - -
CSS - <div> ,<span> 태그 : 페이지에서 한 줄 전체의 영역을 차지한다. (블록 레벨 엘리먼트) : 페이지의 한 줄에서 정해진 영역만을 차지한다. (인라인 레벨 엘리먼트) 스스로 공부하는 CSS(Cascading Style Sheet) Cascading 폭포의 의미 브라우저에서 html을 보여줄 때 누구꺼를 기준으로 하냐의 문제 창작자>브라우저>사용자에서 콘텐츠 창작자가 1순위 폭포처럼 위에서 아래로 쏟아진다고Cascading? 각설하고 무색무취의 태그 디자인 목적을 위해 어떤 의미도 없는 태그를 사용해야 할 때 그때div가 당신의 화면에 dive한다. divison의 약자 블록 레벨 엘리먼트(한 줄 전체를 잡아 먹음) 동일한 용도 태그 but 인라인 엘리먼트(한 줄에서도 정해진 영역만 차지) 다시 정리하면 : 페이지에서 한 줄 ..
이광근, <컴퓨터 과학이 여는 세계>, 인사이트, 2015-(3) 만만한 책이 아니다. 스위치에서 시작한 논리회로, 부울의 논리식 그리고, 또는, 아닌(영어로 and, or, not) 세가지의 조합으로 입력과 출력, 규칙표를 표기할 수 있는 논리식으로 만들기도 하고 스위치로 표현하기도 하는 것을 보여준다. 이 논리는 결국에는 생각을 표현하는 것이고 생각을 여러개로 조립할 수 있다. 라는 전제가 맞음을 보여준다고 생각한다. 단순한 스위치의 세계와 학자 부울이 정리한 생각의 세계가 같다는 것 그 둘이 서로를 비추는 거울이라는 것은 컴퓨터라는 거대한 혁명을 일으키는 진동자가 된다. 하지만 그것만으로는 부족하다. 클로드 섀넌의 전자회로에 관한 연구가 없었다면 복잡한 거처럼 보이는 세계를 단순화시켜서 쌓는 작업이 불가능했을 것이다. 흔히말하는 퀀텀점프가 바로 클로드 섀넌에서 시..