IT 발자취...
-
[IssueCase] java.sql.SQLException: Access denied for user ‘ID’@’xxx.xxx’ (using password: YESIT 발자취.../스프링 2018. 12. 9. 03:26
Spring Framework에서 MySQL connection을 할 때 생길 수 있는 오류입니다. 오류의 원인은 현재 IP로의 접근이 제한된것 인데요. 해결법은 MySQL에서 권한을 설정해주면 됩니다. GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; 생성하고자하는 USERNAME과 권한을 주고자하는 IP주소 그리고 PASSWORD를 입력하시면됩니다. application.properties spring.datasource.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/testDB spring.datasource.username=user sprin..
-
[디자인패턴]싱글턴 패턴IT 발자취.../디자인패턴 2018. 12. 9. 03:15
1. 정의 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴. 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나고 최초 생성 이후에 호출된 생성자는 최초에 생성한 객체를 반환한다. (자바에선 생성자를 private로 선언해서 생성 불가하게 하고 getInstance()로 받아쓰기도함) 즉, 인스턴스가 필요할 때 똑같은 인스턴스를 만들어 내는 것이 아니라, 동일(기존) 인스턴스를 사용하게함 2. 개요 싱글톤 패턴을 쓰는 이유 - 고정된 메모리 영역을 얻으면서 한번의 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지 - 싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의 인스턴스의..
-
[디자인패턴]팩토리 패턴IT 발자취.../디자인패턴 2018. 12. 9. 03:14
디자인패턴을 공부하기 전 디자인패턴 뿐만 아니라 자주 나오는 용어지만 제대로 알지 못한 용어를 정리하고자합니다. Concrete Class(구상클래스) vs Abstract Class (추상클래스) 추상 클래스는 객체 지향을 공부하며 많이 공부했을 것이라 생각합니다. 디자인 패턴을 공부하며 많이 나왔던 Concrete Class는 구체화된 클래스? 라고 생각하면 될 것같습니다. 즉, 모든 오퍼레이션의 구현을 제공하는 클래스 정도로 알고 있으면 될 것 같습니다. :) [팩토리패턴] 1. 정의 - 모든 팩토리 패턴에는 객체 생성을 캡슐화 한다. - 팩토리 메서드 패턴과 추상 팩토리 패턴이 있다. - 팩토리 메서드 패턴 : 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클..
-
[디자인패턴] 데코레이터 패턴IT 발자취.../디자인패턴 2018. 12. 9. 03:13
. 정의 객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. ConcreteComponent에 새로운 행동을 동적으로 추가할 수 있다. 각 데코레이터 안에는 구성요소(Component)에 대한 레퍼런스가 들어있는 인스턴스 변수가 있다. Decorator는 자신이 장식할 구성요소(Component)와 같은 인터페이스 또는 추상 클래스를 구현한다. ConcreteDecoratorA, ConcreteDecoratorB 에는 그 객체가 장식하고 있는(데코레이터가 감싸고있는 Component객체)을 위한 인스턴스 변수가 있다. 따라서 데코레이터 Component의 상태를 확장할 수 있다. ConcreteDecoratorA, Co..
-
[JAVA] Scanner와 BufferedReader차이IT 발자취.../JAVA 2018. 12. 9. 03:09
자바에서 사용자의 입력을 받을 때, 또는 파일을 읽을 때, Scanner와 BufferedReader 클래스를 자주 사용합니다. 그럼 이 둘의 차이점을 알아 보도록 하겠습니다. 1. Scanner - java.util 패키지에 존재한다. - 데이터를 파싱해서 원하는 type으로 들어온다. 파싱하는데 시간이 걸리므로 느리다. - 버퍼의 사이즈가 1024byte(1KB)로, BufferedReader에 비해 작다. - thread unsafe하다. - I/O Exception을 던지지 않는다. 2. BufferedReader - java.io 패키지에 존재한다. - character InputStream 으로부터 읽어온다. 데이털르 파싱하지 않아 Scanner보다 빠르게 받아온다. - Scanner에 Buf..
-
[JAVA] 비트 논리 연산자IT 발자취.../JAVA 2018. 12. 9. 03:08
비트 연산자는 피연산자를 비트단위로 논리 연산하는것입니다. & (AND 연산자) | (OR 연산자) ^ (XOR연산자) x 1 1 0 0 1 1 0 0 1 1 0 0 y 1 0 1 0 1 0 1 0 1 0 1 0 결과값 1 0 0 0 1 1 1 0 0 1 1 0 &(AND 연산자) : 피연산자 양 쪽이 모두 1이어야만 1을 결과로 얻는다. 그외에는 0을 얻는다. | (OR 연산자) : 피연산자 중 한 쪽의 값이 1이면, 1을 결과로 얻는다. 그 외에는 0을 얻는다. ^ (XOR연산자) : 피연산자의 값이 서로 다를 때만 1을 결과로 얻는다. 같을 때는 0을 얻는다. /* * @Author : wookTire * * @Title : 비트논리연산자 */ public class BitWiseOper { pub..
-
[CI/CD] 젠킨스 구축 3. 젠킨스 설정 및 배포 자동화IT 발자취.../CI CD 2018. 12. 9. 03:02
젠킨스를 사용하여 자동 배포 환경을 만들어 보겠습니다. 작업환경 ● Raspbian GNU/Linux version 8 ● Jenkins 2.107.3 ● GitHub plugin 1.3.1 ● Publish Over SSH 1.19.1 ※ 서버가 총 한대로, Jenkins와 웹서비스가 구동되는 서버가 함께 있는 환경 (Spring boot사용) 두 대의 다른 서버로 구축하려면 아래 글을 참고해주세요. Jenkins X GitHub로 remote 서버에 자동 배포하기 + SSH 특정 repository가 푸시될 때, remote 서버에 자동 배포 하자! dodo4513.github.io 자동배포 시나리오 (시나리오에 따라 설정이 바뀔 수 있다) 1. 누군가 hook branch에 변경사항을 푸시한다. 2..