일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DB
- 자바예제
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 스프링
- String
- 패스트캠퍼스
- ncs
- js
- 자바기초
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 디자인
- java기초
- 패스트캠퍼스후기
- linux
- javabasic
- 데이터베이스
- 자바기본
- 자바연습문제
- 자바
- java
- 패캠챌린지
- 웹
- 리눅스
- Spring
- DesignPattern
- 직장인인강
- 국비
- 직장인자기계발
- 재택근무
- 디자인패턴
- Today
- Total
목록java (81)
FIF's 코딩팩토리
스트래티지 패턴(Strategy Pattern) 1. 스트래티지 패턴이란 A. 행위를 클래스로 캡슐화해 동적으로 행동을 자유롭게 바꿀 수 있게 해주는 패턴 i. 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화되어 있고, 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴이다. B. 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다. C. 전략이란 어떤 목적을 달성하기 위해 일을 수행하는 방식, 비즈니스 규칙, 문제를 해결하는 알고리즘이다. D. 특히 게임 프로그래밍에서 게임 캐릭터가 자신이 처한 상황에 따라 공격이나 행동하는 방식을 바꾸고 싶을 경우 스트래티지 패턴은 매우 유용하다. E. 역할이 수행하는 작업 i. Strategy : 인..
팩토리 패턴(Factory Pattern) 팩토리 메소드 패턴 : 객체를 생성하기 위해 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하도록 만든다. 즉, 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스 만드는 일을 서브클래스에게 맡길 수 있다. 추상 팩토리 패턴 : 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성하는 디자인 패턴 new를 사용한다는 것은 구상 클래스의 인스턴스를 만든다는 의미이다. 인터페이스에 맞춰 코딩을 하면 시스템에서 일어날 수 있는 여러 변화를 이겨낼 수 있다. 왜냐하면 다형성 때문에 어떤 클래스든 간 특정 인터페이스만 구현하면 되기 때문이다. 반대로 구상 클래스를 많이 사용하면 새로운 구상 클래스가 추가될..
1.커맨드 패턴이란 A. 실행될 기능을 캡슐화 함으로써, 주어진 여러 기능을 수행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴 B. 이벤트가 발생했을 때, 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할 때 유용하다. C. ‘행위(Behavioral) 패턴’ 의 하나 D. 실행될 기능을 캡슐화 함으로써, 기능의 실행을 요구하는 호출자(Invoker)클래스와 실제 기능을 실행하는 수신자(Receiver)클래스 사이의 의존성을 제거한다. E. 실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용할 수 있도록 해준다. F. 역할이 수행하는 작업 i. Command 1) 실행될 기능에 대한 인터페이스 2) 실행될 기능을 execute 메소..
CheckStyle, PMD, FindBugs 목적 : 코딩 스타일 통일, 정적 분석으로 빠른 문제점 인지 CheckStyle : 코딩 스타일 규칙을 정의하여 체크해줌. 프로젝트 완료 후 유지보수시 많은 문제중 하나가 프로그래머들이 여려명이다 보니 프로그래머의 취향에 따라 변수명, 메소드명, 작성법등이 다른 관계로 많은 문제가 발생할 수 있는데 이러한 문제를 해결하기 위해 만들어짐 PMD(Programing Mistake Detector) : 응용 프로그램에서 발견된 문제를 보고하는 오픈 소스 정적 Java 소스 코드 분석기. 문법적으로 오류 가능성이 높은 항목들을 체크해서 알려줌 FindBugs : 정적 분석 제공 툴. 기본적으로 발생할 수 있는 결함을 확인하고 Report해줌. PMD 사용법 코드를 ..
Adapter를 우리말로 바꿔보면 변환기? 정도입니다. 무엇을 변환할 것인가? 핸드폰을 예를들어 봅시다. 핸드폰을 콘센트에 직접 접속시켜 충전하지 않고 충전기라는 어댑터를 통해 핸드폰과 콘센트를 연결해 충전합니다. 왜 이런 어댑터를 사용할까요? 바로 기존에 이미 잘 구축되어있는 것을 새로운 어떤 것이 사용할 때, 양쪽간의 호환성을 유지해주기 위함입니다. 자바에서도 직접적으로 메소드를 호출하지 않고 중간에 어댑터를 거쳐 메소드를 호줄하도록 하는 패턴이 바로 어댑터 패턴 입니다. 프로그램을 보면 직접 호출하지 않고 왜 저렇게 거치고 거쳐서 호출하는 걸까라는 생각이 들 수있습니다. 만약 직접 호출이 안되는 경우이거나, 기존에 있는 것을 변환해서 호출해야 하는 경우를 생각하면 기존에 있는 Protocol를 수정..
데모로 쇼핑몰 사이트를 it학원 다닐때 만들어봤는데...계속 올려야지 올려야지 하다가 지금 올립니다. Spring Framework MVC패턴을 사용하여 회원가입 하는 과정을 포스팅 시작하기전에 실행화면을 먼저 보여드리겠습니다. 아래 펼쳐질 코드를 어느정도 이해하시고 구현하셨다면 위와같은 결과물을 원하는 목적에 맞게 얻으실 수 있을겁니다. 로직 pom.xml 환경설정-> dispatcher-servlet.xml 환경설정-> config/memberMapper.xml 환경설정 -> MemberDAO -> MemberDAOImp -> MemberService -> MemberServiceImp -> Controller DAO와 Service가 있는데, DAO는 메소드이고 Service는 프로세스입니다. 메소..
아래에는 FTP, SFTP 따로 동작하는 프로그램인데 클래스를 크게 3개로 나누어서 통합프로그램을 만들었습니다. Virtual Box를 사용하여 CentOS를 임의의 서버로 설정하였습니다. 프로젝트 구조는 위 사진과 같습니다. FTP와 SFTP를 사용하기 위해선 commons.net과 JSch라이브러리가 필요한데 이와 관련된 내용은 아래글에 있고, 여기선 통합프로그램을 어떻게 구현했는지에 대한 코드만 올리겠습니다. ProgramStart.java package program; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ProgramStart { public s..
환경설정은 SFTP와 같습니다.(아래쭉 내리시면 이전글 포스팅에 있습니다.) 하지만 사용하는 라이브러리는 다릅니다. FTP구현을 위해 아파치에 있는 commons.net 라이브러리를 사용했습니다. 저는 서버로 CentOS를 사용했는데, 연결이 갑자기 막힐때가 있습니다. 서버가 방화벽으로 막혀 있어서 그런건데 CentOS기준 명령어 설명입니다. 방화벽해제(재부팅해도 해제 안되도록) systemctl disable firewalld 데몬재시작 service vsftpd restart package program; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS..