본문 바로가기

BE/Spring

[Spring] AOP 개념 및 구현 목차 1. AOP란? 2. AOP 장점 3. Advice / PointCut / JoinPoint 4. 동작 방식 5. 구현 방식 📌AOP란? AOP(Aspect Oriented Programming) 란 '관점 지향 프로그래밍'으로서 개발 로직과 비즈니스 로직을 분리하여 관리하는 Spring 개념입니다. 즉, 공통 관심 사항과 핵심 관심 사항(코어 코드)을 분리하여 반복된 작업을 줄이는 Spring 개념입니다. 쉽게 설명하자면, 100개 함수가 처리해야 할 공통 기능 코드(예: 로깅) 들을 분리해 별도 Bean으로 관리하는 컨셉입니다. 📌AOP 장점 1) 높은 재사용성 : 중복된 코드를 최대한 제외하여 기능이 필요할 때만 호출하여 쓰기 때문에 재사용성이 높습니다. 2) 깔끔한 코드 : 공통관심사항을 별.. 더보기
[MyBatis] MyBatis 정의 및 주요 메서드 1. Mybatis란 Mybatis란? 객체와 관계형데이터베이스를 매핑하는퍼시스턴스 프레임워크(ORM, Object Relationship Mapping)이다. *퍼시스턴스(Persistence, 영속성)란? 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다. RDBMS 혹은 파일 시스템 등 별도 데이터베이스에 영구적으로 저장하여 데이터가 영속성을 가지는 것을 말한다. *ORM(Object Relationship Mapping)이란 ? 객체와 RDBMS를 자동으로 매핑해주는 것을 말한다. 객체 ↔ 관계형 데이터베이스 객체 지향 프로그래밍은 객체를 사용하고 관계형 데이터베이스는 테이블을 사용하기 때문에 상호간 필드가 불일치가 존재한다. MyBatis와 같은 ORM을 통해 객체와 관계형데이터베이스.. 더보기
[Spring] @Autowired 와 DI 개념 정리 인트로 안녕하세요 :) 오늘은 Spring 프레임워크의 @Autowird 어노테이션, 이를 설명하기 위한 DI개념에 대해 정리하겠습니다. 목차 1) DI(Dependency Injection) 개념 2) @Autowired 개념 3) @Autowired 와 @Resource 4) @Autowired 활용 방법 DI(Dependency Injection) DI(Dependency Injection)란 @Autowired 개념을 알기 위해 먼저 DI 개념을 알아야 합니다. DI(의존성 종속, Dependency Injection)란, 클래스간의 의존관계를 스프링 컨테이너가 자동으로 연결해주는 것을 말합니다. * Dependency 란, 객체가 다른 객체와 상호작용하는 것을 말합니다. 클래스 A가 클래스 B,.. 더보기
[Spring][JAVA] Spring 개념 정리 (AOP,POJO,JDBC 등) 목차 1. 스프링이란 2. 스프링 특징 3. JDBC란? 4. JSP와 Sevlet 5. 웹 서버 동작 도구 6. Restful API 7. XML와 JSON 8. AOP 9. POJO 10. DTO / DAO / VO 1. 스프링(Spring)이란? JAVA언어를 기반으로 하는 JAVA 웹 프레임워크다. OOP기반 타 프레임워크와 달리 AOP 기반으로 코드 중복을 줄이고 비즈니스 로직을 더욱 간단하게 만들었다. 2. 스프링(Spring) 특징 4가지 POJO(Plain Old Java Object) Spring은 Getter, Setter 방식의 순수한 자바 오브젝트 기반 프레임워크다. IoC (제어반전) 컨트롤의 제어권이 프레임워크에 있다. 프레임워크가 필요에 의해 사용자 함수를 호출한다. DI (의.. 더보기
[Spring] 네이버 API 데이터 연동 방법 인트로 최근, Spring 공부를 시작하며 네이버 영화 API를 받아 날씨에 따른 영화 추천 서비스를 웹으로 만들어보려 합니다. 본 글은 영화 API 데이터를 연동하여 처리하는 방법에 대해서만 나와있습니다. 아래 네이버 Develops 사이트에 API에 대한 사용 방법이 자세히 나와있어 참고했습니다. developers.naver.com/docs/search/blog/ 검색 API 블로그 검색 개발가이드 NAVER Developers - 검색 API 블로그 검색 개발가이드 developers.naver.com 네이버 API 사용 방법 1. JSON 파싱 환경 세팅 [의존성 주입] JSON을 파싱하기 위해 pom.xml에 json 파싱 dependency를 추가합니다. com.googlecode.json-.. 더보기
[Spring][jsoup] 웹 크롤링으로 특정 사이트 데이터 추출 인트로 안녕하세요. 오늘은 Spring 환경에서 특정 사이트(네이버 날씨) 데이터를 크롤링으로 가져와보도록 하겠습니다. Spring 환경에서 특정 사이트의 데이터를 크롤링해오려면 Jsoup 라이브러리가 필요합니다. 목차 1. Jsoup 구성 요소 2. Spring에 Jsoup 의존성 주입(DI) 3. 특정 사이트의 CSS 분석 4. 날씨 정보 크롤링 5. 코드 상세 설명 Jsoup 개념 및 구성 요소 Jsoup이란? HTML을 파싱하는 Java 라이브러리 입니다. DOM, CSS 및 Jquery와 같은 방법을 사용하여 데이터를 추출하고 조작하는 API를 제공합니다. Document : jsoup으로 크롤링해온 결과 HTML 문서 Element : Document 의 HTML 요소 Elements : El.. 더보기
[Spring] 스프링 한글 깨짐 문제 인코딩 해결 인트로 오랜만에 다시 스프링 개발을 시작했다. 네이버 API를 통해 서적 데이터를 가져오려다가 한글 깨짐이 일어나서 해결 방법을 공유한다. 블로그에 해결 방법을 기록하는 것의 장점은 문제를 다시 만났을 때 내 글을 보면서 빠르게 해결할 수 있다는 것같다. 해결 방법 1. Windows > Preferences 클릭 2. Web > CSS Files 클릭 Windows > Preferences 에서 Web > CSS Files 으로 들어갑니다. CSS Files에서 Encoding을 UTF-8로 변경해줍니다. 3. General > Workspace > Text file encoding 4. web.xml에 인코딩 필터 추가 src>main>webapp>WEB-INF>web.xml에 아래 내용을 추가합니다.. 더보기
[Spring] 메이븐(Maven)과 pom.xml 📌pom.xml 정의 pom.xml은 메이븐(Maven)의 빌드 정보를 담고 있는 파일이다. 📌여기서 메이븐(Maven)이란? 자바 프로젝트 관리 툴으로, 미리 작성된 xml 파일을 사용하여 필요한 라이브러리를 다운로드하거나, 생성, 프로젝트 빌드 하는 등의 작업을 자동화한다. 메이븐의 기능에는 대략 1) 라이브러리 관리 2) 빌드 기능이 있다.또한, pom.xml은 다른 프로젝트에 복사/붙여넣기가 가능하기 때문에 범용성이 좋다. STS(Spring Tools Suite)는 이러한 메이븐을 내장하고 있다. 메이븐은 이 pom.xml에 쓰여진 내용을 바탕으로 필요한 라이브러리를 다운로드하거나 내장해서 프로그램을 빌드하고 실행한다. 메이븐을 사용한 프로젝트에서는 pom.xml을 얼마나 제대로 설정하느냐가 중.. 더보기