개발중/Spring92 [Spring] '스프링 AOP (Spring AOP)' 가 뭐냐고 물어보면 바로 대답해주기 AOP 관련 용어 Aspect 흩어진 관심사를 모듈화 한 것. Target Aspect를 적용하는 곳. 클래스, 메서드 등.. Advice 실질적으로 어떤 일을 해야 할 지에 대한 것, 실질적인 부가기능을 담은 구현체 Join Point Advice가 적용될 위치 혹은 끼어들 수 있는 시점. 메서드 진입 시점, 생성자 호줄 시점, 필드에서 꺼내올 시점 등 끼어들 시점을 의미. 참고로 스프링에서 Join Point는 언제나 메서드 실행 시점을 의미 한다. Point Cut Join Point의 상세한 스펙을 정의한 것. "A란 메서드의 진입 시점에 호출할 것"처럼 구체적으로 Advice가 실행될 시점을 정함. AOP 적용 방법 1. 컴파일 타임 적용 -> 컴파일 시점에 바이트 코드를 조작하여 AOP가 적용.. 개발중/Spring 2022. 9. 23. [Spring] '스프링과 스프링부트의 차이점'을 모르고 스프링 할 줄안다고 하지말기 ! Spring FrameWork 란 스프링은 JAVA 애플리케이션 개발을 위한 포괄적인 인프라를 지원해주는 프레임워크이다. 스프링 도입 전과 후 스프링 도입 전 : JAVA 웹개발 초기에는 데이터 소스에 레코드를 삽입하기 위해서 많은 코드를 작성해야 했다. 스프링 도입 후 : 스프링의 기능중의 하나인 Spring JDBC Template 을 사용하면 단 몇줄로 이 작업을 끝낼 수 있게된다. Spring 의 기능 Spring JDBC Spring MVC Spring Security Spring AOP Spring ORM Spring Test Spring Boot 란 Spring Boot 는 기본적으로 Spring Framework 를 설정하는데 필요한 구성을 제거하는 Spring Framework 확장 버전.. 개발중/Spring 2022. 9. 23. 스프링 테스트 코드 작성하기 테스트 코드 작성하는 버릇을 들이니 오류가 줄어드는중 package com.rsn.POMS.api.crowdsourcing.labellingwork.service; import com.rsn.POMS.api.crowdsourcing.labellingwork.vo.LabellingWorkVO; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class LabellingWorkServiceTest { @Autowired LabellingWorkSe.. 개발중/Spring 2022. 9. 6. Response headers 에 Content-Disposition 안보임 😥Cors 관련인가 ? Cors 설정을 하기 전에 잘 동작했던 액셀 다운로드 / 업로드가 안되기를 시작했다.너무 슬프다. api 를 호출한다. @Override protected void buildExcelDocument(Map model, Workbook workbook, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException { createExcel(workbook, model); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEnco.. 개발중/Spring 2022. 7. 19. [API 설계] 서비스단에서 유효성 검사 분리하기 현재 프로젝트에서 유효성 검사는 잘 이루어지지 않고 있었다. 하나의 속성 데이터에 대한 유효성 검사를 마음먹고 하려니 서비스단이 너무 길어졌다. 중복되는 코드들도 너무 많고 이거 참 난감한 상황이 발생했다. 애초에 유효성 검사 로직을 수행하는 공통 로직을 만들면 어땠을까 생각도 해봤는데 이미 늦은 듯하다. 그래서 고민을 하다가 서비스 폴더에 하나의 검증 클래스를 생성했다. 기존 보완 contoller ㄴ dataContoller.java service ㄴ dataService.java dao ㄴ dataDao.java vo ㄴ dataVo.java contoller ㄴ dataContoller.java service ㄴ dataService.java ㄴ dataValidate.java dao ㄴ data.. 개발중/Spring 2022. 5. 24. 좋은 객체 지향의 다섯가지 원칙 SOLID SOLID SPR(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 역전 원칙 SRP 단일 책임 원칙 Single Responsibility Principle 한 클래스는 하나의 책임만가져야 한다. 하나의 책임이라는 것은 모호하다 클 수도 있고 작을 수도 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원.. 개발중/Spring 2022. 4. 11. 스프링과 스프링 부트에 대해 알아보기 스프링 부트 스프링을 편리하게 사용할 수 있도록 지원 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성 tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨 손쉬운 빌드 구성을 위한 starter 종속성 제공 스프링 3rd parth 라이브러리 자동 구성 메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공 관례에 의한 간결한 설정 스프링 스프링 DI 컨테이너기술 스프링 프레임 워크 스프링 부트, 스프링 프레임워크 등을 모두 포함한 스프링 생태계 스프링의 핵심 개념 스프링은 자바 언어 기반의 프레임워크 자바 언어의 가장 큰 특징 - 객체 지향 언어 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임 워크 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있.. 개발중/Spring 2022. 4. 11. ✨ STS 설치 가이드 ✨ STS 공식 페이지로 이동해주세요. 저는 4.14.0 - WINDOWS X86_64 를 다운로드 받았습니다. 버전에 맞는 옵션을 선택해주세요. 하단에 다운로드가 진행됩니다. 압축을 원하는 곳에 풀어주세요. 그럼 아래와 같이 나타날꺼에요. contents.zip 을 원하는 곳에 풀어주시면 됩니다. contents.zip 압축을 풀면 sts-4.14.0.RELEASE 이라는 폴더가 생성이 되는데 sts-4.14.0.RELEASE 안에 SpringToolSuite4.exe 가 생성이 됩니다. 그럼 다운로드가 완료된 것입니다. 예전에는 이클립스를 기동시키기 위해서 java도 설치하고 그 설치 경로를 eclispe.ini 파일에 매핑을 시켜주는 등의 과정이 필요했는데 STS에서는 plugin에 jre가 들어있어서.. 개발중/Spring 2022. 3. 27. http 정보 console 에서 요청 확인하는 설정 logging.level.org.apache.coyote.http11=debug application.properties 에 아래 설정 추가시 logging.level.org.apache.coyote.http11=debug 요청 했을 경우에 아래와 같은 정보들이 나온다. Host: localhost:8080 Connection: keep-alive sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99" sec-ch-ua-mobile: ?0 sec-ch-ua-platform: "Windows" Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko.. 개발중/Spring 2022. 3. 25. @ServletComponentScan 서블릿을 자동 등록해주는 어노테이션 import org.springframework.boot.web.servlet.ServletComponentScan; @ServletComponentScan 개발중/Spring 2022. 3. 25. 스프링 Junit 이란 ? 사용해보고 싶다 👩🦰 Junit 이란 ? java 에서 독립된 단위 테스트를 지원해주는 프레임워크이다. @Test 메서드가 호출이 될 때마다 새로운 인스턴스를 생성하여 독립적인 테스트를 이루어지게 한다. 메이븐은 아래와 같이 추가해주었다. junit junit 4.12 test Junit test 코드는 아래와 같이 작성하였다. import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import com.rsn.POMS.api.poms.user.service.PomsUserService; @Spring.. 개발중/Spring 2022. 1. 20. @Transactional 어노테이션 적용 시 롤백이 안되는 경우 🖤 글이 도움이 되었다면 유튜브 클릭 해주세요 🖤 https://youtu.be/bz8h5adAHNc - DY 선배 Junit 테스트 중 Transaction 관련하여 정보 공유 드립니당 @Transactional 어노테이션 적용 시 롤백이 안되는 문제가 있었는데 원인 파악해 보니 데이터베이스 저장소 엔진 문제였습니다 MySQL의 MyISAM 엔진의 경우 트랜잭션 지원을 하지 않는다고 합니다 만약 트랜잭션을 사용하여 개발할 경우 참고하면 좋을 것 같습니다! 스토리지 엔진 - 데이터를 디스크에 저장 - 데이터를 디스크에서 읽음 데이터베이스 관리 시스템(DBMS)이 데이터베이스에 대해 데이터를 SELECT INSERT UPDATE DELETE 하는데 사용하는 기본 소프트웨어 컴포넌트라고도 한다. MySQL은.. 개발중/Spring 2022. 1. 13. 이전 1 2 3 4 5 6 7 8 다음