일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 패캠챌린지
- 자바기초
- 리눅스
- String
- ncs
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- java
- DB
- 국비
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 패스트캠퍼스후기
- 재택근무
- DesignPattern
- 자바예제
- linux
- 디자인패턴
- Spring
- 자바
- 자바연습문제
- 스프링
- 패스트캠퍼스
- javabasic
- 직장인자기계발
- 데이터베이스
- 직장인인강
- 웹
- 자바기본
- java기초
- 디자인
- js
- Today
- Total
목록Back-End (103)
FIF's 코딩팩토리
JSTL 반복문 반복문은 동일한 작업을 특정 횟수 만큼 반복할 때 사용한다. JSTL에서는 제일 흔하게 사용하는 에 대해서 알아보자. 지시문 선언 반복문을 사용하려면 JSP 파일 상단에 JSTL core 선언이 필요하다. 위의 코드를 복사하여 아래 그림과 같이 JSP파일 상단에 선언하면 된다. 목록을 이용한 반복문 는 목록을 입력 받아서 목록의 갯수만큼 반복하는 반복문이다. 속성 설명 항목 설명 필수 여부 기본값 var 사용할 변수명 필수 없음 items Collection 객체(List, Map) 필수 begin 반복 시작 index. 정의되지 않을경우 o end 반복 종료 마지막 index step 반복할 때마다 건너뛸 index 개수 varStatus 반복 상태를 알 수 있는 변수 아래 그림은 를 ..
CheckStyle, PMD, FindBugs 공통 목적 : 코딩 스타일 통일, 정적 분석으로 빠른 문제점 인지 CheckStyle : 코딩 스타일 규칙을 정의하여 체크해줌. 프로젝트 완료 후 유지보수시 많은 문제중 하나가 프로그래머들이 여려명이다 보니 프로그래머의 취향에 따라 변수명, 메소드명, 작성법등이 다른 관계로 많은 문제가 발생할 수 있는데 이러한 문제를 해결하기 위해 만들어짐 PMD(Programing Mistake Detector) : 응용 프로그램에서 발견된 문제를 보고하는 오픈 소스 정적 Java 소스 코드 분석기. 문법적으로 오류 가능성이 높은 항목들을 체크해서 알려줌 FindBugs : 정적 분석 제공 툴. 기본적으로 발생할 수 있는 결함을 확인하고 Report해줌. PMD 사용법 코..
클래스 new는 클래스로 부터 객체 생성하는 연산자. new 연산자가 생성한 객체는 heap영역에 저장되는 동시에 이 객체의 주소가 리턴된다. new 연산자로 객체 생성 -> 객체의 주소를 변수에 저장 -> 변수가 객체를 참조 클래스의 구성멤버 클래스에는 객체가 가져야 할 구성 멤버가 선언된다. 필드:객체의 고유 데이터, 상태 정보, 부품 객체를 저장하는 곳 생성자:클래스로부터 객체를 생성할 때 호출되어 객체의 초기화 담당 new연산자의 생성자 실행 -> heap영역에 객체 생성 -> 객체의 주소 리턴 -> 주소가 클래스 타입 변수에 저장 됨 생성자를 명시적으로 선언하는 이유는 객체를 다양하게 초기화 하기 위해서. 메소드:객체의 동작, 객체 간의 데이터 전달 수단 필드와 변수는 닮앗지만, 필드를 변수라 ..
String과 StringBuffer, StringBuilder의 차이점은 String은 immutable(불변)하고 StringBuffer, StringBuilder는 mutate(가변) 한다는 점이다. 쉽게 말해 String은 new 연산을 통해 생성되면 그 인스턴스의 메모리 공간은 절대 변하지 않는다. 그래서 +연산이나 concat을 이용해서 문자열에 변화를 줘도 메모리 공간이 변하는 것이 아니라 새로운 String 객체를 new로 만들어서 새로운 메모리 공간을 할당하는 것이다. 이렇게 새로운 문자열이 만들어지면 기존의 문자열은 가비지 콜렉터에 의해 제거되야 하는 단점(언제 제거될지 모름)이있다. 또한 이러한 문자열 연산이 많아질 때, 계속해서 객체를 만드는 오버헤드가 발생하므로 성능이 떨어질 수 ..
브리지(Bridge) 패턴 구현 뿐만 아니라 추상화된 부분까지 변경시켜야 하는 경우에 사용하는 패턴이다. 추상화된 부분과 추상 클래스/인터페이스를 구현한 클래스를 서로 다른 클래스 계층구조에 집어넣음으로써 그 둘을 모두 변경시킬 수 있다. 브리지의 장점 1. 구현을 인터페이스에 완전히 결합시키지 않았기 때문에 구현과 추상화된 부분을 분리시킬 수 있다. 2. 추상화된 부분과 실제 구현 부분을 독립적으로 확장할 수 있습니다. 3. 추상화된 부분을 구현한 구상 클래스를 바꿔도 클라이언트 쪽에는 영향을 끼치지 않는다. 브리지의 활용법 및 단점 1. 여러 플랫폼에서 사용해야 할 그래픽스 및 윈도우 처리 시스템에서 유용하게 쓰인다. 2. 인터페이스와 실제 구현부를 서로 다른 방식으로 변경해야 하는 경우에 유용하게 ..
MVC 패턴 정의 모델-뷰-컨트롤러(Model-View-Controller)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 어플리케이션을 만들 수 있다. View - 모델을 표현하는 방법을 제공하는 사용자 인터페이스. 일반적으로 화면에 표시하기 위해 필요한 상태 및 데이터를 모델에서 직접 가져온다. Model - 모든 데이터, 상태 및 어플리케이션 로직이 들어있다. 뷰와 컨트롤러에서 모델의 상태를 조작하거나 가져오기 위한 인터페이스를 제공하고 모델에서 자신의 상태 변화에 대해서 옵저버들에게 알려주긴 하지만 기본적..
컴파운드 패턴(Compound Pattern) 정의 두 개 이상의 패턴을 결합하여 일반적으로 자주 등장하는 문제들에 대한 해법을 제공하는 패턴이다. 컴파운드 패턴은 딱히 정해진 의미, 단점, 장점이 뚜렷하지 않다. 패턴을 잘 활용하기 위해 서로 다른 패턴을 섞어쓰는 디자인 방법이기 때문이다. 다만, 주의할점은 패턴 몇 개를 결합해서 쓴다고 무조건 컴파운드 패턴이 되는 것은 아니다. 컴파운드 패턴이라 불릴 수 있으려면 여러 가지 문제를 해결하기 위한 용도로 쓰일 수 있는 일반적인 해결책 이어야 한다. 웹에서 벌어지는 다양한 요청과 이에 대응하는 로직을 처리하고 결과를 브라우저로 보여주기 위한 MVC 패턴이 대표적이다. 가장 먼저 책에서 등장장한 오리 예제를 살펴보자. 오리들은 꽥꽥거리는 행동이 들어있다. ..
프록시(Proxy Pattern) 패턴 정의 어떤 객체에 대한 접근을 제어하기 위한 용도로 대리인이나 대변인에 해당하는 객체를 제공하는 패턴이다. 프록시는 보통 다른 객체에 대한 대변자라 봐도 무방하다. 프록시는 자신이 대변하는 객체와 그 객체에 접근하고자 하는 클라이언트 사이에서 여러가지 방식으로 작업을 처리한다. 보안을 위해 인터넷을 통해 들어오는 메소드 호출을 쫓아내거나 게으른 객체들을 대신해 끈기 있게 기다리는 일을 맡기도 한다. 프록시의 종류 1. 원격 프록시 - 원격 프록시는 다른 JVM에 들어 있는 객체의 대변인에 해당하는 로컬 객체이다. 프록시의 메소드를 호출하면 그 호출이 네트워크를 통해 전달되어 결국 원격 객체의 메소드가 호출되고 그 결과는 다시 네트워크를 통해 프록시를 거쳐 클라이언트..