디자인 패턴을 잘 기억하는 한 방법

Posted on

흔히 이공계통은 외어서 한다고 하기도 합니다. 이 말들이 옳은 부분도 있겠지만 대부분의 경우 이런 조건에 빠지지 않게 잘 받아들이십니다. 제가 이 말을 하는 이유는 이러한 이해가 갖는 추천되는 마인드가 아니면, 공부하는 방법을 저해하기도 해서네요. 대부분의 기술자분들은 긍정적인 마인드로 업무에 임하셔야 해서 한 문제에 대해 심도있게 사유하시니 공부법에 대한 다른 이해를 잘 안하십니다. 보통은 문제가 없는데, …

SOLID 설계의 원칙 5 – 의존 역전 원칙

Posted on

의존 역전 원칙(dependency inversion principle)은 이렇다. 분석철학자는 아래 그림처럼 심리철학에 의존 관계가 있다. 이 경우 분석철학자의 관심사는 심리철학 뿐아니라, 예술철학과 언어철학에도 의존적인데, 이 경우 의존적인 것을 표현하려면 아래처럼 하면 된다. 이 경우 분석철학자가 하는 철학 분야를 넘나들때 구체적인 철학 분야들(심리철학, 예술철학, 언어철학 등등)이 아닌 추상화된 상위 범주인 분석철학에 의존하게 해서 구체적인 다른 철학 분야로 변경되도 …

SOLID 설계의 원칙 4 – 인터페이스 분리 원칙

Posted on

인터페이스 분리 원칙(Interface Segregation Principle)은 인터페이스를 분리할때 지켜야 할 원칙을 말한다. 앞서 단일 책임의 원칙을 준수하기 위해 클래스를 쪼개서 독립된 클래스로 만들고 속성과 메소드를 분배해서 두었다. 이 경우에 만능 개발자 클래스는 사라지고 각각으로 쪼갠 클래스만 존재하게 되었다. 이 경우에 인터페이스를 써서 분리하면 이점이 있는 경우가 있게 된다. 만능 개발자 클래스는 그대로 두고, 각각의 쪼갠 클래스를 …

SOLID 설계의 원칙 3 – 리스코프 치환 원칙

Posted on

리스코프 치환 원칙(Liskcov Substitution Principle)은 클래스 상속의 구조가 지켜야 하는 원칙을 말한다. 보통 상속을 말할때, inheritance라는 단어의 의미에 주목하면 부모클래스, 자식클래스로 분류할 수 있다. 이로부터 상속의 구조를 구성하면 아래와 같이 된다. 일종의 가족의 계보도와 같은 계층이 그려지는데, 이를 객체지향 문법으로 구현하면 아래처럼 된다. 부모 돌쇠 = new 아들(); 그러나 부모라는 타입이 아들을 의미할 수 있는가? …

SOLID 설계의 원칙 2 – 개방 폐쇄 원칙

Posted on

개방 폐쇄 원칙(OCP – Open Closed Principle)은 클래스 자신의 확장에는 열려 있고, 주변의 변화에 대해서는 닫혀있어야 한다는 원칙이다. 종교인이 종교활동을 하는 예를 들어보자. 기독교인은 예배를 드린다. 반면 카톨릭 신자는 미사를 드린다. 그리고 불교 신자는 108배를 한다. 기독교인은 찬송을 부르고 카톨릭 신자는 복음성가를 부르고 불교 신자는 불경을 외운다. 즉 종교인의 활동은 종교가 변하면 행동에도 변화가 생긴다. …

SOLID 설계의 원칙 1 – 단일 책임 원칙

Posted on

단일 책임 원칙(SRP – Single Responsibility Principle)은 한 클래스가 너무 많은 책임을 가지고 있는 경우, 코드의 기능상으로 코드의 방만함이 예상될때 클래스의 기능을 여러개로 나누어 책임을 분산하는 원칙을 말한다. 아래와 같이 클래스를 작성했다고 하자. 만능 기술자의 업무를 분류한 클래스로 만능 기술자라는 클래스 아래 여러 작업을 구현한 메소드가 어지럽게 늘어서 있다. 만능 기술자라서 Angular도 배워야 하고 Vue.js도 …

톰캣 11의 설정 파일에 대한 설명들

Posted on

톰캣 11은 구조상으로 여러개의 설정 파일에 설정을 지정하게 되어있습니다. 톰캣이 설치된 디렉토리를 $CATALINA_BASE로 기술하면, $CATALINA_BASE/conf/server.xml 과 같은 경로에 설정 파일이 저장됩니다. 대표적인 설정 파일의 경로는요. $CATALINA_BASE/conf/server.xml$CATALINA_BASE/webapps/프로젝트-디렉토리/WEB-INF/web.xml$CATALINA_BASE/webapps/프로젝트-디렉토리/META-INF/context.xml 등이 있습니다. 각각의 설정 파일은 XML로 정의된 파일이구요. DTD가 정의되어 있습니다. 각각의 설정 파일은 올 수 있는 엘리먼트가 정해져 있습니다. $CATALINA_BASE/conf/context.xml 의 기본값을 보면요. 처럼 정의되어 있습니다. 이 경우 …

톰캣의 구성 요소

Posted on

톰캣은 자바 서블릿 컨테이너입니다. 웹서버처럼 동작하는 원리에 의해 프로그래머가 프로그래밍한 자바 서블릿과 자바 기반 웹기술을 서비스하는 서버의 일종이죠. 서비스 제공자는 톰캣을 설치하고 설정해서 서버 환경을 만들어주고, 자바 서블릿과 JSP와 같은 자바 웹기술로 만든 스크립트를 포함해서 (컨테이너) 이를 접속자에게 서비스하는 서버 소프트웨어입니다. 자바 웹기술을 서비스할때는 여러 프로토콜로 작동하지만, HTTP를 기반으로 해서 작동하는 것이 일반입니다. 사용자가 웹브라우저로 …

1 2 3 21