본문 바로가기

전체 글

(78)
스프링&웹 | 웹애플리케이션의 문제점 & 스프링의 해결 웹 애플리케이션이 안고 있는 문제점 => 스프링을 이용하지 않을때의 문제점 => 스프링 이용시 해결 가능한 것들! ● 오브젝트의 생명주기 문제 웹애플리케이션의 프레젠테이션 층에는 컨트롤러가 Servlet이다. (MVC2 모델 채용) (recall: 웹애플리케이션의 프레젠테이션 부분에서 UI, 컨트롤러를 담당) Servlet 특징 : View에 액세스하는 유저 증가시 인스턴스화 하는 것이 많아져 가비지컬렉션 성능저하와 메모리 압박을 받을 수 있어서 멀티스레드로 동작한다. 그러나 멀티스레드로 동작하더라도 언제든 그러한 문제점이 일어날 수 있다. 그래서 서비스 로직의 오브젝트를 싱글턴으로 구현해서 그러한 문제점을 방지할 수도 있지만, 이 또한 새로운 문제가 많다(65p 참고) 스프링은 이렇게 난감한 오브젝트의..
스프링&웹 | 기초 지식 2 - 레이어별 책임 [ intro ] 지난 시간 : 웹 애플리케이션 아키텍처를 간단히 공부했다. 그 중 웹 애플리케이션을 논리적으로 분류하는 레이어 개념을 새로 알았다. 이번에는 레이어별로 어떤 책임을 가져야 하는지 공부한다. 레이어를 나누는 방법은 경우마다 다르지만 크게 이렇게 분류하기로 했다. - 프레젠테이션 층 - 비즈니스로직 층 - 데이터액세스 층 대략적으로 각 레이어가 가져야 하는 역할, 책임, 설계지침을 알아보자. (표/도표는 스프링4 입문 책에 있는 내용임) 1. 프레젠테이션 층 ▶ 주 역할 : UI와 Contoller 제공 * UI 요즘에는 사용자의 요청이 많아지고 다양하게 발전하기 때문에 고정된 지침은 없다. 사용할 기술을 정했으면 그에 맞는 설계를 하면 된다. 참고) UI 구현 방법 예시 : 리액트, 앵귤..
스프링&웹 | 기초 지식 2 - 웹 애플리케이션 아키텍처 애플리케이션 아키텍처 Def : 애플리케이션 전체의 구조.. 공통된 매커니즘.. ex) 사용자 인터페이스 구조, DB접근방식, 시스템 기반 부분 cf) 스프링이 왜 웹 애플리케이션 개발에 필요한지 이해하기 위한 필수 기초지식 아키텍처 설계에는 두가지 목표설정이 반드시 필요 ⓐ 사용자의 요구를 만족시키자는 목표 - use case를 잘 규정하기 ⓑ 개발자나 운영자를 위한 목표 데이터 액세스 층 & 비즈니스 로직 층의 의존관계를 역전하면 => 비즈니스 로직 층이 데이터 액세스 층의 인터페이스를 소유하게 된다. ※ 중요한 쪽이 인터페이스를 소유한다는 원칙도 존재 (추후 부품화에서 배우겠다) 원칙 안정 의존 원칙 의존의 역전 상세 설계&구현은 스프링에 의존하는 부분이 많다 (나중에 학습) if 프레젠테이션 층 ..
스프링&웹 | 기초 지식 1 - 스프링 등장 배경 & 웹 간단 구조 참고) 스프링 ∨ 특별히 웹 애플리케이션에 특화된 프레임워크는 XXXX ∨ 규모가 큰 애플리케이션을 자바로 만들 때 필요한 프레임워크 O ∨ 하지만 학습은 웹 애플리케이션 기준으로 진행 스프링 등장 이해하기 ∨ 초반 웹 기술 : HTML(정적콘텐츠)를 표시하는 기술 ∨ CGI 기술 등장 : 동적콘텐츠 반환이 가능해짐 - 참고: CGI란 HTTP의 요청으로 실행되는 프로그램을 말한다(Common Gateway Interface) 웹브라우저의 요청을 받으면 CGI가 해당 프로그램을 실행해서 처리결과를 동적으로 반환한다. CGI의 문제점 : 처리 요청시마다 프로그램이 실행됨 & 세션 관리가 없음 => 처리 요청 증가시 : 성능저하와 트랜잭션 관리 어려움 ∨ JSP와 Servlet 기술 등장 : 실행기반 : 웹..
스프링&웹 | 시작하기 - 스프링 프레임워크 사용이유 (간단히) 예전에는 XML, JSP, Servlet, EJB(Enterprise JavaBeans)를 기반으로 웹 개발을 했다. 그러나 웹 애플리케이션 개발하는데 있어서 위의 것들을 포함하는 Java EE의 사용이 점점 복잡해지고 이해하기 어려워졌다. 반면 스프링 프레임워크의 설계 원리는 편리해서 스프링이 핫해졌다. - 이 책에서 배울 수 있는 것 웹 애플리케이션의 올바른 설계 DI, AOP의 개념 & 설계에 반영하기 RDB에 액세스하는 방법 트랜잭션 관리 방법 스프링 MVC를 어떻게 사용하면 좋을지 업무를 대하는 마음가짐(에 관련한 내용도 녹였다고 한다) 스프링 사용법을 배운다기보다는 설계, 아키텍처 측면을 배우는 것임 ∨ 단, 스프링 부트나 Docker 관련 내용 기대할..
목표 - Spring 학습을 기반으로 웹 어플리케이션 동작원리를 이해하고 학습기록 남겨두기 - 간단한 웹 프로젝트 설계, 구현 능력 가지기 - 팀원들과 웹 프로그램 짜보기
다른 블로그