Spring

    Spring과 Spring Boot 차이 한 줄 요약

    스프링과 스프링 부트. 스프링 부트가 더 편한 건 알겠는데 정확한 차이점을 알고 싶어서 검색해 보면 비슷한 내용의 긴 글들만 마주치게 된다. 그래서 둘의 차이점을 한 줄로 요약하면 뭔데? Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". 스프링 부트로 "그냥 실행"만 하면 독립적이고 상용화 수준인 스프링 애플리케이션을 만들 수 있다. 스프링 공식 사이트의 스프링 부트 페이지 첫 문장이다. 스프링을 처음 시작했을 때 환경 설정에 애를 먹었던 경험이 있을 것이다. 그에 비해 부트는 환경 설정이 비교적 간편하다. 스프링 부트는 바로 "just run"의..

    트랜잭션 이해

    트랜잭션에 대해 이미 알고 있는 것 예외 발생 시 롤백해줌 스프링에서 주로 서비스 계층 클래스에 @Transactional 애노테이션을 붙여서 사용 클래스에 @Transactional 붙이면 메서드마다 적용됨 트랜잭션 스크립트 vs 선언적 트랜잭션 A, B, C라는 메서드가 있을 때 A, B, C를 하나의 트랜잭션에 넣으려면? 트랜잭션 스크립트 Connection connection = dataSource.getConnection(); try { connection.setAutoCommit(false); doSomething(connection, id, ...); connection.commit(); } catch (Exception e) { connection.rollback(); throw new I..

    3. JAVA로 아주 간단한 WAS와 Spring MVC Framework 만들기

    WAS란 Socket과 HTTP 구현 Servlet Container & Spring Container 구현 Servlet 구현 MVC 구현 Servlet Container 구현 Servlet Container란 서블릿 컨테이너는 브라우저와 같은 클라이언트로부터 들어오는 요청을 받아서 서블릿을 동작시켜 주는 일을 맡는다. 서블릿은 웹 애플리케이션이 시작될 때 미리 만들어둔 웹 애플리케이션 컨텍스트에게 빈 오브젝트로 구성된 애플리케이션의 기동 역할을 해줄 빈을 요청해서 받아둔다. 그리고 미리 지정된 메소드를 호출함으로써 스프링 컨테이너가 DI 방식으로 구성해 둔 애플리케이션의 기능이 시작되는 것이다. RequestHandler 앞서 구현한 WebServer에서 RequestHandler 인스턴스를 생성하여..

    2. JAVA로 아주 간단한 WAS와 Spring MVC Framework 만들기

    WAS란 네트워크 연결 (with Socket) 구현 Servlet Container & Spring Container 구현 Servlet 구현 MVC 구현 구현 코드 GitHub - leelee31/was: WAS 구조와 Spring MVC 동작 학습용 프로젝트 WAS 구조와 Spring MVC 동작 학습용 프로젝트. Contribute to leelee31/was development by creating an account on GitHub. github.com 네트워크 연결 (with Socket) 구현 Web Application Server, 서버를 구현한다는 것은 무엇일까? '클라이언트/서버'는 컴퓨터 간의 관계를 역할로 구분하는 개념이다. 서버는 서비스를 제공하는 컴퓨터이고, 클라이언트는 ..

    1. JAVA로 아주 간단한 WAS와 Spring MVC Framework 만들기

    WAS란 네트워크 연결 (with Socket) 구현 Servlet Container & Spring Container 구현 Servlet 구현 MVC 구현 프로젝트 목적 WAS와 Spring MVC Framework는 자바를 배우고 나서부터 사용해 왔지만 대략적인 구조만 알고 있었다. 구조로 인한 에러를 여러 번 겪다 보니 언젠간 직접 구조를 만들면서 학습해 봐야겠다고 생각했다. 하지만 뭐부터 해야 할지 막막함이 커 시작하기까지 오랜 시간이 걸렸다. 이 학습 프로젝트가 누군가의 막막함을 해소하는 데 작게나마 도움이 되었으면 좋겠다. 구현 코드 GitHub - leelee31/was: WAS 구조와 Spring MVC 동작 학습용 프로젝트 WAS 구조와 Spring MVC 동작 학습용 프로젝트. Cont..

    Spring Service단에 Interface가 필요한가?

    개인적으로 신규 프로젝트가 좋은 이유는 코드 구조를 바꿔볼 수 있기 때문이다. 기존 프로젝트의 코드를 리팩토링하기란 촉박한 일정에 맞춰 많은 기능을 구현해야 하는 업무 상황상 현실적으로 쉽지 않다. 이 기회를 노려 구조를 바꿔보던 중 Spring Service단에 Interface가 필요한가? 라는 질문을 받게 되었다. 1. 기존에 접하던 구조 Controller단에서 비즈니스 로직 처리 후 바로 DAO 호출하는 코드가 많음 즉 Controller단과 Service단의 분리가 되어있지 않음 특정 조건에 따라 데이터를 가공하는 로직을 이해하는데 시간이 너무 많이 소모된다 중복 로직이 생길 경우 코드는 미친듯이 늘어난다 이번 프로젝트에 REST API를 적용하게 되었고, 그 정신에 알맞게 Controller..