일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 맛집
- springboot
- laravel
- ReactJS
- 요리
- Design Patterns
- java
- JVM
- jsp
- IntelliJ
- MySQL
- devops
- it
- Git
- jenkins
- redis
- ubuntu
- db
- tool
- Oracle
- AWS
- elasticsearch
- Spring
- Web Server
- Spring Boot
- javascript
- Gradle
- linux
- Spring Batch
- php
- Today
- Total
목록java (242)
아무거나
[Servlet] 서블릿 학습(3) 1. Servlet Parameter - Form태그의 submit버튼을 클릭하여 데이터를 서버로 전송하면, 해당파일(Servlet)에서는 HttpServletRequest객체를 이용하여 Parameter값을 얻을 수 있다. - Servlet 파일 HttpServletRequest객체를 이용하여, parameter값을 얻음. # getParameter(name) : html의 name값의 해당하는 value값이 온다. # getParameterValues(name) : html의 name값의 해당하는 value값이 온다.(checkbox같은 애들..) # getParameterNames() : form안에 태그들의 이름들이 배열로 뽑아져 나옴. (value값 아님) [..
[Servlet] 서블릿 학습(2) 1. servlet 작동 순서 - 클라이언트에서 servlet요청이 들어 오면 서버에서는 servlet컨테이너를 만들고, 요청이 있을 때마다 스레드가 생성. 웹브라우저 -> 웹서버 -> 웹어플리케이션 서버(was) -> servlet 컨테이너(스레드 생성, servlet객체 생성) ** java컨테이너는 servlet, ejb, jsp 가 있다. 2. servlet 장점 - 다른 cgi언어들은 요청에 따라 계속해서 웹서버에 객체를 생성해준다(즉, 요청이 많을수록 서버에 부하가 크다.) 하지만 servlet는 java기반이므로 요청이 들어오면 jvm에서 스레드가 생성되어 스레드에서 처리를 하므로 속도가 더 빠르고 서버에 부하가 적다. 3. servlet 라이프사이클(생명..
get : url값으로 정보가 전송되어 보안에 약함 post : header를 이용해 정보가 전송되어 보안에 강함 1. 서블릿 - Servlet는 java언어를 사용하여 웹 프로그램을 제작하는 것 입니다. [ex 소스] @WebServlet("/HWorld") // url mapping public class HelloWorld extends HttpServlet { // HttpServlet를 상속 private static final long serialVersionUID = 1L; 상속구조순서 Server(interface) -> GenericServlet(abstract) -> HttpServlet - doGet 메소드를 기준으로 Servlet호출 설명 [ex 소스] protected void d..
컴포지트 패턴(Composite Pattern) 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴 Component: 설계(인터페이스) Leaf: 상속받은 내용물 Composite: Leaf를 담는 Composite 즉, Component가 만들어야할 공통적인 것들을 가지고있다. 컴포지트 패턴은 일반적으로 파일시스템에 자주 사용한다. 컴포지트 패턴 예시 - 1 [요구사항] 파일 시스템을 만들자. Component를 만들자. [Component.java] package com.bkjeon.composite; abstract public class Component { private String name; public Component(String name) { this.name = na..
브릿지 패턴(Bridge Pattern) 구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게 해주는 패턴이다. 즉, 기능 부분과 구현 부분을 분리 먼저 브릿지 패턴을 사용하지 않고 모스부호를 출력하는 기능을 구현해보자. [MorseCode.java] package com.bkjeon.bridge; public class MorseCode { public void dot() { System.out.print("."); } public void dash() { System.out.print("-"); } public void space() { System.out.print(" "); } } [PrintMorseCode.java] package com.bkjeon.bridge; public class..
추상 팩토리 패턴(Abstract Factory Pattern) 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성할 수 있다. 제품군을 만들 때를 예로 들어보자. 추상 팩토리 패턴을 사용하면 클라이언트에서 추상 인터페이스를 통하여 일련의 제품들을 공급받을 수 있다. 실제로 어떤 제품이 생산되는지도 전혀 알 필요가 없다. 따라서 클라이언트와 팩토리에서 생산되는 제품을 분리시킬 수 있다. AbstractFactory: 모든 구상 팩토리에서 구현해야 하는 인터페이스이다. 제품을 생산하기 위한 일련의 메소드들이 정의되어 있다. ConcreteFactory1~2: 구상 팩토리에서는 서로 다른 제품군을 구현한다. 클라이언트에서 제품이 필요하면 이 팩토리 가운데 적당한걸 선..
빌더 패턴(Builder Pattern) 개념을 보기 앞서 빌더 패턴 2개를 소개하였는데 첫번째 빌더 패턴은 책에서 나용 내용이고 실질적으로 두번째 빌더 패턴을 많이 사용하므로 두번째를 숙지하는것이 좋다. 빌더 패턴이란 복잡한 단계를 거쳐야 생성되는 객체의 구현을 서브 클래스에게 넘겨주는 패턴 빌더 패턴 예시 - 1 ( 팩토리를 사용한 빌더 패턴 - 책 기준 ) 먼저 복잡한 단계를 거쳐야 생성되는 객체를 Computer라는 객체로 생성해보자. [Computer.java] package com.bkjeon.builder; public class Computer { private String cpu; private String ram; private String storage; public Computer(..
프로토타입 패턴(Prototype Pattern) 복잡한 인스턴스를 복사할 수 있다. 즉, 생산 비용이 높은 인스턴스를 복사를 통해서 쉽게 생성할 수 있도록 하는 패턴 인스턴스 생산 비용이 높은 경우 종류가 너무 많아서 클래스로 정리되지 않는 경우 클래스로부터 인스턴스 생성이 어려운 경우 프로토 타입 패턴 예시 - 1 [요구사항] 일러스트레이터와 같은 그림 그리기 툴을 개발중이다. 어떤 모양(Shape) 그릴 수 있또록 하고 복사 붙여넣기 기능을 구현하자. 모양에 대한 함수를 만들자. [Shape.java] package com.bkjeon.prototype; public class Shape implements Cloneable { private String id; public void setId(St..
싱글톤 패턴(Singleton Pattern) 하나의 인스턴스만 생성하도록 구현 즉, 인스턴스를 하나만 생성해야할 객체를 위한 패턴 싱글톤 패턴 예시 - 1 [요구사항] 개발중인 시스템에서 스피커에 접근할 수 있는 클래스를 만들자. 만약 스피커에 접근할 수 있는 클래스가 하나 이상 예를 들어 100개라고 생각하면 스피커의 볼륨을 올린다면 100개의 클래스를 모두 찾아다니면서 올려줘야 하므로 개발의 복잡도도 올라가고 리소스도 많이 잡아먹는다 그러므로 싱글톤을 사용해야 한다. 스피커에 대한 싱글톤 패턴을 구현하자. [SystemSpeaker.java] package com.bkjeon.singleton; public class SystemSpeaker { // 외부에 접근 안되고 하나만 하기 위해서 stat..
팩토리 메소드 패턴(Factory Method Pattern) 팩토리 메소드 패턴에서 템플릿 메소드 패턴의 사용됨을 알 수 있다. 팩토리 메소드 패턴에서의 구조와 구현의 분리를 이해하고 구조와 구현의 분리의 장점을 안다. 이번 내용은 먼저 코드를 작성하고 구조를 알아야 위의 본문을 이해하기 쉽다. 팩토리 메소드 패턴 예시 - 1 [요구사항] 게임 아이템과 아이템 생성을 구현 아이템을 생성하기 전에 데이터 베이스에서 아이템 정보를 요청 아이템을 생성 후 아이템 복제 등의 불법을 방지하기 위해 데이터 베이스에 아이템 생성 정보를 저장 아이템을 생성하는 주체를 ItemCreator로 이름 정의 아이템은 item 이라는 interface로 다룰 수 있게 한다. item은 use 함수를 기본 함수로 갖고 있다. ..