공부하다죽어라
article thumbnail
[Kafka] Apache Kafka란
개발/Kafka 2021. 6. 14. 23:49

Kafka 아파치 카프카(Apache Kafka)는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트입니다. 메시지 브로커란 ? 송신자의 이전 메시지 프로토콜로부터의 메시지를 수신자의 이전 메시지 프로토콜로 변환하는 중간 컴퓨터 프로그램 모듈입니다. 다시 Kafka로 돌아가서.. kafka는 실시간 데이터 피드를 관리하기 위해 통일된, 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공하는 것이 목표입니다. 즉, 분산 트랜잭션 로그로 구성된 상당히 확장 가능한 pub/sub 메시지 큐로 정의할 수 있으며, 스트리밍 데이터를 처리하기 위한 기업 인프라를 위한 고부가 가치 기능입니다. 우리나라 기업중 카카오가 kafka를 사용한다고 합니다. 🧤 Kafka를 왜 사용하나요? 카프카 사용..

article thumbnail
[Spring] Jar 파일 실행 ( IntelliJ, Maven )
개발/Spring 2021. 6. 12. 14:23

Jar파일로 스프링 프로젝트를 실행시키는 이유는 MSA기반으로 애플리케이션을 설계하고 개발하다보니 IDE를 여러개 띄어야하는 상황이 있어서 노트북에 무리가 많이 갔습니다.. 이를 해결하기 위한 것이 Jar파일로 스프링부트 프로젝트를 실행시키는 것인데 방법을 정리해보겠습니다. 우선 Jar파일을 생성하고자하는 프로젝트를 Open합니다. Maven에 들어가보면 Lifecycle 아래 Intstall이 있는데 이것을 더블클릭하면 인텔리제이가 알아서 뭔가를 만듭니다.. 콘솔창을 보면 빌드가 성공적으로 완료된 모습을 볼 수 있습니다. 다음은 생성된 Jar파일입니다. target 디렉토리 아래 apigateway-service jar파일이 자동으로 생성되었습니다. 이제 cmd를 켜고 위와 같은 명령어를 입력하면 성공..

article thumbnail
[JPA] QueryDsl Maven 설정
개발/JAVA 2021. 6. 10. 13:48

QueryDSL이란 Querydsl 정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해 주는 프레임워크다. 문자열로 작성하거나 XML 파일에 쿼리를 작성하는 대신, Querydsl이 제공하는 플루언트(Fluent) API를 이용해서 쿼리를 생성할 수 있다. 단순 문자열과 비교해서 Fluent API를 사용할 때의 장점은 다음과 같다. IDE의 코드 자동 완성 기능 사용 문법적으로 잘못된 쿼리를 허용하지 않음 도메인 타입과 프로퍼티를 안전하게 참조할 수 있음 도메인 타입의 리팩토링을 더 잘 할 수 있음 Maven 설정은 다음과 같다. 1. pom.xml .... com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/j..

article thumbnail
[JPA] 영속성 컨텍스트
개발/JAVA 2021. 5. 14. 18:32

영속성 컨텍스트 엔터티를 영구저장할 수 있는 환경을 의미한다. JPA를 이해하는데 가장 중요한 용어로서 영속성 컨텍스트를 통해 JPA의 내부 구조 방식을 이해할 수 있다. 영속성 컨텍스트는 논리적인 개념이다. 이에 접근하기 위해서 우리는 엔터티 매니저를 이용해야한다. 영속성 컨텍스트를 활용함으로서 다음과 같은 이점을 얻을 수 있다. 1차 캐시 //엔티티를 생성한 상태(비영속) Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); //엔티티를 영속 em.persist(member); EntityManager내부의 persist 매서드를 사용함으로서 엔터티를 영속할 수 있다. JPA는 우선적으로 member를 찾을 ..

article thumbnail
[Spring] Eureka Server 환경 설정
개발/Spring 2021. 5. 6. 12:45

Eureka Server 환경을 사용하고자 한다. 1. pom.xml 설정 ... 1.8 2020.0.0 ... org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import 2. application.yml 설정 server: port: 8761 eureka: client: register-with-eureka: false fetch-registry: false 3. Application.java 어노테이션 설정 @SpringBootApplication @EnableEurekaServer ..

article thumbnail
[Spring] Spring Cloud 란 무엇인가
개발/Spring 2021. 5. 3. 22:38

Spring Cloud ? 독립적으로 개발하기 위한 서비스, 즉 마이크로서비스 아키텍쳐를 지원하기위한 프레임워크가 스프링 클라우드이다. 스프링 클라우드를 사용하기 위해서는 스프링부트의 환경이 필수적이다. 스프링 클라우드를 이용해 서비스를 개발하려고 할 때, 어떤 내용이 구축되어야 하는지 알아보겠다. 환경 설정 마이크로서비스가 가지는 환경설정을 SpringCloudConfigServer라는 외부의 저장소에 환경설정을 지정할 수 있다. 이를 사용하면 각각의 마이크로서비스의 내용이 변경된다고 해도 다시 빌드하지 않아도 되고 외부저장소에 있는 환경설정만 바꿔준다면 연결되어있는 마이크로서비스들의 환경설정이 자동으로 변경되어 유지보수가 매우 좋아진다고 볼수있다. 위치 투명성 분산 데이터베이스 시스템에서 사용자가 데..

article thumbnail
[Spring] 스프링 프레임워크 핵심 특징 (DI, IOC, AOP)
개발/Spring 2021. 5. 2. 21:39

스프링은 아마 우리나라 JAVA개발 중에서 가장 많이 사용되는 프레임워크일 것이다. 스프링 프레임워크는 어떤 장점이 있길래 많이 사용되는건지 이번 포스팅을 통해서 알아볼 것이다. 우선 스프링이란 무엇인가 ? 스프링 프레임워크(영어: Spring Framework)는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 한다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다. 스프링은 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. 나..

article thumbnail
[Spring] 스프링 MVC 흐름
개발/Spring 2021. 4. 26. 21:50

스프링의 대표적인 디자인패턴으로 MVC패턴을 꼽을 수 있다. MVC 패턴이란 Model-View-Controller의 약어로서 소프트웨어 공학에서 사용되는 소프트웨어 디자인패턴이다. 사용하면 무엇이 좋은가 ? MVC패턴은 사용자 인터페이스로부터 비즈니스로직을 분리시켜 애플리케이션의 시각적인 요소(View)와 그 뒷면에서 사용되는 비즈니스 로직을 서로 영향을 끼치지 않으면서 개발에 임할수 있다. MVC 패턴의 구성요소 Model - 모델(model)이란 어떠한 동작을 수행하는 코드를 말한다. 표시 형식에 의존하지 않는다. 다시 말해, 사용자에게 어떻게 보일지에 대해 신경쓰지 않아도 된다. 모델은 순수하게 public 함수로만 이루어진다. 몇몇 함수들은 사용자의 질의(query)에 대해 상태 정보를 제공하고..