본문 바로가기

전체 글

(108)
2020.11.17 일자 수업 : Business Layer 실습 - Business Layer 분리 현재 Command에서 UI처리 작업과, 업무 로직 처리 작업(업무에 필요한 데이터 처리를 수행하는 응용프로그램의 일부)을 모두 수행하고 있다. 따라서 이것을 high-cohesion을 실현하기 위해 이 비즈니스 로직 역할을 Service 객체에게 위임하고, Command는 UI처리만 할 것이다. 따라서 Command와 Prompt 는 UI에 관한 로직으로 presentation Layer에 속하고 우리가 이번 프로젝트가 새로 생성할 Service 객체들은 Business Layer에 속한다. 반면, DAO/MyBatis/DBMS는 Peresistence Layer에 속한다. 즉, 우리의 프로젝트는 다음과 같이 나눠진다. presenatation Layer : 사..
모두의 네트워크 6장 : 전송계층 : 신뢰할 수 있는 데이터 전송하기 전송 계층의 역할 전송 계층의 역할 : 라우터의 라우팅 기능을 통해 데이터를 전송하더라도 라우팅 정보가 잘못되거나, 다중의 라우터를 경유하는 도중 라우터에 문제가 생기거나 패킷이 손상되어 데이터가 목적지에 도착하지 못할 수도 있다. 여태 배운 물리 계층, 데이터 링크 계층, 네트워크 계층은 목적지에 데이터를 보내기는 하지만 데이터가 손상되어도 아무런 처리를 하지 못한다. 이때 전송 계층은 목적지에 신뢰할 수 있는 데이터를 전달하기 위해 필요하다. 전송 계층은 다음과 같은 기능을 수행함으로써 목적지에 신뢰할 수 있는 데이터를 전달한다. 오류를 점검하는 기능 : 전송 계층의 기능 중 하나로, 오류가 발생하면 데이터를 재전송하도록 요청한다. 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별하는 기능 : 전송..
러닝 자바스크립트 4장 : 제어문 4.1. 제어문의 기초 순서도는 제어문을 시각적으로 나타내는 방법이다. 이 장에서 사용하는 예제는 19세기 당시 유행했던 주사위 게임 크라운 앤 앵커를 하는 과정에 대한 시뮬레이션을 만들 것이다. 게임은 평평한 면 위에 여섯개의 사각형이 있고, 각 사각형에는 크라운, 앵커, 하트, 클럽, 스페이드, 다이아몬드를 나태는 그림이 있다. 게임을 하는 선원은 그 사격형에 마음대로 돈을 걸 수가 있다. 돈을 건 다음에는 6면체 주사위 세개를 굴린다. 주사위가 사각형 번호에 일치하는 숫자에 멈추면, 선원은 거기 건만큼의 돈을 딴다. 다음은 선원이 돈을 거는 방법과 주사위를 굴렸을 때 따는 돈을 정리한 표이다. 거는 돈 주사위 결과 따는 돈 크라운에 5 펜스 크라운, 크라운, 크라운 15 펜스 크라운에 5 펜스 크라..
2020.11.16 일자 수업 : 트랜잭션 관리 실습 - 트랜잭션 관리 ProjectDeleteCommand에서는 먼저 작업 테이블에서 다음과 같은 과정으로 세 가지 테이블에서 데이터를 삭제한다. TaskDao.deleteByProjectNo() 이 프로젝트에 대한 작업을 담당하는 팀원이 있는 경우, 이 팀원 정보들을 모두 삭제(TaskDao.deleteByProjectNo) ProjectDao.delete() 프로젝트와 멤버의 관계 테이블에서 해당 프로젝트의 팀원 데이터를 모두 삭제(ProjectDao.deleteMembers) 해당 프로젝트에 대한 데이터를 삭제(ProjectDao.delete) 그런데 문제는 이 두 메서드가 SQL문을 실행하기 위한 SQLSession 객체가 각각 다르다는 점이다. 따라서 두 메서드의 삭제 작업이 모두 완료된 시점..
러닝 자바스크립트 3장 : 리터럴 변수, 상수, 데이터 타입 3장은 데이터에 관한 장이며, 데이터를 자바 스크립트가 이해할 수 있는 형식으로 바꾸는 법을 배운다. 인간에게 익숙한 형태인 숫자와 텍스트, 날짜 등을 다루기 위해 자바 스크립트에서 제공하는 문법을 데이터 타입이라고 한다. 자바스크립트가 데이터를 보관하는 메커니즘이 되는 변수와 상수, 리터럴에 대해 알아본 후, 데이터 타입을 본격적으로 다루어보자. 3.1 변수와 상수 변수란 간단히 말해 이름이 붙은 값으로, 값은 언제든 바뀔 수 있다. 아래 두 문장은 변수 currentTempC를 선언하는 동시에 초깃값을 할당한다. ES6에서 let이라는 키워드가 새로 생겼고, 이것은 변수 선언에 사용된다. 변수 선언은 각 변수당 한번만 가능하다. currentTempC = 22; let currentTempC = 22..
Do it! HTML5 + CSS3 : 5장 CSS 기초 스타일과 스타일 시트 왜 스타일을 사용할까? 웹문서에서 스타일이란 HTML 문서에서 자주 사용하는 글꼴이나 색상, 정렬, 각 요소들의 배치 방법 등 문서의 겉모습을 결정 짓는 내용들을 가리킨다. 줄간격이나 표의 테두리 모양을 바꾸는 것도 스타일의 예가 된다. HTML뿐만 아니라 스타일도 사용하는 이유는 다음과 같다. 웹문서의 내용과 상관없이 디자인만 바꿀 수가 있다. HTML은 웹문서의 내용을 나열하고, CSS는 웹문성의 디자인을 구성하므로, 웹문서의 내용과 디자인이 구분되어있다. 따라서 내용만 수정해야 하거나, 디자인만 수정해야할 때, 서로의 영역에 영향을 미치지 않고, 원하는 부분만 수정할 수 있다는 편리함이 있다. 다양한 기기에 맞게 탄력적으로 바뀌는 문서를 만들 수가 있다. CSS를 이용하면 HT..
2020.11.13 일자 수업 : DB 모델링 DB 모델링 git/eomcs-docs/db/dbmodeling.md DB 모델링 모델링(modelling)이란 생각하는 바(개념)를 글과 그림으로 표현하는 것을 말한다. (렌더링 : 명령어를 해석하여 화면에 출력하는 것) DB 모델링이란 데이터 베이스를 관리할 때, 데이터가 중복되지 않도록 테이블을 구조화하기 위해 데이터를 분석하고 구조화하여 데이터 속성과 관계를 글과 그림으로 표현한 것이다. 이 과정을 통해 중복 데이터를 제거하여 데이터의 안정성, 신뢰성을 높이고, 무결성을 유지할 수 있다. DB 모델링을 할 때 사용되는 주요 용어는 다음과 같다. table = relation = entity = file : 테이블 intension = schema = header : 데이터 구조 설계도 extens..
2020.11.10 일자 수업 : MyBatis 실습 - MyBatis 어제 수업에서 진행한 실습에 이어서 BoardDao의 findByNo, update, delete 메서드에서 사용하는 SQL문을 MyBatis로 처리한다. BoardDao - findByNo 일단 해당 메서드에서 사용하는 SQL문을 BoardMapper.xml 파일안의 새로운 select 태그 안으로 가져온다. 구체적인 내용은 다음과 같다. id 속성은 findByNo로 지정하고, parameterType은 번호를 가져올 것이니 래퍼 클래스인 Integer 클래스로 지정한다. resultMap은 이전에 설정해놓은 BoardMap으로 지정한다. SQL문을 집어넣고, ? 자리에 #{no}를 작성한다. 래퍼클래스나 primitive 타입을 파라미터로 받아 SQL 문에 삽입하는 경우에는 ..