본문 바로가기

전체 글

(341)
읽기 좋은 코드가 좋은 코드다 / 저스틴 보즈웰, 트레버 파우커 , 임백준 옮김 / 한빛미디어 개발 관련 서적 중에는 워낙 유명한 책이라 길게 소개하지 않겠다.안 읽어보면 왠지 놓치는 것이 있을 것 같아서 읽어봤다.그리고 역시 놓치고 있는 것이 있었고, 많은 것을 배울 수 있었다.하지만 주로 쓰는 언어가 아닌 언어로 쓰여진 내용에 대해서는깊은 공감을 불러일으키지 못했다.물론 이 부분은 코드 작성 전반적인 내용을 간결하게 다루고 있는 책이기에 존재하는어쩔 수 없는 한계인 것 같다.맞는 말을 하고 있고, 모든 개발자가 이대로만 한다면,우리는 더 없이 행복해질 수 있다.조건은 같은 프로젝트에 참여하는 '모든' 개발자이다.한 명이라도 다른 방향으로 코드를 작성하게 되면,그렇게 작성된 코드를 다시 바꾸는 데 드는 비용이 더 들기 때문이다.'약속'은 지키라고 있는 것이기에, 중요한 것 같다. 절대적인 약속보..
[TodoMVC] Step 6. To do list Remove Item Completed / list 에서 완료된 항목 삭제하기 Step 6. To do list에서 Completed Item 제거하기남은 Step 들은 UX를 고려한 기능추가이다.이번 Step 에서는 완료된 항목들을 선택해서 삭제해주는 step이다. 1단계 . View.js 파일을 작성한다.1-1. 우선 bind에 removeCompleted 이벤트를 등록해준다.view.js code>12345678//event: removeCompleted//handler: controller.removeCompletedItems} else if(event === 'removeCompleted'){ console.log('View.prototype.bind.removecompleted execute!'); self.$clearCompleted.addEventListener('c..
[JAVA] 15. Thread ( 스레드 ) 쓰레드 실행 중인 프로그램 을 프로세스라 한다. 프로세스 내부에 둘 이상의 쓰레드가 존재할 수 있다. 어떤 프로세스든 간에 쓰레드가 하나 이상 수행된다. 아무런 쓰레드를 생성하지 않아도 JVM을 관리하기 위한 여러 쓰레드가 존재한다. 왜 쓰레드라는 것을 만들었을까. 하나의 작업을 동시에 수행하려고 할 때 여러 개의 프로세스를 띄워서 실행하려면 각각 메모리를 할당해 주어야만 한다. 그에 반해, 쓰레드를 하나 추가하면 더 적은 메모리를 점유하게 된다. 어떤 작업을 할 때 단일 쓰레드로 실행하는 것보다는 다중 쓰레드로 실행하는 것이 더 시간이 적게 걸린다. 자바에서는 쓰레드도 하나의 인스턴스로 정의한다. 쓰레드는 쓰레드만의 main메소드를 지닌다. 단 이름은 main이 아니라 run이다. 쓰레드를 생성하는 방..
[TodoMVC] Step 5. To do list Update Item's Content / list 내용 수정하기 Step 5. To do list의 Item 내용 수정하기다섯번째 단계. 거의 다왔다. 큰 산은 이게 마지막 산이다.이번에는 추가해줬던 list 내용을 수정해보자.수정하기 위해서 선택을 하고 입력을 받기 위해 태그를 생성하고입력을 마치면 다시 생성했던 태그를 지우고 간단해보이지만 의외로 코드가 정말 많이 들어간다. 1단계 . View.js 파일을 작성한다.1-1. bind에 itemEdit을 추가한다.view.js code>12345678} else if(event === 'itemEdit'){ console.log('View.prototype.bind.itemEdit execute'); todo.addEventListener('dblclick', function(event){ var target = e..
[TodoMVC] Step 4. To do list Update Item's Status / list 상태 수정하기 Step 4. To do list에서 Item 상태 수정하기네번째 단계.이제는 리스트에서 완료, 미완료를 설정할 수 있도록 하자.점점 설명할 것도 적어지고, 코드량도 적어진다! 1단계 . View.js 파일을 작성한다.1-1. bind에 itemToggle을 추가한다.view.js code>1234567891011//event: itemToggle//handler: controller.toggleComplete} else if(event === 'itemToggle'){ console.log('View.prototype.bind.itemToggle execute'); todo.addEventListener('click', function(event){ var target = event.target; if..
[TodoMVC] Step 3. To do list Remove Item / list 제거하기 Step 3. To do list에서 Item 제거하기세번째 단계. 큰 산 하나 넘었다.실제로 해보면서 늘어난 To do list 목록을 완료, 미완료에 상관없이 일단 삭제부터 해야겠다.이미 TodoMVC 공식 홈페이지로 부터 HTML 코드를 받았기 때문에 X 버튼이 준비되어 있다.우리는 event를 걸어 list를 삭제시키자. 1단계 . View.js 파일을 작성한다.1-1. bind에 event 분기를 추가한다.view.js code>1234567891011//event: itemRemove//handler: controller.removeItem} else if(event === 'itemRemove'){ var todo = self.$todoList; todo.addEventListener('cl..
JavaScript 로 알아보는 클라이언트 사이드 렌더링 MVC 구조 JavaScript 로 알아보는 클라이언트 사이드 렌더링 MVC Architecture 데이터(Model), 표현 계층(View), 사용자 상호작용 계층(Controller) 1. 사용자가 애플리케이션과 상호작용한다. 2. 컨트롤러의 이벤트 핸들러가 실행된다. 3. 컨트롤러는 모델에게 데이터를 요청하고 그 결과를 뷰로 전달한다. 4. 뷰는 데이터를 사용자에게 표시한다. Model 자바스크립트는 데이터를 원격으로 가져와서 클라이언트에 일시적으로 저장한다. 클라이언트의 데이터 접속은 마치 메모리에서 데이터를 가져오듯이 즉시 처리된다. 이는 인터페이스에 큰 영향을 미친다. ORM을 이용하면 상당히 쉽게 데이터를 얻을 수 있다. ORM을 통해서 서버 데이터를 가져와서 모델 레코드를 갱신하는 방법을 사용한다. C..
[TodoMVC] Step 2. To do list Add Item / list 추가하기 Step 2. To do list에 Item 추가하기두번째 단계. 이제 본격적인 코딩에 들어간다.list에 Item 을 생성해서 input tag에 입력한 값을 넣어주자.list를 추가하는 것과 추가한 list를 포함해, 전에 포함되어있던 list까지 보여줘야 하므로,다른 Step 보다 많은 작업량과 코드량을 요구한다. 1단계 . template.js 파일을 작성한다.1-1. 우선 list에 추가될 html 코드 조각을 template화 하자.template.js code>1234567891011function Template(){ console.log('template created'); this.defaultTemplate = '' + '' + '' + '{{title}}' + '' + '' + ''..