전체 글 1097

(컬렉션프레임워크)Map 인터페이스 { TreeMap }

TreeMap 클래스 란? Map 인터페이스를 구현한 클래스 중 key 값으로 자료를 정렬하려면 TreeMap 을 사용할 수 있습니다. TreeMap 은 TreeSet 과 마찬가지로 이진 검색 트리로 구현되었습니다. key 값으로 정렬하므로 key 값에 해당하는 클래스는 Comparable 혹은 Comparator 인터페이스를 구현해야 합니다. 회원 관리 프로그램(이전 포스팅 참조 https://benprogram.tistory.com/341)에서 사용하는 key 값인 memberId 는 Integer형입니다. Integer 클래스를 JavaDoc 에서 살펴보면 Comparable 인터페이스를 구현한 것을 확인할 수 있습니다. 따라서 우리 예제에서는 따로 Comparable 인터페이스를 구현하지 않아도 ..

(컬렉션프레임워크)Map 인터페이스 { HashMap, Hashtable }

Map 인터페이스 란? Map 인터페이스는 자료를 쌍(Pair)으로 관리하는 데 필요한 메서드가 정의되어 있습니다. key-value 쌍으로 이루어진 객체의 key 값은 유일하며 value 값은 중복될 수 있습니다. Map 인터페이스를 구현한 클래스는 내부적으로 해시 알고리즘에 의해 구현되어 있습니다. Hash 란? Map 인터페이스를 구현한 클래스 중 가장 많이 사용하는 클래스는 HashMap 클래스이다. HashMap 클래스는 이름에서 의미하는 바와 같이 자료를 해시 방식으로 관리하는데, Hash 에 대한 내용은 다음 글을 참고하자. https://medium.com/@su_bak/crypto-%ED%95%B4%EC%8B%9C-hash-%EB%9E%80-6962be197523 HashMap 클래스 개..

Spring JDBC 소개 { 개요, 등장배경, JdbcTemplate 예제, NamedParameterJdbcTemplate, SimpleJdbcTemplate, SimpleJdbcInsert }

수업목표 JDBC를 이용해서 프로그래밍을 하게 되면 반복적인 코드가 많이 발생합니다. 이러한 반복적인 코드는 개발자의 생산성을 떨어트리는 주된 원인이 됩니다. 이러한 문제를 해결하기 위해 등장한 것이 Spring JDBC입니다. 이번 시간에는 Spring JDBC에 대해 알아보도록 하겠습니다. - Spring JDBC에 대한 개념을 이해합니다 - Spring JDBC의 핵심 클래스와 인터페이스에 대해 이해합니다 Spring JDBC 등장배경 항상 JDBC를 사용하기 위해서는 드라이버를 로딩하고 접속도 해야하고 Statement 객체도 얻어내야하고, 쿼리 문을 만들고 실행하고, 결과가 있다면 ResultSet 객체도 생성해서 저장한 다음 값을 꺼내야 했습니다. 그리고 객체를 열었던 순서의 반대로 모든 객체..

Web API 실습 { 사전설정, objectMapper, writeValueAsString }

수업목표 이번 시간에는 서블릿을 이용하여 Web API를 작성해 보도록 하겠습니다. JDBC 수업 시간에 배웠던 RoleDao 도 이번 시간에 재활용됩니다. - Servlet 을 이용해 Web API를 작성할 수 있습니다. - 객체를 JSON 문자열로 변환시킬 수 있습니다. Maven 프로젝트 생성 및 라이브러리설정 실습을 위한 Maven 프로젝트를 생성하겠습니다. 이번에는 archetype 을 webapp 으로 설정하고 생성하겠습니다. Artifact Id 를 webapiexam 으로 두고 생성하겠습니다. Maven 프로젝트를 생성하였다면 매번 하는 pom.xml 설정이 있었죠. 우선은 java jdk 버전 설정에 대한 플러그인을 태그 안에 넣어줍니다. (강사님의 경우 이렇게 직접 추가해주셨는데, 저의..

WEB API { 개요, 디자인 가이드, 상태 코드 }

수업목표 Web API에 대해 알아보고 REST API와 Web API의 차이에 대해 알아봅시다. Web API를 잘 작성하기 위한 디자인 가이드에 대해 살펴보도록 합니다. Web API 디자인 가이드 란? REST API 강의에서 REST API의 모든 스타일을 구현하지 못할 경우에는 Web API 혹은 HTTP API로 부른다고 했습니다. 이런 Web API를 만들 때는 몇 가지 규칙이 있습니다. HTTP API 디자인가이드 : 1. 올바른 HTTP Method 첫째, 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다. 예제를 보면서 올바른 HTTP Method 에 대해서 살펴보도록 하겠습니다. POST(생성), GET(조회), PUT(수정), DELETE..

Rest API { 개요, API, REST API & Mashup, REST Style, uniform interface style, WEB API & HTTP API }

수업목표 클라이언트의 종류가 웹 브라우저, 안드로이드 앱, iOS 앱 등 다양해지면서 클라이언트들에게 정보를 제공하는 방식을 하나로 일원화 하고 싶다는 욕구가 개발자들에게 생겨났습니다. 일원화시키는 방식 중에 대표적인 방식이 HTTP프로토콜로 API를 제공하는 것입니다. HTTP프로토콜로 제공하는 API를 REST API라고 합니다. 이번 시간에는 API에 대한 개념과 REST API의 개념에 대해 알아보도록 하겠습니다. - REST API가 무엇인지 이해합니다. - WEB API(HTTP API)와 REST API를 구분할 수 있습니다. API 란? API는 Application Programming Interface 의 약자입니다. API 에 대하여 wiki 에서는 다음과 같이 설명합니다. "API(..

JDK 다운받기 및 설치하기 { JRE }

수업목표 JAVA 언어를 이용하여 개발하기 위해서는 JDK(Java Development Kit)가 컴퓨터에 설치되고 환경설정이 알맞게 설정되어 있어야 합니다. 이번 학습에서는 JDK 를 설치하겠습니다. JDK 와 JRE 란? Java 언어로 작성된 프로그램을 실행하기 위해서는 JRE(Java SE Runtime Environment)가 필요합니다. Java 언어를 사용하는 개발자가 아니라 Java 언어로 만들어진 프로그램을 실행하는 사용자라면 JRE 만 컴퓨터에 설치하면 됩니다. 보통 사용자 입장에서 Java 를 설치한다는 것은 JRE를 설치하는 것을 말합니다. Java 언어를 사용하는 개발자는 Java 언어로 작성된 소스(Source)를 컴파일하고 관리할 필요가 있습니다. 이때 사용되는 도구를 JDK..

Spring Core : Java Config 사용한 IoC & DI { @Configuration, @ComponentScan, @Component, @Autowired }

수업목표 이번 시간에는 Java Config 와 Annotation 을 이용해 스프링에서 사용하는 빈을 정의하고 DI 하는 방법에 대해서 알아보겠습니다. Java Config : @Configuration & @Bean 활용하여 Config 파일 생성하기 이전 시간에 위와 같은 XML 파일을 이용하여 Bean 파일들에 대한 설정을 스프링에게 알려주었습니다. 이것을 Java Configuration 과 Annotation 들을 활용하여 설정하는 법에 대해서 공부를 해보려고 합니다. ApplicationConfig 라는 자바 클래스를 생성하고 그 위에 바로 @Configuration 이라는 Annotation 을 활용하여 Config 클래스라는 것을 명시해줍니다. 그 다음에 Bean 을 등록하게 될 텐데요...

여러 자바 버전 한 컴퓨터에서 편하게 사용하기(편한 버전 변경)

자바 버전 변경? 컴퓨터에서 사용되는 자바 버전을 변경하기 위해서는 다음과 같은 단계가 필요하다. 1. 여러 자바를 설치한다 2. 시스템 환경변수를 알맞게 설정한다. 1번은 괜찮은데, 2번은 자바 버전을 바꿀 때마다 환경변수 설정을 해야하는 귀찮음이 있다. 해결방법 자바 버전 변경을 bat 파일을 활용하여 손쉽게 하는 방법에 대한 포스팅을 발견하였다. https://almond0115.tistory.com/entry/Java-%EB%B2%84%EC%A0%84-%EC%97%AC%EB%9F%AC-%EA%B0%9C-%EC%A0%84%ED%99%98%ED%95%98%EC%97%AC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B2%95 여기 가서 글을 읽고 따라해보자. 결과물 나의 ..

JDBC 실습 : 모든 데이터 조회 { try with resource 블록 }

수업목표 이번 예제는 모든 데이터를 조회하는 예제입니다. 모든 데이터 조회 : getRoles 메서드 생성하기 Role 객체 하나 하나가 데이터인데요. 모든 데이터를 조회하겠다는 얘기는 모든 Role 객체들을 가져오겠다는 것을 의미합니다. 그래서 Role 객체를 요소로 갖는 List 를 리턴하는 getRoles( ) 메서드를 생성하겠습니다. 이번 예제에서 조금 다른 부분이 있습니다. 다른 예제에서는 필요한 객체를 선언한 다음 try 블록에서 하려는 작업을 수행하고 catch 블록에서 예외를 처리하고 마지막 finally 블록에서 객체를 다는 것을 수행했었습니다. 그런데, 지금 예제에는 새롭게 추가된 문법을 하나 갖고 있습니다. try with resuource 블록을 사용하게 됩니다. try 블록에 사용..