일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- feign
- aws
- 자료구조
- retry
- JPA
- 자바
- 디자인 패턴
- Intellj
- 백준
- Spring
- 코딩
- MST
- 클라우드
- PL/SQL
- DP
- 페이징
- 데이터베이스
- SQL
- Spring Cloud Feign
- Spring Cloud
- 오라클
- db
- Kafka
- Jenkins
- 알고리즘
- MVC
- 운영체제
- 쿼리
- Spring Boot
- golang
- Today
- Total
목록IT/자바 (9)
justgo_developer
Json File Download(HttpURLConnection, FeignClient) 목차 HttpURLConnection 이용한 파일 다운로드 FeignClient 이용한 파일 다운로드 상세 1. HttpURLConnection 이용한 파일 다운로드 InputStream : 파일 데이터를 읽거나 네트워크 소켓을 통해 데이터를 읽거나 키보드에서 입력한 데이터를 읽을 때 사용 read(byte[] b): 배열 b의 크기만큼 데이터를 읽어와서 b에 저장한다. read(byte[] b, int off, int len) : len의 크기만큼 데이터를 읽어와서 배열 b의 off 위치부터 저장한다. FileOutputStream : 데이터를 파일에 바이트 스트림으로 저장하기 위해 사용한다. 주어진 이름의 파일..
추상 팩토리 패턴(Abstract Factory Pattern)를 이용한 인터페이스 중복 메소드 제거 목차 추상 팩토리 패턴(Abstract Factory Pattern) 정의 추상 팩토리 패턴을 이용한 설계 추상 팩토리 패턴을 이용한 예제 개요 원래 개발했던 연동 서비스에 새로운 업체가 추가되어야 한다. interface는 똑같지만 일부 메소드는 거의 동일하고 일부 메소드는 다르게 구현하여야 할 것 같다. 그래서 추상 팩토리 패턴을 이용해 공통코드를 추상클래스로 뽑아내려고 한다. 그 개념에 대해서 알아 보려고 한다. 상세 1. 추상 팩토리 패턴(Abstract Factory Pattern) 정의 팩토리를 추상화해서 관련있는 객체의 집합을 생성할 수 있는 팩토리를 만들고 조건에 따라 팩토리를 생성해서 서..
java : Arrays.asList() + java.lang.UnsupportedOperationException 목차 List 일반적인 생성 방법 Arrays.asList 사용하여 생성 방법 Arrays.asList 사용 시 문제를 해결방법 개요 Arrays.asList로 배열을 List로 선언 후 리스트 값이 추가되거나 제거 될때 UnsupportedOperationException 예외가 발생. 상세 1. List 일반적인 생성 방법 @Test public void generalCreateList() { List sourceList = new ArrayList(); sourceList.add("order"); sourceList.add("delivery"); sourceList.add("claim..
1.SRP(Single Reponsibility Principle) : 단일 책임 원칙 객체는 단 하나의 책임만 가져야 한다. 객체에 책임을 할당할 떄는 어떤 객체보다도 작업을 잘 할 수 있는 객체에 책임을 할당해야한다. 모든 코드를 테스트하는 문제를 해결하려면 한 클래스에 너무 많은 책임을 부여하지 말고 단 하나의 책임만 수행하도록 해 변경 사유가 될수 있는 것을 하나로 만들어야 한다. 이를 책임 분리라 한다. 예시)Student 클래스가 수강과목추가/조회, 데이터베이스 저장, 읽는작업, 성적표 출력 등 너무 많은 책임을 수행한다면, 수강과목을 추가하고 조회하는 책임만 수행하도록 하는것이 SRP 따르는 설계이다. 나머지는 다른 클래스가 더 잘 할수 있는 여지가 있다. 2. OCP(Open Closed ..
피터 코드는 상속의 오용을 막기 위해 상속을 사용을 엄격하게 제한하는 규칙들을 만들었다. 아래 5가지 규칙 중 어느 하나라도 만족하지 않는다면 상속을 사용해서는 안된다. 1. 자식 클래스와 부모 클래스 사이는 역할 수행 관계가 아니어야 한다. 2. 한 클래스의 인스턴스는 다른 서브 클래스의 객체로 변환할 필요가 절대 없어야 한다. 3. 자식 클래스가 부모 클래스의 책임을 무시하거나 재정의하지 않고 확장만 수행해야 한다. 4. 자식 클래스가 단지 일부 기능을 재사용할 목적으로 유틸리티 역할을 수행하는 클래스를 상속하지 않아야 한다. 5. 자식 클래스가, 역할, 트랜잭션, 디바이스 등을 특수화 해야 한다.
[추상화] 추상화란? 어떤 영역에서 필요로 하는 속성이나 행동을 추출하는 작업 구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념으로 다루는 수단 예시) switch(자동차 종류) case 아우디: break; case 벤츠: break; default: breka; 이러한 경우 BMW 차가 추가 된다면 BMW에 대한 case문을 추가해야한다. switch(자동차 종류) case 아우디: break; case 벤츠: break; case BMW : break; default: breka; 하지만 추상화의 개념을 이용한다면 아래와 같이 코드를 작성할 수 있다. 추상화 개념인 Car 클래스를 사용한다. 따라서 이 코드는 자동차가 추가되더라도 변경될 필요가 없다. 물론 실제 changeEngineOi..
정규식(Regular Expressions)이란? 정규 표현식(regular expression) 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 자바에서 정규식 관련 API는 regex 패키지 안에 존재 Package java.util.regex Classes for matching character sequences against patterns specified by regular expressions. 정규식으로 지정된 패턴에 대해서 문자열을 일치 시키기 위한 클래스. 정규식 문법 ^ : 문자열 시작 $ : 문자열 종료 . : 임의의 한 문자(단 \은 넣을 수 없음) * : 앞 문자가 없을 수도 무한정 많을 수도 있음 + : 앞 문자가 하나 이상 ? : 앞 문자가..
자바 언어로 개발시 평상시에 많이 쓰는 String, StringBuffer, StringBuilder의 차이점은 무엇일까? ■ String : 불변, 선언하면 동일한 공간이 할당되어 있기 때문에값을 바꾸어도 메모리를 차지하고 있음. 값을 바꾸어도 새로운 String 객체가 생성되는 것. 값이 자주 안바뀔때 사용하면 좋음 - String 객체 값이 변경 시 새로운 메모리 주소값이 생성됨 ■ StringBuffer, StringBuilder : 가변, 객체를 생성하지 않아도 문자열 수정 가능 동일한 객체 내에서 수정됨. 값이 자주 바뀌는 경우 String 보다 효율적 - StringBuffer, StringBuilder 값이 변경되어도 메모리 주소값은 동일 Why?? 실제 intellj를 이용해 Strin..
자바에서 자주 사용하는 메인메소드 public static void main(String[] args)의 의미는 무엇일까? -> 그 이유는 jvm 때문 ■ public(접근제어자) : jvm이 main함수를 어디서든 접근 가능해야 하므로 ■ static(정적함수) : main 메소드는 객체를 생성하지 않아도 자동으로 메모리에 생성되어 어디서든 호출 가능 ■ void : main 메소드가 끝나면 return이 없어도 되기 때문 ■ main : jvm이 실행할 메소드가 뭔지 정해놓은 규칙 ■ String[] args : 자바 실행 시 매개변수를 받기 위한 배열