프로젝트 규모가 커질수록 외부에서 갖다쓰는 라이브러리도 많아지기 마련이다.자바는 메이븐이라는 오픈소스 프로젝트를 이용해 진작에 이런 라이브러리 관리를 하고있었다.xml파일에 라이브러리명과 버전만 적어주면 해당 라이브러리를 자동으로 다운받아 참조를 해주는 형식이다. 프론트쪽은 보통 참조하고자하는 js파일을 다운받아 참조하여 개발을 했는데 nodejs를 필두로 각종 프레임워크들과 라이브러리들이 나오고 또 그것들을 적극 활용하게 됨으로서 프론트쪽도 의존성관리에 애를 먹기 시작했다. 이를위해 자바의 메이븐같은 의존성을 관리해주는 툴이 나왔는데 그것이 bower다. 일단 bower는 nodejs를 이용해 개발됐기때문에 nodejs가 설치되어있어야한다.그리고 npm(node package management)을 이..
이번에 알아볼 패턴은 Decorator Pattern(데코레이터 패턴)이다. 구현법이 데코레이터 패턴과 비슷한 패턴들이 몇 존재하므로 구현법으로 구분하려하지말고 목적이 뭔지 잘 파악하는게 중요할듯 하다. 데코레이터 패턴은 전략 패턴(Strategy Pattern)과 마찬가지로 합성(Composite)을 이용하는 패턴이다. 내부적으로 실제 비즈니스로직을 처리하는 객체를 인스턴스변수로 갖고있으면서 해당 비즈니스로직의 처리 결과값을 자신의 이름이 말하든 한번 더 가공해주는 패턴이다. 소스로 확인해보자. //놀이공원 인터페이스 처음엔 A, B였는데 예제도 진화하고있다...interface AmusementPark {public int getTicketCost(); //티켓 값을 반환하는 추상메서드} //놀이공원..
앞선 두 포스팅을 통해 전략패턴(Strategy Pattern)과 템플릿 메서드 패턴(Template Method Pattern)에 대해 알아봤다. 이번에 알아볼 패턴은 템플릿 콜백 패턴(Template Callback Pattern)인데 앞선 두 패턴을 적절히 혼합한 형태라 크게 어려운 부분은 없다.전략 패턴의 경우 재사용하고자하는 클래스를 상속이 아닌 인스턴스 변수로 취급하는 합성(Composite)을 이용한다. 그리고 인터페이스를 활용한 다형성과 setter 메서드를 이용해 사용하고자하는 전략(인스턴스 변수가 참조하는 객체)을 필요할때마다 변경해가며 호출함으로서 변화에는 닫히고 확장에는 열린 소스를 짤수있게하는 패턴이다.템플릿 메서드 패턴의 경우는 템플릿이라는 단어에서부터 알수있듯이 크게 돌아가는 ..
자바에서 기 작성된 소스를 재사용하는 방법은 사용하고자 하는 클래스에게 상속하거나 혹은 인스턴스멤버로 합성(composite)하는 방법이 있다. 지난번 포스팅인 Strategy Pattern은 두 가지 방법중 합성을 선택해 외부에서 전략을 주입하며 사용하는 법에 대해 알아봤다.이번에는 상속을 사용하는 패턴에 대해 알아보자. 바로 Template Method Pattern(이하 템플릿 메서드 패턴) 인데 이름에서 느껴지듯 기 작성된 소스(Template)가 존재하고 해당 소스에서 부분적으로 메서드를 오버라이딩하는 패턴이다. 이렇게 작성할 경우 전체적인 뼈대인 기존 소스는 동일하게 작동하며 오버라이딩한 부분만 구현클래스별로 작동할것이다. 코드로 살펴보자 abstract class A{ //추상클래스로 작성한..
디자인패턴의 꽃이라 불리는 Strategy Pattern 에 대해 알아보자. 기본적으로 자바를 배울때 자바는 객체지향언어이고 그로인한 장점을 상속을 통해 이미 작성되어있는 코드를 재사용할 수 있는 장점이 있다고 배운다. Strategy Pattern은 그런 상속을 통한 소스 재사용을 상속이 아닌 합성(composite)을 통해 사용하는것에 초점을 맞춘다. 굳이 이렇게 거창하게 디자인패턴이라는 단어가 아니라도 다중상속이 지원되지않는 자바에서 상속 대신 합성을 사용하여 소스를 재사용하고자 하는 경우는 많다. 대표적으로 is a, has a 로 구분해서 상속과 합성을 알맞게 사용하자는 말이 있는데 합성이 구체적으로 뭔지부터 알아보자. //getString() 을 재사용 하고싶다.class A{ public S..
이제는 JSP 개발시 MVC 패턴으로 작업하는게 당연시 되고있다. MVC패턴이란 화면에 보여줄 view 에 대한 작업, DB에서 조회 혹은 DB에 저장할 내용을 중간에 가공, 처리하는 비즈니스로직, DB에 연결하는 DAO 작업까지 JSP에서 다 하던걸 패턴화 시켜 분리하여 개발하는것인데 각각의 역할에 따라 파일들을 분리해서 작업하는것이다.그렇게 하는 이유는 소스를 분리함으로서 각 소스의 목적이 명확해 지고 유지보수하는데 있어서 용이하기 때문이다. MVC 패턴으로 개발하고자하면 자연스레 한 페이지에 5개의 파일이 생성되는데 JSP, Controller, DTO, Service, DAO 이다. 오늘 포스팅할 내용은 이 파일들 중 Service에 관한것이다. 오랜시간 궁금했던 것Service 에 대해선 항상 ..
현재 널리 사용되고있는 자바 프레임워크인 Spring의 핵심 가치중 하나는 IoC라 할 수 있다. IoC는 Inversion of Control의 약자로 번역하면 제어의 역전이라는 뜻인데 스프링 컨테이너를 의미한다. 간단하게 말하면 개발자들이 직접 new 연산자를 통해 생성하던 객체제어를 스프링 컨테이너가 가져감으로서 애플리케이션 내에서 사용되는 객체의 생성과 소멸(LifeCycle)을 프레임워크가 담당하겠다는 것이다. 그리고 그런 IoC를 구현하기위해 도입된게 DI인데 IoC는 공부를 하면 할수록 너무 방대한 개념인것같아 아직 내가 다루기엔 무리가 있는듯해 DI에 대해서만 포스팅을 해보겠다.DI는 Dependency Injection의 약자로 의존성 주입이라는 말로 번역된다.여기서 의존성이란 간단하게 ..
Spring4, Maven 기준. pom.xml 에 의존성 추가 org.apache.tilestiles-jsp3.0.5org.apache.tilestiles-core3.0.5 스프링 빈 설정파일에 view resolever 수정(servlet-context.xml) /WEB-INF/views/layout/tiles-layout.xml 위 설정에서 짐작했겠지만 tiles-layout.xml 추가 DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> 설명을 하자면 default 로 설정되어있는 ..
에러내용 : is not allowed to connect to this MYSQL server로컬에서는 접속이 가능한데 다른 컴퓨터에서 접근할때 나는 에러. 권한이 없어서 발생하는 것이다. 해결법 : grant all privileges on *.* to root@'권한을 부여할 IP' identified by 'password' with grant option; 에러내용 : the last packet send successfully to the server was 0 milliseconds ago.해결법(우분투 기준) : /etc/mysql 경로에 있는 my.cnf 실행 vi my.cnf 쭉쭉 내리다보면 bind-address 라는 항목이 있다. 해당 항목이 127.0.0.1로 되어있다면 해당 항목..
먼저 리눅스 관리자 계정 권한을 가져오는 법을 알아보자su 현재 로그인해있는 계정을 바꾼다.옵션으로 - 를 줄수있는데 -를 주게되면 완전 새로 로그인해서 환경변수와 같은 환경까지 다 가져오는거고 -없이 로그인하면 현재 상태에서 로그인해있는 계정만 바꾸게된다. sudo이 다음 실행될 명령을 관리자 권한으로 실행한다.관리자 권한이 아니어서 실행이 안될때 사용하면 된다. 물론 패스워드를 요구한다. root 계정 패스워드 설정하기sudo passwd root입력하면 패스워드 설정이 가능하다
- Total
- Today
- Yesterday
- spring cloud
- frontend개발환경
- Design Pattern
- db
- mariadb
- DesignPattern
- toby
- frontcode
- TEST
- OOP
- Git
- javascript
- servlet
- go-core
- generics
- java8
- backend개발환경
- Kotlin
- Jackson
- 정규표현식
- java
- MySQL
- http
- code
- programming
- JavaScript Core
- JPA
- EffectiveJava
- clean code
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |