목록spring (8)
잡동사니
안녕하세요. yeTi입니다.오늘은 스프링 프레임워크에서 트랜젝션을 관리하는 방법을 간략하게 언급하고 트랜젝션을 사용하지 않는 상황과 읽기 전용 트랜젝션을 사용할 때의 장단점을 말해보고자 합니다.스프링프레임워크는 무엇일까요?스프링 프레임워크는 엔터프라이즈 애플리케이션 개발을 간편하게 하기 위해 만들어진 강력한 프레임워크로 다양한 모듈과 기능을 제공합니다. 다음은 스프링 프레임워크의 주요 특징과 구성 요소입니다.주요 특징경량성: 스프링은 경량 프레임워크로 필요한 기능만 선택하여 사용할 수 있습니다. 만들어진 때에는 경량이었지만 요즘에는 경량이라고 말하기는 부적절한 면이 있습니다.의존성 주입(Dependency Injection): 스프링은 객체 간의 의존성을 설정 파일이나 어노테이션을 통해 관리합니다.AOP..
안녕하세요. yeTi입니다. ChatGPT의 활용법 (feat. 정보수집 방식의 전환) 에서 ChatGPT의 쓰임새를 인식하고 ChatGPT를 활용하여 궁금증을 해소한 예시를 공유하고자 합니다. 더하여 Microsoft에서 개발한 Bing AI와 비교하여 답변의 차이를 확인하고자 합니다. 문답 프로그래밍 언어의 동적 바인딩 개념에 대해 알아? 예, AI 언어 모델로서 프로그래밍 언어의 동적 바인딩 개념에 대해 잘 알고 있습니다. 동적 바인딩은 런타임에 실행할 메서드나 함수의 결정을 프로그램의 실제 런타임까지 연기하는 객체 지향 프로그래밍에서 사용되는 기법입니다. 이는 컴파일 타임에 실행할 메서드나 함수가 결정되는 정적 바인딩과 대조적입니다. 동적 바인딩에서는 실행할 메서드에 대한 결정이 객체를 참조하는 ..
안녕하세요. yeTi입니다. 오늘은 Spring Framework에 대해 알아보겠습니다. Spring Framework Overview에 따르면 스프링은 자바 엔터프라이즈 어플리케이션을 가장 쉽게 만들 수 있도록 해준다고 합니다. 즉, 많은 사용자와 많은 데이터, 많은 비즈니스 로직을 처리하는 기업용 어플리케이션을 개발함에 있어서 보다 쉽게 개발할 수 있도록 제공해다는 것입니다. 이를 위해서 스프링 프레임워크는 Core Technologies, Testing, Data Access, Web frameworks(Web on Servlet, Web on Reactive), Integration, Language Support를 제공합니다. 스프링 프레임워크하면 가장 많이들 언급하는 의존성 주입이나 AOP 등..
안녕하세요. yeTi입니다. 오늘은 Spring Framework에서 Transaction을 관리하는 방법에 대해 알아보겠습니다. Spring Framework Reference와 Spring Javadoc을 참고해서 작성했습니다. 스프링 프레임워크에 대한 전체적인 개념을 알고 싶으시면 Spring Framework 개념 이해하기를 확인해보세요. 개요 스프링 프레임워크는 트랜젝션 관리에 다음과 같은 장점을 가지고 있습니다. Java Transaction API (JTA), JDBC, Hibernate, and the Java Persistence API (JPA)와 같은 다양한 형태의 트랜젝션 API를 지원합니다. 선언적 트랜젝션 관리를 지원합니다. JTA처럼 복잡하지 않은 프로그래밍 방식의 트랜젝션 관..
인프런의 스프링 프레임워크 핵심 기술 - 백기선을 수강하면서 내용을 정리하고 간단한 후기를 남깁니다. 스프링 프레임워크에 대한 전체적인 개념을 알고 싶으시면 Spring Framework 개념 이해하기를 확인해보세요. IoC 컨테이너와 빈 IoC란 Inversion of Control의 약어로 의존 관계 주입(Dependency Injection) 이라고도 하며 어떤 객체를 사용할 때 직접 만들어서 사용하는 것이 아니라 주입받아 사용하는 것을 말한다. 직접 사용의 예 BookRepository repository = new BookRepository(); BookService service = new BookService(repository); IoC의 예 @Autowired BookRepository ..
안녕하세요. yeTi입니다.오늘은 Spring에서 Cassandra를 연동해보려고 합니다. 설치 환경- Spring Boot : 1.5.4.RELEASE- Mybatis : 1.3.2 1. Cassandra의 SDK를 설치합니다. (저는 Gradle 활용)- compile group: 'com.datastax.cassandra', name: 'cassandra-driver-core', version: '3.5.1' compile group: 'com.datastax.cassandra', name: 'cassandra-driver-mapping', version: '3.5.1' compile group: 'com.datastax.cassandra', name: 'cassandra-driver-extras'..
안녕하세요. yeTi입니다.오늘은 Spring에서 AOP를 활용하여 SQL Log를 확인해보려고 합니다. 설치 환경- Spring Boot : 1.5.4.RELEASE- Mybatis : 1.3.2 1. Aspect에 다음과 같이 구현합니다.- @Around("execution(* org.apache.ibatis.session.SqlSession.*(String, ..))")public Object logBefore(ProceedingJoinPoint pjp) throws Throwable {Object[] methodArgs = pjp.getArgs(), sqlArgs = null;String statement = null;// SQL IDString sqlId = methodArgs[0].toStri..
이번 하이마트 G-CRM 서비스(Spring기반)를 개발하면서 가장 아쉬운 부분이 유지보수의 용이성입니다. 그 동안 개발을 하면서 느낀거지만 DB중심의 서비스 구조를 가져다면 개발이 직관적이라 편해서 초기 구축의 생산성이 높아지는 장점이 있는 반면 실제 서비스단의 설계는 고려되지 않아 서비스의 규모가 커지거나 유지보수시 생산성이 떨어지는 단점이 있습니다. 물론 서비스단의 설계를 하면 되지만 프로젝트의 비용과 시간과 스스로의 능력 부족으로 설계하여 수행하기가 버겁다는것을 느낍니다. 이번에 문득 유지보수가 용이한 웹 어플리케이션의 설계는 어떤식으로 하면 좋을지에 대해 생각하면서 공통코드를 관리방법에 대해 정리한 부분을 남깁니다. 유지보수가 용이한 웹 어플이케이션의 가장 중요한 항목은 종속성의 제거라고 ..