일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- QueryDSL
- vue.js
- KAFKA
- jmeter
- grafana
- Selenium
- MySQL
- RabbitMQ
- docker
- docker compose mysql
- Netty
- Spring Open Feign
- mybatis
- netflix oss
- spring boot redis
- weblogic 10
- spring boot
- WebLogic
- cassandra
- coalesce
- Airflow
- redis
- argo cd
- Redis Sentinel
- docker-compose
- JPA
- Docker Compose
- ChannelPipeline
- Hibernate
- spring cloud
- Today
- Total
목록전체 글 (410)
IT.FARMER
코드리뷰를 할때나, 개발을 할때 final을 보면 이게 꼭 필요한것인가? 하고 의문을 같거나 언제 사용하면 좋을까? 하고 생각에 잠기는 경우가 생긴다. 기본적으로 final 이라고하면 불변 객체에 정의후 값을 재할당하지 않을때 사용함으로 상수(const)에서 많이 사용한다. 요즘엔 IDEA 도구가 좋아지다 보니, Eclipse나 IntelliJ 에서 자주 추천을 해준다. 특히나 Spring(boot)를 사용하시는 개발자라면 생성자 방식의 주입을 사용하실때 ide에서 final을 추천해준다. 그럼 언제 사용하고, 어떤 의미를 가지고 있는지 좀더 살펴보자. final 종류 final 변수 final method final class for example final 변수 → 해당 변수가 생성자나 대입 연산을 ..
초기화 블럭 종류 클레스 초기화 블럭 인스턴스 초기화 블럭 클레스 초기화 클레스가 처음 로딩될때 한번만 수행되는 블럭 인스턴스 변수 및 메서드에 접근 불가 (static 으로 선언된 곳은 접근 가능) 인스턴스 초기화 인스턴스가 생성될때마다 수행되는 블럭 super 생성자 이후에 실행됨 생성자 보다 먼저 생성됨 모든 생성자의 콩통 코드를 인스턴스 초기화 블럭에 넣으면 코드가독성이 좋다. for example) package primitive; /** * 클레스 초기화 테스트 * - 클레스 초기화 * - 인스턴스 초기화 */ public class InitializationClass { static { System.out.println("1.클레스 초기화"); } { System.out.println("2...
파일을 외부공간에 올려두고 그것을 다시 URL Stream 으로 읽어어 오려고 한다. 하지만 이파일이 어느 확장자명을 가진것인지 모를때는 META 데이터를 읽어와 확장자 명을 정의해야한다. URL.openStream() 과 Files.write({file_name}, {input_stream}) 으로 저장하려할때 어째든 파일 이름과 확장자 명이 필요하다. 그럼 해당 파일에 대한 확장자명은 파일을 임의의 파일로 저장한뒤에 메타데이터를 읽어와 다시한번 저장 하도록 한다. 순서 1. URL 스트림으로 파일 읽기 2. Temp directory 에 파일 저장 하기 3. 템프파일을 읽어들여 메타데이터확인하기 4. 템프디렉토리 파일을 지정된 파일 경로로 메타데이터를 입혀 저장하기 public static void ..
Design pattern 디자인 패턴은 여러 분류로 그룹화 되어 있으며, 크게 3세가지로 나뉜다. 보통 우리가 알고 있거나 자주 이야기 되는 패턴은 생성패턴, 구조패턴, 행동패턴이며, 그외에도 동시실행 패턴도 있다. UML과 같은 일종의 설계 기법 및 설계방법이며, 소프트웨어 엔지니어링에서 디자인패턴은 소프트웨어 디자인시에 일반적으로 발생되는 문제이대한 일반적인 해결책이다. 디자인 패턴으로 코드를 직접 변환하거나 디자인한다고 해서 해결되는 것은 아니며, 이를 해결하기 위한 설명 혹은 템플릿 이라 생각하면 된다. 사용하는(패턴 화된) 이유 ? 다른 사람이 작성한코드를 보고 이해하는건 쉽지 않다. 이해되지 않는 코드드를 수정하거나 새로운 기능을 추가할때는 의도치 않은 결과나 버그가 발생되곤 한다. 디자인 ..
java generic 이란? java 5 버전부터 등장하기 시작한 제네릭 기능이다. 형변환을 안전하게 해주고, 컴파일시에도 잘못된 형변환을 알려준다. 이로인해 코드의 재사용성을 높일수 있고 , 제네릭 메소드 이용시 타입 세이프 하게 개발가능 하다. 가장 보편하게 알려진 제네릭의 의미는 다음과 같다. 제네릭 은 클래스 내부에서 사용할 테이터 타입을 외부에서 지정하는 기법을 말한다. 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 위와 같이 다양한 타입의 객체들을 형변환시, 컴파일시에 도움을 받도록 한다. 제네릭은 사용시 메소드, 클레스, 변수에 활용방법에 따라 명칭이 각기 다르다. 해당 타입종류를 모른다고 해서 문제되진 않는다. Java 개발을 하며 무의식..
byte[] 배열을 문자열로 변환하여 사용 RestAPI 통신을 하거나, 혹은 다른 이유로 인해서 파일을(Byte[]) 를 문자열로 저장 하거나 보내야할 경우가 있다. 가끔 우리가 웹화면에서 HTML의 image 테그를 이용할때
UML 무료툴 추천 (flowchart 무료) * yEd 시스템 구성도 부터, flowchart , uml 등등 여러가지를 사용할 수 있다. yEd live 라고 웹에서도 사용 가능하고 다운로드 하여 윈도우, 맥에서 설치본으로 사용 할 수 도 있다. 시각화 관련하여 작업할때도 유용하다. https://www.yworks.com/ yWorks - the diagramming experts High-quality software components for graph analysis, automatic graph layout, and visualization. www.yworks.com * draw.io 구글 드라이브에 저장하여 사용할수 있는 모델링 도구. draw.io 도 여러 diagram을 지원하며, 특..
@MappedSuperclass 이용한 상속 JPA Entity 에서 상속관계를 만들기 위해서는 @MappedSuperclass 를 사용하여 상속 관계를 정의 할 수 있다. 최상위 Class로 Employee 를 생성하고, 해당 Class를 상속 받아 관계를 정의할 수 있다. 예제 ) @MappedSuperclass public class Employee { @Id protected Integer empId; @Version protected Integer version; @ManyToOne @JoinColumn(name="ADDR") protected Address address; public Integer getEmpId() { ... } public void setEmpId(Integer id) {..
롬복을(lombok) 사용하면 참 편하다. 하지만 주의해야할 사항도 있다. @ToString 이용시 Object안에 순환참조가 걸릴경우 정상적으로 이용하지 못하는 경우가 생긴다. 이를 해결하기 위해서는 @ToString 이용시 연관관계에 있는 객체들의 순환참조를 끊어 주어야 한다. 특히나 Entity 를 RestAPI 에서 응답 모델로 사용할 경우에는 해당 문제가 더욱 두드러 진다. this is example @ToString(exclude = {"campaignEntity", "adsEntities"}, callSuper = true) exclude 속성을 이용하여, 순환참조가 걸리는 Object를 등록하여 사용한다.