
HTTP 클라이언트와 서버가 통신 할 때 이용하는 프로토콜인 HTTP는 비상태 프로토콜(stateless Protocol)이다. 즉, 클라이언트-서버 간의 요청-응답이 이루어졌을 때, 서버는 클라이언트에 관한 어떠한 상태정보도 저장하지 않는다. 이러한 특징은 서버가 클라이언트와의 연결을 유지하는데 소모되는 자원낭비를 줄일 수 있지만, 로그인 상태 유지, 장바구니와 같이, 연결정보를 유지해야 하는 기능을 구현하는데 어려움이 있다. 이를 해결하기 위한 두 가지 방법으로 세션과 쿠키가 있다. 세션은 서버에서 사용자 정보를 관리하는 반면, 쿠키는 클라이언트가 사용자 정보를 관리한다. 쿠키를 이용하면 서버의 부하를 줄일 수 있지만, 보안적인 측면에서 취약할 수 있기 때문에 주로 장바구니, 팝업 보지않음과 같은 민..

@ModelAttribute Controller에서 커맨드객체를 활용했을 때 view에서 객체명.변수명 형식을 이용해 값을 가져올 수 있다. 이 때 @ModelAttribute 어노테이션을 활용해 view에서 활용할 객체명을 변경할 수 있다. Controller // 변경 전 public String memJoin(Member member) // 변경 후 public String memJoin(@ModelAttribute("mem") Member member) memJoinOk.jsp memJoinOk ID : ${mem.memId} PW : ${mem.memPw} Mail : ${mem.memMail} Phone : ${mem.memPhone1} ${mem.memPhone2} ${mem.memPhone..

화면으로 부터 사용자가 입력한 정보를 Controller가 넘겨받을 때 보통 HttpServletRequest 객체를 이용하거나 @RequestParam어노테이션을 이용한다. 이후 model 객체를 활용해 view단으로 데이터를 전송해 사용자에게 보여진다. model 객체와 HttpServletRequest 객체를 활용해 입력한 정보를 받고 해당 정보를 view로 보내는 과정을 진행해보고, 그로인해 발생할 수 있는 단점(단순반복코드)을 스프링에서 제공하는 커맨드 객체를 이용해 보완해보겠다. 커맨드 객체 HttpServletRequest를 통해 들어온 RequestParameter들을 setter를 이용해 객체에 정의되어있는 변수에 값이 바인딩 되는 객체를 의미한다. 커맨드 객체를 활용하기 위해선 Http..
REST API와 RESTful API REST API를 한 마디로 정의하면 API가 REST방식으로 동작하는 것을 뜻하며 RESTful API는 REST방식을 잘 준수한 API를 뜻한다. 이게 무슨 뜻인지 이해하기 위해 REST와 API가 각각 무엇인지 알아보았다. API (Application Programming Interface) 웹 이나 모바일 앱에서 클라이언트(사용자)가 서버로 요청을 전송하면 서버는 그에 대한 응답을 보내준다. 예를 들면 도서관 시스템에서 검색창에 원하는 책을 입력하고 검색버튼을 누르면 검색결과가 나오는것과 같다. 이 때 사용자는 검색창을 이용해 도서 검색을 하게 되는데, 이러한 검색 창과 같이 지정된 형식으로 요청을 받아 프로그램간에 상호작용을 하는 수단을 API라고 할 수..

모델1 웹 프로그래밍 구축 방법 중 Model 1 방식을 이용하게 되면 브라우저(사용자)로 부터 받은 요청을 하나의 파일에서 모두 처리하게 되는데, JSP, service, dao 등 여러 기능이 하나의 파일에 담기게 되면 큰 프로젝트의 경우 구축이후 유지보수 측면에서 어려움을 겪는다. 모델2 이러한 단점을 보완하기 위해 나온 방식이 Model 2 방식이다. Model 1방식과 달리 각각의 기능을 모듈화 하였으며 MVC 패턴을 웹 개발에 도입한 구조이다. 각각 모듈의 기능을 간단히 정리하면 다음과 같다. Controller : 사용자 요청(URL, 매개변수)를 이용해 Service객체를 호출 및 DB로 부터 받은 Model을 View로 넘겨준다. Service : POJO(순수자바)객체로 구성되며 비즈니..
생성자 생성자는 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드이다. 주로 인스턴스 생성 시 실행되는 작업이나 변수 초기화 작업에 사용된다. class Card{ private String cardName; public Card() { } } 생성자의 조건은 클래스와 이름이 같으면서, 리턴 값이 없어야한다. 리턴 값이 없음에도 void형을 적지않는다. 생성자는 보통 public 접근제어자를 이용하는데, private으로 생성자를 만들면 다른 클래스에서 인스턴스를 생성할 수 없게된다. private생성자를 이용한 예제 생성자 오버로딩 class Card{ private String cardName; //생성자1 public Card() { } //생성자2 public Card(String _cardN..
한 클래스에서 매개변수의 개수 또는 타입이 다르면 이름이 같은 메소드를 여러개 정의할 수 있는데, 이처럼 이름이 같은 메소드를 여러개 정의하는 것을 메소드 오버로딩 또는 오버로딩이라고 한다. 오버로딩 조건 메소드 이름이 같아야한다. 매개변수의 개수 또는 타입이 달라야한다. 위의 조건이 만족되면 메소드의 이름이 같더라도 서로 식별될 수 있기때문에 오버로딩이 가능하다. 이 때, 메소드의 리턴타입과 매개변수명은 전혀 영향을 미치지 않는다는걸 주의해야한다. 오버로딩 잘못된 예시 1. 메소드 이름은 같지만 매개변수 이름만 다른 경우 public int add(int a, int b){ return a + b; } public int add(int x, int y){ return x + y; } 메소드의명이 같지만..

지금까지 스프링컨테이너와 Bean객체를 생성할 때 xml 파일을 생성한 뒤 Bean태그를 이용했다. xml 파일을 설정하지 않고도, 어노테이션을 활용해 Java파일에서 스프링컨테이너를 생성하는 과정을 알아본다. xml에서 Java클래스 변환을 알아보면서 다음과 같은 주제를 다룬다. xml > Java로 변환 DB 모델의 property List와 Map 타입의 변수 스프링컨테이너 생성 ■ 스프링 설정파일.xml > Java로 변환 MemberConfig.java @Configuration public class MemberConfig { } xml파일 대신 컨테이너로 사용할 Java 클래스에 @Configuration 어노테이션을 선언해줌으로, MemberConfig 클래스는 스프링설정파일로써, 스프링 ..
- Total
- Today
- Yesterday
- 인턴
- JVM
- SQL
- CS
- 스프링
- C
- 개발용어
- 국비교육
- 프로그래머스
- C++
- 오라클
- HeidiSQL
- CSS
- 스프링부트
- 백준
- svn
- 넥사크로
- 환경설정
- Thymeleaf
- Open API
- 이클립스
- 네트워크
- 오류
- JSP
- Java
- 데이터베이스
- 부트스트랩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |