전체 글

전체 글

    [JSP] 표현언어(Expression Language)란?

    [JSP] 표현언어(Expression Language)란?

    표현언어(Expression Language)는 간단한 방법으로 데이터를 표현하려고 고안된 언어인 SPEL(Simplest Possible Expression Language)에 기본을 두고 있다. 기존에 JSP의 데이터를 표현할 때 스크립트릿()이나 표현식() 혹은 를 사용했다. 그런데 스크립트릿이나 표현식은 페이지 내에서 객체 선언 부분이 따로 들어가야 하고, 의 경우에도 과 함께 사용해야 하며 단순 출력 이외의 표현은 안된다는 문제가 있었다. 표현 언어는 이러한 문제를 해결하려고 만들어진 기술로, 빈즈 속성 값을 더욱 쉽고 제약을 덜 받는 방법으로 사용할 수 있도록 해준다. 표현 언어를 사용하면 코드가 복잡해지는 것을 줄일 수 있고 JSP를 일종의 템플릿 코드처럼 사용할 수 있다. request.s..

    (Servlet/JSP) setCharacterEncoding, setContentType 정리

    JSP와 서블릿 공부를 하면서 항상 헷갈렸던 내용이 있다. request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=utf-8"); 이번 포스팅에서는 위 세 개의 문장을 알아보겠습니다. request.setCharacterEncoding("UTF-8") 우리가 어떤 .jsp파일이나 .html파일에서 폼 태그에 입력한 값을 전송한다고 가정하겠습니다. 폼 태그에서 입력한 값을 전송할 때는 GET방식과 POST방식으로 나뉘는데 POST방식으로 보내는 값이 '한글'일 경우 깨지지 않게 전달하기 위해 사용하는 것이 request.setCharacterE..

    JSP 내장객체를 활용한 간단한 twitter 구현하기

    JSP 내장객체를 활용한 간단한 twitter 구현하기

    안녕하세요. 이번 포스팅은 jsp 내장객체(request, session, application, out 등)를 활용해 간단한 twitter를 구현해보겠습니다. 내장 객체가 무엇인지부터 알아보겠습니다. JSP내장객체란 'JSP 내에서 선언하지 않고 사용할 수 있는 객체'라는 의미에서 붙여진 이름이다. request, response, pageContext, session, application, out, config, exception 등이 있다. 구조적으로는 JSP가 서블릿 형태로 자동 변환된 코드 내에 포함되어 있는 멤버변수, 메서드 매개변수 등의 각종 참조 변수를 말한다. 각각의 내장객체는 모두 getAttribute(), setAttribute() 메서드를 통해 속성을 저장하거나 가져올 수 있다...

    [스프링부트] postman을 활용한 간단한 RESTful 웹 서비스 만들기 - POST/DELETE 요청

    [스프링부트] postman을 활용한 간단한 RESTful 웹 서비스 만들기 - POST/DELETE 요청

    지난 포스팅에 이어 POST/DELETE 요청 부분을 다뤄보겠습니다. [ DemoRestController 클래스 수정 ] 상품 등록을 위한 메서드는 addProduct()로 Product 객체를 인자로 받는다. @PostMapping("/product") public String addProduct(@RequestBody Product p) { pm.addProduct(p); return "상품 추가됨!"; } URI 는 상품목록을 가지고 오는 경우와 동일 하지만 @PostMapping 애너테이션인 점이 다르다. @RequestBody 는 POST 요청시 전달되는 HTTP Body 의 내용으로 JSON 형태로 전달되어야 하며 Product 클래스와 매핑된다. 다음은 상품 삭제를 위한 메서드이다. @De..

    [스프링부트] postman을 활용한 간단한 RESTful 웹 서비스 만들기 - GET 요청

    [스프링부트] postman을 활용한 간단한 RESTful 웹 서비스 만들기 - GET 요청

    이번 포스팅에서는 RESTful 개념을 활용해 간단한 웹 서비스를 만들어보겠습니다. 실습을 위해선 Spring Tool Suite 4버전과 postman이 필요합니다. postman은 https://www.getpostman.com에서 다운받으실 수 있습니다. STS는 https://spring.io/tools 에서 다운받으실 수 있습니다. Postman | The Collaboration Platform for API Development Simplify workflows and create better APIs – faster – with Postman, a collaboration platform for API development. www.getpostman.com Spring Tools 4 Sp..

    [스프링부트] Bean 객체를 등록하는 두 가지 방법(@Component, @Bean)

    [스프링부트] Bean 객체를 등록하는 두 가지 방법(@Component, @Bean)

    빈 객체를 등록하는 방법을 설명하기에 앞서 빈(Bean)이 무엇인지 알아보겠습니다. [ 스프링에서의 빈이란? ] 우선 스프링은 경량 컨테이너로서 객체 생성, 소멸과 같은 Life Cycle을 관리하며 스프링 컨테이너로부터 필요한 객체를 얻을 수 있다. 스프링 컨테이너에 의해서 자바 객체가 만들어지게 되면 이 객체를 스프링은 스프링 빈(Bean)이라고 부른다. 스프링 빈과 자바 일반 객체와의 차이점은 없고 스프링 컨테이너에 의해 만들어진 객체를 스프링 빈이라고 부를 뿐이다. [ 스프링 빈의 어노테이션 종류 ] 스프링부트의 경우 @Component, @Service, @Controller, @Repository, @Bean, @Configuration 등으로 필요한 빈들을 등록하고 필요한 곳에서 @Autow..

    [JAVA] TCP 통신 소켓 프로그래밍(양방향 통신)

    [JAVA] TCP 통신 소켓 프로그래밍(양방향 통신)

    이전 포스팅인 단방향 소켓 프로그래밍에 이어서 이번 포스팅은 양방향 통신을 주제로 설명해보려고 합니다. 이전 포스팅에서 정리했던 용어들은 알고있다고 가정하에 진행하도록 하겠습니다. [ 양방향 통신 ] 서버 측에서는 ServerSocket을 생성하고 accept() 메서드를 호출함으로써 클라이언트의 접속을 대기한다. 클라이언트 측에서는 서버에 접속을 함으로써 서버와의 통신을 위한 Socket을 생성한다. 마찬가지로 서버 측에서 클라이언트 접속이 이루어지면 해당 클라이언트와 통신 할 수 있는 Socket을 반환받는다. 클라이언트와 서버는 생성된 소켓을 통하여 각각 상대에게 데이터를 내보내기 위한 출력 스트림(OutputStream)과 데이터를 읽어들이기 위한 입력 스트림(InputStream)을 생성한다. ..

    [JAVA] TCP 통신 소켓 프로그래밍(단방향 통신)

    [JAVA] TCP 통신 소켓 프로그래밍(단방향 통신)

    소켓 프로그래밍에 대해 포스팅하기에 앞서 기본적인 용어를 정리해보자. [ 네트워크(Network) ] 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용 형태를 의미 쉽게 말하면, 두 대 이상의 컴퓨터들을 연결하고 서로 통신할 수 있는 것 [ 인터넷(Internet) ] 네트워크를 컴퓨터와 컴퓨터로 구성한 것을 인터넷이라고 한다. [ IP(Internet Protocol) ] 전 세계 수억대의 컴퓨터가 인터넷을 하기 위해서는 서로의 정체를 알 수 있도록 특별한 주소를 부여했는데 이 주소를 IP 주소라고 한다. Internet Protocol의 줄임말로, 인터넷에서 컴퓨터의 위치를 찾아서 데이터를 전송하기 위해 지켜야 할 규약이다. IP는 4개의 숫자로 구성되며 숫자의 크기에 따라 IPv4, IP..

    [Javascript]  Window, DOM, BOM이란?

    [Javascript] Window, DOM, BOM이란?

    나는 자바스크립트 언어를 Window, DOM, BOM이 정확히 무엇을 의미하는지도 모른채 사용해왔다. 사실 Window, DOM과 BOM을 이해하기 위해 과거에 여러 문서를 보고 구글링도 했었지만 와닿지가 않았고 붕 뜬 느낌이었다. 분명 이 글을 보고 있는 사람들 중에서도 나와 같은 경험을 한 사람들이 있을 것이다. 이런 사람들이 내 글을 보고 위의 개념들을 이해하는데 도움이 됐으면 한다. ('객체'라는 의미는 알고있다고 가정한다) Window 객체 Window 객체는 자바스크립트의 최상위객체이자 전역객체이면서 모든 객체가 소속된 객체이다. 아래의 사진을 보면 DOM, BOM, JavaScript가 최상위 객체인 Window 객체 밑에 소속이 되어있다. 이 객체들은 서로 계층적인 관계로 구조화 되어있다..

    [JAVA] public class & class 차이

    [JAVA] public class & class 차이

    Program.java 라는 이름을 가진 클래스 파일로 예시를 들어보자. Program.java class Program { } 문제없이 컴파일이 잘 된다. 위 소스 파일에 아래와 같은 클래스를 하나 더 추가해보자. class Program { { class Program2 { } 역시나 문제없이 컴파일이 잘 된다. 그렇다면 아래와 같이 수정을 해보자 class Program { } public class Program2 { } Program2라는 클래스 앞에 public이라는 접근제어자를 붙였더니 이번에는 컴파일 에러가 발생한다. 그럼 아래와 같이 수정을 해보자 public class Program { } class Program2 { } 문제없이 컴파일이 잘 된다. 어떤 차이일까? 위와 같이 컴파일되..