본문 바로가기
반응형

분류 전체보기108

객체 지향 설계와 스프링 다형성의 한계 다형성만으로는 OCP와 DIP를 지킬 수 없다. 다형성을 만족하면서 OCP와 DIP를 동시에 만족하기 위해서는 스프링이 필요하다. 이때 스프링이 제공하는 기술은 다음과 같다. DI(Dependency Injection) : 의존관계, 의존성 주입 DI 컨테이너 제공 위의 기술로 클라이언트 코드의 변경 없이 기능을 확장할 수 있다. 자바 프로젝트 생성 자바만을 사용해 간단한 프로젝트를 만들어 본다. 이후 변경에 유연하게 대처가 가능한지 확인해보고, 스프링을 도입해본다. 비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다 회원은 '일반'과 'VIP' 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. 주문과 할인 정책 회원은 상품을 주.. 2022. 2. 1.
좋은 객체 지향 설계의 5가지 원칙(SOLID) 좋은 객체 지향 설계의 5가지 원칙(SOLID) SRP : 단일 책임 원칙(Single Responsibility Principle) OCP : 개방-폐쇄 원칙(Open-Closed Principle) LSP : 리스코프 치환 원칙(Liskov Substitution Principle) ISP : 인터페이스 분리 법칙(Interface Segregation Principle) DIP : 의존관계 역전 원칙(Dependency Inversion Principle) 단일 책임 원칙(SRP) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이란? 책임이 클 수 있고 작을 수도 있다. 문맥과 상황에 따라 책임이 다름 중요한 기준은 '변경' 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 개.. 2022. 2. 1.
좋은 객체 지향 애플리케이션과 다형성 좋은 객체 지향 애플리케이션이란? 객체 지향 특징 추상화 캡슐화 상속 다형성 유연하고 변경이 용이한 객체 지향 프로그램? 부품을 갈아 끼우듯 레고 블럭을 조립하듯 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있다는 뜻 다형성이란? 프로그램을 역할과 구현으로 구분 '운전자(역할) / 자동차(역할)'로 이해해보기 운전자 / 자동차 운전자는 자동차의 기본적인 기능을 숙지하고 운전을 하는 역할 자동차는 기본적으로 주행에 필요한 기능을 가지고 있음 자동차의 종류가 무수히 다양 BUT 자동차의 종류가 변해도 운전자는 동일하게 운전 가능 K3, 아반떼, 그렌저와 같은 자동차의 종류는 자동차를 '구현'한 구현체 프로그래밍 관점에서 다시 정리해보면, "운전자는 '자동차'의 인터페이스에 의존하고 있고, 인터페이스의 구현.. 2022. 2. 1.
[JSP 게시판] Model 2 JSP/Servlet 게시판 만들기(10) - 최종 게시판 만들기 글 목록 JSP/Servlet Model2 게시판 만들기 1 JSP/Servlet Model2 게시판 만들기 2 JSP/Servlet Model2 게시판 만들기 3 JSP/Servlet Model2 게시판 만들기 4 JSP/Servlet Model2 게시판 만들기 5 JSP/Servlet Model2 게시판 만들기 6 JSP/Servlet Model2 게시판 만들기 7 JSP/Servlet Model2 게시판 만들기 8 JSP/Servlet Model2 게시판 만들기 9 프로젝트 깃허브 링크 GitHub - Determination-github/JSP_BOARD Contribute to Determination-github/JSP_BOARD development by creating an .. 2022. 1. 19.
[JSP 게시판] Model 2 JSP/Servlet 게시판 만들기(9) - 게시글 상세보기/파일 다운로드/게시글 수정/게시글 삭제 BoardDetailAction - BoardListForm.jsp입니다. - 게시글 목록 구현하는 부분에 게시글 제목 부분에 태그를 삽입하여, 클릭 시 'BoardDetailAction.bo?num=${board.boardNum}&page=${page}'로 이동할 수 있게 했습니다. - 여기서 'num'과 'page'의 value값인 '${board.boardNum}'과 '${page}'는 'BoardDetailAction에서 파라미터 값으로 전달됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 package jsp.board.action; .. 2022. 1. 18.
[JSP 게시판] Model 2 JSP/Servlet 게시판 만들기(8) - 파일 첨부/글쓰기 구현 BoardWriteForm - BoardListForm에서 로그인이 되어 있다면 '글쓰기' 버튼 클릭 시 'BoardWriteForm.bo'로 이동합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 글 작성 페이지 .container{ margin-top: 100px; } .input-group{ margin-bottom: 5px; } #btn{ margin-t.. 2022. 1. 17.
반응형