Web
-
스프링 MVC (1) 웹 애플리케이션 이해Web/Spring 2023. 9. 4. 23:14
1. 웹 서버, 웹 애플리케이션 서버 1.1 웹 - HTTP 기반 - HTTP 메시지를 통해 많은 것을 전송 (HTML,음성,영상,파일,JSON 등등) - 거의 모든 형태의 데이터를 전송할 수 있음 - 서버 간 데이터를 주고 받을 때에도 HTTP를 사용한다. 1.2 웹 서버 VS 웹 애플리케이션 서버 웹 서버: - HTTP 기반으로 동작, 정적 리소스 제공, 기타 부가기능 - 정적 리소스란 HTML,CSS,JS,이미지 영상 등 - 대표적인 웹 서버는 APACHE이다. 웹 애플리케이션 서버: - HTTP 기반 동작, 웹서버 기능 포함 - 프로그램 코드를 실행해서 애플리케이션 로직 수행 (동적 HTML, HTTP API(JSON), 서블릿,JSP, 스프링 MVC) - 톰캣이 대표적인 웹 애플리케이션 서버 -..
-
스프링 핵심 원리 (5) - 빈 생명주기Web/Spring 2023. 8. 22. 12:30
1. 빈 생명주기 콜백 시작 - DB 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 지점에 필요한 연결을 미리 해두고, 종료 시점에 연결을 모두 종료하는 작업 진행시, 객체 초기화 - 종료 작업이 따로 필요하다. public class NetworkClient{ private String url; public NetworkClient(){ connect(); call("연결 메시지"); } public void serUrl(Strin url){ this.url =url; } public void disconnect(){ //.. } //.. } @Configuration static class CycleConfig{ @Bean public NetworkClient networkClient(){ Ne..
-
스프링 핵심 원리 (4) - 컴포넌트 스캔Web/Spring 2023. 8. 18. 03:56
1. 컴포넌트 스캔과 의존관계 자동 주입 - 스프링 빈을 등록할 때 자바코드나 Xml을 통해 설정 정보를 직접 등록했음 - 설정 정보 없이 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능 있다. - 의존관계 자동 주입하는 @Autowired 기능도 제공한다. @Configuration @ComponentScan public class AutoAppConfig{ } > 컴포넌트 스캔을 사용하려면, 설정 정보에 @ComponentScan을 붙여주면 된다. > @Component 어노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록한다. @Configuration도 스캔 대상이다. @Component public class MemoryMemberRepository implements MemberRep..
-
스프링 핵심 원리 (3) - 싱글톤 컨테이너Web/Spring 2023. 8. 17. 15:22
1. 스프링 컨테이너의 이점 (싱글톤) 1.1 앱 어플리케이션과 싱글톤 - 스프링은 기업용 온라인 서비스 기술을 지원하기 위해 탄생 - 스프링 어플리케이션은 대부분 웹 어플리케이션임 - 웹 어플리케이션은 보통 여러 고객이 동시 요청한다. AppConfig appConfig = new AppConfig() MemberService memberService1 = appConfig.memberService(); MemberService memberService2 = appConfig.memberService(); - 설정 클래스인 순수 DI 컨테이너 AppConfig를 사용해서 memberService를 생성해보자 - memberService()메서드는 내부적으로 생성자를 사용하여 구현체를 생성하므로, 요청시..
-
스프링 핵심 원리 (2) - 스프링 컨테이너와 스프링 빈Web/Spring 2023. 8. 17. 12:14
1. 스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); - 위와 같이 스프링 컨테이너 생성, ApplicatoinContext는 인터페이스이다. (구현객체 어노테이션~,xml~등) - 스프링 컨테이너는 XML기반 혹은 애노테이션 기반으로 만들 수 있다. 1.1 스프링 컨테이너 생성 과정 - ApplicationContext 구현객체를 생성하면, 스프링 컨테이너에 빈 저장소가 생성되고, 파라미터로 넘어온 구성 정보를 통해 스프링 빈 저장소가 채워진다. - 빈 이름은 메서드명, 빈 객체는 리턴 값으로 채워진다. - 빈 이름은 직접 부여할 수 있다.( @Bean(na..
-
스프링 핵심 원리 (1) - 예제 순수 자바 to 스프링 컨테이너Web/Spring 2023. 8. 16. 18:49
- 객체 지향 프로그래밍의 원리에 맞게 회원 및 주문 서비스를 만들어보자 - 객체 지향 설계에서 협력 - 역할 - 책임의 관계는 매우 중요하다. 역할: 객체가 수행할 책임들을 의미하고, 다형적인 특징을 보여준다. 책임: 객체가 수행해야할 행위 공용인터페이스 - 객체지향- 다형적 특징은 역할과 구현을 분리함으로써 달성할 수 있다. 캡슐화: - 데이터 숨김, 내부 구현 숨김,메시지를 통한 데이터 접근 -> 객체 자율성 부여 - 오류의 범위 캡슐 내부화 -> 유지보수에 유리 타입: 객체를 나누는 기준 -> 할 수 있는 책임(행위)에 따라 객체 분리(classify) 클래스: 객체를 생성할 수 있도록 언어적 차원에서 지원된 정적 객체 생성 방법 - 객체지향적 설계에서 가장 중요한 것은 협력관계를 통해 적절히 책..
-
나프 - 게시판 만들기 (3)Web/Spring 2023. 8. 3. 12:32
1. 등록 및 조회 구현 List.jsp 타이플에 a태그 걸어서 상세보기 페이지로 넘어가도록 함 ${vo.title} @RequestMapping("/get.do") public String get(@RequestParam("bno") int bno, Model model) { BoardVO board=service.get(bno); model.addAttribute("board", board); return "get";//get.jsp } - 처리 컨트롤러, 넘어온 번호를 통해 DB에서 해당 번호에 게시글 찾아서 BoardVO에 담아서 리턴 - model에 이를 담은 다음 get.jsp로 forward Board Read Board Read Page Panel Content BNO Title Text ..
-
나프 - 게시판 만들기(2)Web/Spring 2023. 8. 2. 22:07
1. 게시판 서비스 계층 구현하기 > Service 인터페이스 생성 (책임 정의) public interface BoardService { public List getList();//게시물 가져오기 public void register(BoardVO board); // 게시물 등록 public BoardVO get(int bno); //게시물 상세보기 public int remove (int bno); // 게시물 삭제 public int modify (BoardVO board); } @Service public class BoardServiceimpl implements BoardService{ @Autowired private BoardMapper mapper; - 서비스 구현체는 m..