분류 전체보기

    [Design Pattern] 퍼사드 패턴 고찰

    퍼사드 패턴 1. 정의 퍼사드 패턴을 알아보기 전에 퍼사드의 의미를 짚어봅시다. 퍼사드 : 외관; 건물의 정면; 표면 그럼 퍼사드 패턴은 무엇일까요? 퍼사드 패턴 : 여러 서브 시스템을 간략하게 사용할 수 있게 해주는 패턴 간단히 한마디로 정리하자면, 인터페이스를 단순화하기 위해서 인터페이스를 변경하는 것입니다. 속은 보이지 않고 겉면만 볼 수 있죠. 작업 수행의 복잡성은 숨기고 사용자들에게는 간단한 인터페이스로 제공하는 패턴입니다. 그래서 퍼사드 패턴은 구름과 같다(Facade is like Cloud) 라고 표현하기도 합니다. 2. 예제 퍼사드 패턴을 아주 잘 설명해주는 사례가 있습니다. 바로 컴퓨터를 부팅하는 순간인데요. 사용자(User)는 컴퓨터가 부팅되기 위해 CPU와 Memory, HardDr..

    [JSP] pdf

    16. pdf 16.1 itextpdf 라이브러리 API 한글 처리를 위해서는 폰트 정보가 필요함 16.2 라이브러리 다운로드 WebContent/WEB-INF-lib 디렉토리에 복사 itextpdf-5.5.13.jar itext-asian-5.2.0.jar itext-pdfa-5.5.13.jar itext-xtra-5.5.13.jar itextpdf-5.5.13.jar? xmlworker-5.5.13.jar jar 파일은 https://mvnrepository.com 에서 다운로드 16.3 실습 예제 16.3.1 /include/admin_menu.jsp 16.3.3 pdf.PdfController.java

    [Design Pattern] 어댑터 패턴 고찰

    어댑터 패턴(Adapter Pattern) 1. 정의 - 연관성 없는 두 객체 묶어 사용하기 - 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환합니다. 이 패턴을 사용하면 다른 인터페이스와의 호환성 문제를 해결할 수 있습니다. 2. 의도 - 이미 제공되는 기능이 형태가 달라, 필요로 하는 형태로 변경하고자 할 때 - 활용 - 기존의 클래스를 사용해야 하나 인터페이스가 수정되어야 하는 경우 - 기존 라이브러리 모양을 달리하여 재사용하고자 할 경우 - 예제 - LED 프레임워크가 제공되어졌다. LED를 끄고 RGB 색상으로 켜고 하는 메서드들을 제공받았다. - 정리 - Object Adapter 패턴을 일반적으로 많이 사용합니다. (Adaptee를 멤버변수로 활용하는 방식) -..

    [JSP] 상품관리

    15. 상품관리 15.1 상품관리 실습 예제 일반 사용자: 상품목록 보기, 장바구니 담기, 장바구니 보기 관리자: 상품등록, 상품수정/삭제 15.1.1 상품 테이블 15.1.2 상품이미지를 다운로드하여 WebContent/images 디렉토리에 복사 `google drive 15.1 실습소스 15.1.1 guestbook.sql 15.1.2 /guestbook/index.jsp 15.1.3 /shop/index.jsp 15.1.4 shop.dto.ProductDTO.java 15.1.5 shop.dao.ProductDAO.java 15.1.6 shop/mapper/product.xml 15.1.7 shop.ProductController.java 15.1.8 /shop/product_list.jsp 15..

    [Python] 모듈

    8. 모듈 8.1 모듈의 정의 8.1.1 함수 파일 내에서 일정한 작업을 수행하는 코드 블록 8.1.2 모듈 함수나 변수 또는 클래스들을 모아 놓은 파일 비슷하거나 관련된 일을 하는 함수나 상수값들을 모아서 하나의 파일에 저장하고 추후에 재사용하기 위해 사용 모듈 이름은 py 확장자를 제외한 파일이름 8.1.3 패키지 여러 모듈들을 모아놓은 디렉토리 모듈 = 파일, 패키지 = 디렉토리 8.2 모듈을 사용하는 목적 8.2.1 코드의 재사용 모듈이 없다면 자주 사용되는 함수를 매번 작성해야 하므로 개발 및 유지보수가 어렵게 됨 8.2.2 프로그램 개발시에 전체 코드들을 여러 모듈 단위로 분리하여 설계함으로써 작업의 효율을 높일 수 있음 8.2.3 별도의 이름 공간(스코프)를 제공함으로써 동일한 이름의 여러 ..

    [Design Pattern] Observer Pattern

    2. Observer Pattern 옵저버 패턴 또는 번역해서 관찰자 패턴이라고 불리는 이 패턴하면 스타크래프트에 있는 프로토스 유닛이 떠오릅니다. 이 유닛은 상대의 상태를 확인하여 해당 소식을 알려줍니다. 예를 들어, 상대방이 공격 시동을 걸고 있다면 그에 대한 소식을 듣고 대비를 할 수 있겠죠? 이와 마찬가지로 옵저버 패턴이란 어떤 객체의 상태가 바뀌거나 중요한 메서드가 호출되었을 때 이와 관련된 객체들에게 소식을 전달할 수 있는 패턴입니다. 2.1 옵저버 패턴의 정의 2.1.1 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락을 하고 연락받은 객체에서는 자동으로 내용이 갱신되도록 하는 방식입니다. 2.1.2 상태가 바뀌는 객체를 주제(Subject)라고 하고, 그 주제의 상태에 의존..

    [Design Pattern] Strategy Pattern

    1. Strategy Pattern 전략(Strategy) 이란? 어떤 특정한 목적을 달성하기 위해 일을 수행하는 방식을 말합니다. 예를 들어, 비즈니스나 로직 혹은 문제를 해결하기 위한 알고리즘이 해당됩니다. 패턴을 배우기 전에 하나의 프로그램을 만들 때, 객체지향의 원리로 프로그래밍을 한다고 하더라도, 그것이 유연하다고 볼 수 없을 수 있습니다. 행위 = 메서드행위가 계속 바뀔 때, 행위가 늘어날 가능성이 있을 때이걸 상속으로 구현하자 하니 아래의 내부 구현 부분도 건드려야 할 부분이 많아서OCP의 원칙이 어긋난다.그래서 상속보다는 구성을 통해서(레퍼런스 변수) 행위를 객체화해서 행위를 사용하는 객체변수니까 값을 바꿀 수 있다. 행위 클래스를 따로 만듦으로써~? ex. 메서드|행위|function의 ..

    [HTML/CSS] CSS3 레이아웃과 애니메이션

    7. CSS3 레이아웃과 애니메이션 가. block과 inline - block : 한 줄에 한개만 배치h, p, ul, li, table, div, form 등의 태그에 적용됨태그 { display:block; }- inline : 한 줄에 차례대로 배치a, img, input, span 등의 태그에 적용됨태그 { display:inline; } 나. 좌표값 지정 태그 { top:100px; left:200px; right:100px; bottom:200px; } - 정적 위치 설정(static) : 페이지의 정상적인 흐름에 따라 배치태그 { position:static; }- 상대 위치 설정(relative) : 정상적인 흐름을 기준으로 상대적인 좌표에 배치태그 { position:relative; ..

    [Python] 클래스(class)

    7. 클래스(class) 7.1 클래스의 개요 7.1.1 모듈(module) vs. 클래스(class) vs. 인스턴스(instance) 모듈 : .py로 끝나는 파일 클래스 : 새로운 자료형을 만드는 방법 인스턴스 : 클래스로부터 만들어낸 객체 7.1.2 클래스의 형식 class 클래스이름: # Properties nation = "한국" name = str() age = int() # Methods def display(self): print('국적: ', self.nation, end=' ') print(', 이름: ', self.nane, end=' ') print(', 나이: ', self.age, end=' ') 7.1.3 클래스 내부의 method 선언 - def 키워드 사용 일반 함수와 다..

    [R] 요인분석, 주성분분석

    10. 요인분석, 주성분분석 10.1 Factor Analysis(요인 분석, 인자 분석) 러개의 변수들 중에서 유사한 항목끼리 묶어서 원래의 변수보다 작은 인자(Factor)로 축소시켜 상호 관계를 분석하는 방법, 변수들 간의 상관관계를 고려하여 서로 유사한 변수들 끼리 묶어주는 방법 수많은 변수들 중에서 잠재된 몇 개의 변수(요인)를 찾아내는 것 ex) 학생들의 시험 성적 데이터가 수학, 과학, 영어, 중국어, 독어, 작곡, 연주의 점수(0점-100점)로 구성되어 있다면 수학, 과학은 상관관계가 있을 것이고 (수리계산능력) 영어, 중국어, 독어는 상관관계가 있을 것이고 (외국어능력) 작곡, 연주는 상관관계가 있을 것이다. (음악적능력, 음악적재능) 원래 7개의 변수(과목)로 구성되어 있는 것을 3개의..

    [PHP] 자료실

    6. 자료실 6.1 파일 업로드 관련 설정 php.ini에서 설정 확인 # gedit /etc/php.ini 옵션 설명 file_uploads 업로드 기능을 사용할지 결정 기본값 On upload_tmp_dir 업로드시 임시 저장될 디렉토리 경로 upload_max_filesize 최대 파일 크기, 기본값 2M → 100M로 수정 post_max_size post 방식으로 전송할 수 있는 최대 용량, 기본값 2M → 110M로 수정 max_file_uploads 최대 업로드 수, 기본값 20개 설정 변경 후 # systemctl restart httpd 첨부 파일이 저장되는 배열의 정보변수 설명 $_FILES['userfile']['name'] 클라이언트 머신에 존재하는 파일의 원래 이름 $_FILES[..

    [JSP] 응용 예제(게시판 & 자료실)

    14. 응용 예제(게시판 & 자료실) 14.1 파일 업로드 14.1.1 cos.jar 다운로드 JSP에는 파일 업로드 기능이 기본적으로 포함되어 있지 않으므로 외부 라이브러리를 사용해야 함 14.1.2 파일 업로드 방법 파일을 테이블의 blob 컬럼에 직접 저장하는 방식 14.1.2.2 파일정보만 테이블에 저장하고 실제 파일은 디렉토리에 저장하는 방식 14.2 파일 업로드 실습 소스 14.2.1 /board/upload.jsp 14.2.2 /board/upload_result.jsp 14.3 게시판 14.3.1 게시판 만들기의 중요성 14.3.1.1 게시판에는 웹프로그래밍이 필요한 중요한 기능들이 많이 포함되어 있음 14.3.1.2 신입 개발자에게 있어서 게시판 만들기는 기본적인 실력이 있는지 판단하는 ..