일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- springboot
- ReactJS
- tool
- IntelliJ
- elasticsearch
- jenkins
- Oracle
- jsp
- Spring
- ubuntu
- 요리
- php
- db
- linux
- Spring Batch
- Gradle
- MySQL
- Design Patterns
- redis
- 맛집
- AWS
- devops
- java
- javascript
- Spring Boot
- Git
- laravel
- Web Server
- JVM
- it
- Today
- Total
목록java (242)
아무거나
템플릿 메소드 패턴(Template Method Pattern) 알고리즘의 구조를 메소드에 정의 하고 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재 정의하는 패턴 사용 구현하려는 알고리즘이 일정한 프로세스가 있다. 구현하려는 알고리즘이 변경 가능성이 있다. 단계 알고리즘을 여러 단계로 나눔 ( Abastract Class ) 나눠진 알고리즘의 단계를 메소드로 선언 ( Abastract Class의 operation1() ~ 3() ) 알고리즘을 수행할 템플릿 메소드를 만듬 ( Abastract Class의 templateMethod() ) 하위 클래스에서 나눠진 메소드들을 구현 ( ConcreteClass ) 템플릿 메소드 패턴 예시 - 1 신작 게임의 접속을 구현 requestConnectio..
스트래티지 패턴(Strategy Pattern) 여러 알고리즘을 하나의 추상적인 접근점을 만들어 접근 점에서 서로 교환 가능하도록 하는 패턴 스트래티지 패턴 예시 [요구사항] 신작 게임에서 캐릭터와 무기를 구현해보자. 무기는 두 가지 종류가 있다. 칼 검 먼저 무기 인터페이스를 생성한다. [Weapon.java] package com.bkjeon.strategy; public interface Weapon { public void attack(); } 그 다음 칼과 검의 클래스를 생성한다. [Knife.java] package com.bkjeon.strategy; public class Knife implements Weapon { @Override public void attack() { System...
어댑터 패턴(Adapter Pattern) 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 어댑터 패턴은 이름대로 어댑터처럼 사용되는 패턴이다. 220V 를 사용하는 한국에서 쓰던 기기들을, 어댑터를 사용하면 110V 를 쓰는곳에 가서도 그대로 쓸 수 있다. 이처럼, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해주는 패턴이 어댑터 패턴이라고 할 수 있겠다. 이를 위해 어댑터 역할을 하는 클래스를 새로 만들어야 한다. 기존에 있는 시스템에 새로운 써드파티 라이브러리가 추가된다던지, 레거시 인터페이스를 새로운 인터페이스로 교체하는 경우에 코드의 재사..
Strategy Pattern 개념 Strategy Pattern이란 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. Strategy를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 즉, 동적으로 알고리즘을 교체할 수 있는 구조를 말한다. 먼저 Duck이라는 슈퍼클래스와 각각의 오리별 클래스인 MallardDuck, RedheadDuck를 구현해보자. 위의 구조를 설명하자면 Duck 클래스에선 모든 오리들이 소리를 내고 헤엄을 칠 수 있어 quack(), swim() 메소드를 구현했고 오리들의 모양이 각각 다르기 때문에 display() 메소드는 추상 메소드이다. 그 외에도 다른 유형의 오리들이 Duck 클래스로부터 상속을 받는다. 여기서 만..
아래와 같이 vuejs + springboot + gradle 프로젝트가 존재할 경우 vuejs(=client) 의 파일들을 빌드할 때 gradle 스크립트를 통하여 gradle명령 하나로 한번에 빌드하는 기능을 만들었다. 아래는 프로젝트의 구조이다. spring-boot-vuejs ├─┬ server → backend module with Spring Boot code │ └── src │ ├── main │ └── resources │ └── application.yml ├─┬ client → frontend module with Vue.js code │ ├── src │ ├── config │ └── index.js → build path ( move: resources/templates/* ) └..
[springboot] elasticsearch 5.x 사용(transportClient) elasticsearch는 자바로 개발되었다. 그래서 9300 포트는 자바 네이티브로 API개발이 가능하다. 자바 관점에서 API 분류 - 자바 네이티브 API - TransportClient, NodeClient - HTTP Rest API - restTemplate/Apache HttpClient와 같은 툴로 직접 연결, Jest **** 해당 내용은 NodeClient와 TransportClient로 개발이 쉽게 가능하다는 장점이 있다. 그러나 공식적으로 쓰지 않기를 권고 하고 있다. 기능이 추가되어 버전이 올라갈 때 모델이 바뀌고 있다는 점을 현재 강조하고 있으며, 9200포트를 이용하여 REST API로 ..
[JPQL 사용] Query annotation : Repository의 조회 메소드에 직접 실행될 쿼리를 작성 1. Controller.java List productLogs = productLogService.getProductLog(productLog, limit); 2. Service.java List getProductLog(ProductLog productLog, Integer limit); 3. ServiceImpl.java @Override public List getProductLog(ProductLog productLog, Integer limit) { return repository.sqlFindWmpVendorIdAndDataProviderProcessType(productLog.g..
[springboot gradle 개발환경별 버저닝 빌드&배포] 개발환경 기준 : dev, stage, master(=live) 사용툴 : jenkins + s3 + codedeploy [빌드] 1. build.gradle에 저장될 jar이름 설정(안하면 jenkins item이름으로 기본정의됨) jar { archivesBaseName = "test" } 2. build 부분에서 Add build step -> Invoke Gradle script 선택 3. jekins item 설정에서 Build 부분에서 Use Gradle Wrapper 버튼 클릭하고 설정 - Make gradlew executable 체크 - Wrapper location: ${workspace} // ${workspace}는 ..
jdk를 변경해야되는 이슈가 생겨 다시 설치하고 스프링부트를 실행시켰는데 아래와 같은 오류가 발생하였다. 오류: 기본 클래스 ApiApplication을(를) 로드하는 중 LinkageError가 발생했습니다. java.lang.UnsupportedClassVersionError: ../ApiApplication has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 53.0 그래서 상단의 File -> Project Structure 에서 jdk location을 다..
spring boot 프로젝트에서 oracle을 연동하려고 하는 도중에 ojdbc를 디펜던시하지 못하는 문제가 생겨서 아래 코드를 입력하였던 해결되었다. [해결코드] repositories { mavenCentral() maven { url "https://code.lds.org/nexus/content/groups/main-repo"} // 추가하기 } dependencies { // oracle compile 'com.oracle:ojdbc7:12.1.0.2' }