전체 글 119

Kafka 란?

⭐kafka란? kafka 는 pub-sub 모델의 메시지 큐 입니다. 분산환경에 특화되어있는 특징을 가지고 있습니다. 구성요소 Event Event는 Kafka에서 Producer 와 Consumer 가 데이터를 주고 받는 단위입니다. Producer Producer는 kafka 에 이벤트를 게시(post)하는 클라이언트 어플리케이션을 의미합니다. Producer는 메시지를 생산(Produce)해서 브로커의 토픽으로 메시지를 보내는 역할을 하는 어플리케이션이나 서버 모두를 Producer 라고 부른다. Producer는 데이터를 전송할 떄 리더 파티현을 가지고 있는 kafka 브로커와 직접 통신합니다 Consumer Consumer는 Topic를 구독하고 이로부터 얻어낸 이벤트를 처리하는 클라이언트 어..

Spring Boot Controller 어노테이션

Spring Boot를 공부하면서 많은 어노테이션에 항상 이건 뭐였지...? 이건...? 하면서 검색하는 경우가 많았습니다... 그래서 Controller 관련 어노테이션을 한번 쏵!!! 정리해 보려 합니다 😎Controller 관련 어노테이션 어노테이션 설명 @RestController 모놀릭 방식의 MVC 패턴 방식이 아닌 Rest API 구현을 위한 컨트롤러 선언 @Controller + @RequestBody 기능을 제공합니다. @Controller MVC 패턴 방식을 위해 제공하는 어노테이션 @RequestMapping 요청에 대한 Methods, URL 매핑 @GetMapping GET 요청 대한 URL 매핑 @PostMapping POST 요청 대한 URL 매핑 @PutMapping PUT ..

swagger-ui 에러

😱입사 후 과제를 받아 수행하기 위해 swagger - ui를 사용하려 했는데 에러가 발생했다.... 현재 작성 중인 프로젝트 설정 Maven SDK java 1.8 java 8 현재 Maven으로 설정한 swagger - ui io.springfox springfox-boot-starter 3.0.0 io.springfox springfox-swagger-ui 3.0.0 config 패키지에 추가한 swagger - ui 코드 @Configuration public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.OAS_30) .useDefaultResponseMessages(false) .sele..

에러 2022.08.04

EJB JEE

Enterprise JavaBeans(EJB) 개념 EJB(Enterprise Java Bean), 기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다. 일반적으로 업무 로직을 가지고 있는 서버 애플리케이션을 EJB라고 한다. Enterprise JavaBeans(EJB)는 독립한 부품이 아닌, 미국 Sun Microsystems사가 제창한 규약이다. EJB는 서버 어플리케이션의 개발을 용이하게 해 다중 다양한 Platform과 제품 간의 이동성을 실현하기 위하여 비즈니스 로직과 시스템 서비스를 이용하는 로직을 분산해 그 사이의 규약을 규정하고 있다. 비즈니스 로직을 탑재한 부품을 "Enterprise Bean"이라고 불린다. Database처리, Transaction처리 등의 시스템 서비스를 ..

Tomcat, JBoss 차이

Tomcat, JBoss 차이 ⭐JBoss 및 GlassfishJboss JBoss 및 GlassfishJboss란 Red Hat의 자회사인 Jboss가 개발한 Jboss Application Server로 IBM Websphere 및 SAP NetWeaver와 같은 설루션을 대체하는 오픈 소스 역할을 한다. 주로 Sun Microsystems의 Enterprise JavaBeans(EJB) API를 사용하여 기능을 제공한다. EJB container와 그 스택의 다른 모든기능을 포함한 Java EE Application Server이다. Java EE 서버는 수백 메가 메모리를 가짐. ⭐Tomcat Tomcat이란 흔히 "Apache Tomcat"이라고 불리는 Tomcat은 기술적으로는 응용 프로그램 ..

Spring Batch 입문!!

Spring Batch 😉Batch가 필요한 상황 !! 일정 주기로 실행해야 할 때 실시간 처리가 어려운 대량의 데이터를 처리해야 할 떄 이런 작업을 하나의 애플리케이션에서 수행하면 성능 저하를 유발할 수 있어서 배치로 구현한다 Batch 구성 Batch 작업을 Job 라고하고 Job 을 실행하기 위한 JobLauncher 을 구현해야한다. 하나의 Jop은 여러개의 Step로 구성할 수 있다. Step은 ItemReader , ItemProcessor , ItemWriter 로 구성할 수 있다. JobLauncher 와 JobStep 에 대한 정보를 관리하는 JobRepository 를 구현해야한다. Job 의 구조 ⭐Job Job 이름을 정의 Step 을 정의하고 순서를 정의 Job의 재사용 가능성을 ..

Spring Batch 2022.08.01

@Transactional 그리고 @Commit

Spring Boot에서 테스트 코드를 작성하면서 이건 기억하면 좋겠다 싶은 내용이 있어 달려왔습니다 우선 진행하려던 코드는 첨부파일 업데이트 관련 테스트 코드입니다 @Transactional @Commit @Test public void testUpdateImage(){ Board board = repository.getById(20); board.changeTitle("제목 수정.....20"); board.clearImages(); for (int i = 0; i < 3; i++) { BoardImage boardImage = BoardImage.builder() .fileLink("aaa"+i+"jpg") .build(); board.addImage(boardImage); } repository...

JPA One To Many 그리고 N+1

JPA를 하면서 연관관계에 대해 공부하던 중 접하게 된 One To Many 장점과 단점이 있었지만 솔직히 장점보다는 단점이 더 많은 방법처럼 느껴졌습니다. 우선 장점으로는 관리의 주체가 도메인 스러워지고 Pk위주의 설계인점 이 있었고 단점으로는 단방향 참조이기에 페이징 , N+1 등 다양한 문제점들이 있었습니다. 😉그럼 좀더 깊~~~ 숙하게 One To Many를 알아보겠습니다. 😒맵핑 테이블? 우선 One To Many 는 기본적으로 중간에 맵핑 테이블을 생성합니다 하지만 이런 방식이 불편하게 느껴지기에 저는 강제적으로 맵핑 테이블이 생성되지 못하도록 처리해서 코드를 작성했습니다. @Entity @Table(name = "t_board") @AllArgsConstructor @NoArgsConstru..

고민해 보기 2022.07.18

나쁜 공격 SQL인잭션은 무엇이고 어떻게 방어해야 하지?

SQL인잭션에 대해서 설명해 보시오 SQL 인재션 공격이란 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위를 말한다 그럼 어떻게 막아야 하는데? 에러 페이지를 만든다 악의 적인 사용자가 일부로 잘못된 sql문이 실행되게 한다음 오류 내용을 보고 DB구조를 파악할 수도 있기때문에 따로 페이지를 만들어주는게 안전하다 PreparedStatement 를 사용한다 현 프로젝트에서는 MyBatis 를 사용하고있다 MyBatis 에서 #{ } 를 사용하면 PreparedStatement 를 생성하여 파라미터를 바인딩한다

Spring<지속적으로 업데이트 중>

Spring MVC 데이터와 화면간의 의존관계를 벗어날 수 있게하는 개발 기법 MVC 는 Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다. 스프링 프레임워크란? 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크 동적인 웹 사이트 개발하기 위한 여러 가지 서비스를 제공함 RequestMapping 요청 RUL을 어떤 메서드가 처리할지 여부를 결정하는 것 DI (Dependency Injection) 의존성 주입 설정 파일이나 어노테이션을 통해 객체간의 의존 관계를 설정하여 개발자가 직접 의존하는 객체를 생성할 필요없음 Spring AOP(Aspect Oriented Programming) 관점 지향 프로..