본문 바로가기
  • AI (Artificial Intelligence)

Programming/Java20

[Java] 예외처리 - try~catch 문, throws문, 예외의 종류 Ref. butter-shower.tistory.com/87 오류의 종류 에러 (Error) 개발자가 해결할 수 없는 치명적인 오류 하드웨어의 잘못된 동작 또는 고장으로 인한 오류 에러가 발생되면 프로그램 종료 정상 실행 상태로 돌아갈 수 없음 예외 (Exception) 개발자가 해결할 수 있는 오류 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인한 오류 예외가 발생되면 프로그램 종료 예외 처리 추가하면 정상 실행 상태로 돌아갈 수 있읃ㅁ 예외가 발생하면 비정상적인 종료를 막고, 프로그램을 계속 진행할 수 있도록 우회 경로를 제공하는 것이 바람직 예외의 종류 일반(컴파일 체크) 예외 예외 처리를 하지 않으면 컴파일 오류가 발생하므로 꼭 처리해야하는 검사형 예외 실행 예외 (RuntimeExcept.. 2020. 10. 8.
Mac에서 Java 설치하기 (설치, 환경변수 설정) 1] 아래 링크에서 jdk 설치파일 다운 받기 http://www.oracle.com/technetwork/java/javase/downloads/index.html) [2] terminal 실행 [3] cd /Library/Java/JavaVirtualMachines [4] ls 명령어 실행 => 자바 버전 확인 (jdk1.8.0_161.jdk) [5] cd /Library/Java/JavaVirtualMachines/내가받은 자바버전에 맞는 jdk파일/Contents/Home/ => (cd /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/) [6] vi ~/.bash_profile [7] i 눌러서 편집모드 설정 들어가기 [8]exp.. 2019. 8. 7.
Ant, Maven, Gradle 이 뭘까? 스프링부트를 시작하며 자바 빌드도구인 Ant, Maven, Gradle에 대해 궁금해 졌다. (이번 글은 작성자 개인이 빌드 도구 각각에 대한 이해와특징을 알아보기 위해 작성된 것이다.) 웹/안드로이드 등등 프로그래밍 개발이 발전하며 프로젝트 생성에 필요한 라이브러리도 점점 많아지게 되었다. 이렇게 많아진 라이브러리를 직접 사이트에서 다운로드 받아 시스템에 추가하는 방법이 있지만 번거로움이 뒤따른다. 여기서 빌드도구(Build Tool)가 등장한다. 빌드도구란, 1)빠른 기간동안에 계속해서 늘어나는 라이브러리의 추가와 2)프로젝트를 진행하며 라이브러리의 버전을 동기화하기 어렵기 때문에 등장하였다. 초기의 JAVA 빌드 도구로 Ant라는 도구를 많이 사용하였으나 늘어나는 라이브러리를 관리하기 위해 Mave.. 2019. 8. 7.
Maven vs Gradle Maven vs Gradle 스프링 기반의 프로젝트를 시작하면서 Maven을 처음 접했다. Ant를 사용한적도 없었고 의존성 관리와 빌드 스크립트에 대한 지식도 없었기에 이런게 있나보다 하고 사용했었다. Maven 책을 한권 보고나서야 프로젝트 구성, 빌드툴이 무었인지 이해할 수 있었고, 편리한 의존성 관리에 감사하며 부족함을 느끼지 못했다. 하지만 프로젝트의 단위가 커지면서 빌드와 테스트에 소요되는 시간이 길어졌고, 여러 모듈에서 설정을 상속받기 시작하면서 Gradle이라는 녀석이 계속 눈에 뛰었다. Gradle이 Maven의 단점을 보완해주고 사용해본 사람들이 좋다고들 하니 Maven이랑 비교해서 얼마나 좋은지 알아보려 한다. Maven Apache의 이름 아래 2004년 출시 Ant를 사용하던 개발.. 2019. 8. 7.
[JDBC] JDBC, JPA/Hibernate, Mybatis의 차이 JDBC, JPA/Hibernate, Mybatis의 차이를 이해하다. Goal 영속성(Persistence)의 개념을 이해한다. SQL Mapper와 ORM의 차이에 대해 이해한다. JDBC(Data Transfer Object)란 무엇인지 이해한다. JPA/Hibernate란 무엇인지 이해한다. Mybatis란 무엇인지 이해한다. 영속성(Persistence) 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다. 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 잃어버리게 된다. 때문에 파일 시스템, 관계형 테이터베이스 혹은 객체 데이터베이스 등을 활용하여 데이터를 영구하게 저장하여 영속성 부여한다. Persistence Layer 프로그.. 2019. 8. 2.
Spring Boot, MySQL, JPA, Hibernate Restful CRUD API Spring Boot has taken Spring framework to the next level. It has drastically reduced the configuration and setup time required for spring projects. You can setup a project with almost zero configuration and start building the things that actually matter to your application. If you are new to Spring boot and want to get started with it quickly, then this blog post is for you. In this post, we’ll .. 2019. 8. 2.
Spring Boot + PostgreSQL + JPA/Hibernate CRUD Restful API In this article, you’ll learn how to configure Spring Boot to use PostgreSQL database and build a RESTful CRUD API for Employee Management System. You’ll also learn how Spring Data JPA and Hibernate can be used with PostgreSQL database. Before development, make sure that the PostgreSQL database is installed on your machine. Check out these two links to download and install PostgreSQL database on.. 2019. 8. 2.
Install Java 8 in Linux Install Java 8 in Linux1. Before installing Java, make sure to first verify the version of installed Java.# java -version java version "1.7.0_75" OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-2) OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode) It’s clear from the output above that the installed version of Java is OpenJDK 1.7.0_75.2. Make a directory where you want to install Java.. 2015. 12. 23.
[Java] 접근제어자 public, protected, private 변수나 메쏘드를 선언할 때 접근을 제어할 수 있는 modifier를 설정할 수 있다. 이러한 접근 관련 modifier를 통해서 객체지향 언어의 중요 특성 중 하나인 캡슐화(encapsulation)과 정보 숨김(information hiding)을 구현할 수 있다. * 접근 제어자 구분modifier 설명 접근 권한 public 모든 클래스에서 접근이 가능함을 의미한다.protected 동일 패키지에 속하는 클래스와 하위 클래스 관계의 클래스에 의해 접근이 가능하다. private 클래스 내에서만 접근이 가능하다 * 접근 권한 종류클래스 하위 클래스 동일 패키지 모든 클래스 private O X X X (default) O X O X protected O O O X public O O O O - pri.. 2014. 11. 8.
[Java] Java에서 JSON 사용하기 package kr.test.acanet; import java.io.*;import org.json.simple.*; public class JavaJSON { public static void main(String[] args) { //Json 객체 생성. JSONObject jobj = new JSONObject(); jobj.put("name", "wdkang"); jobj.put("company", "acanet"); jobj.put("age", "26"); //Json Array 생성. JSONArray maglist = new JSONArray(); maglist.add("JSON test"); maglist.add("hello JSON"); jobj.put("list", maglist); .. 2014. 11. 8.
JAVA: 객체 직렬화, 멀티 쓰레드(Thread) ★ 객체 직렬화 일반적으로 메모리에 생성된 객체의 인스턴스는 "비영속성"을 갖는다. 파일이나 데이터베이스에 저장된 데이터처럼 영속성을 가지기 위해서 자바에서는 '객체 직렬화' 기능을 제공한다. 객체 직렬화를 사용하면 파일이나 네트워크를 통해 영속성을 유지할 수 있다. 클래스 3개가 필요하다. 1. Person - 게터와 생성자를 사용해서 이름과 나이를 불러온다. - Serializable을 implements 해오는 게 특징. 보통 인터페이스의 용도는 강제로 오버라이딩을 하는 것이 목적인 경우가 많지만, 여기서는 Serializable의 기능을 사용할 수 있게 하는 의미로 쓰인다. 2. 파일 저장 (FileOutputStream) - serial.dat이라는 파일 안에 생성자의 내용을 불러들여 저장해 줌.. 2014. 11. 3.
[Java] 서버/클라이언트 소켓(Socket) 통신하기 먼저 서버를 만들 자바 코드를 알아보고, 뒤에는 안드로이드에서 소켓 통신을 위한 설정과정을 간단한 예제를 통해서 알아보겠습니다. STEP 1 Java Source Code 자바 코드는 두 가지를 다루게 됩니다. 처음은 서버를 돌리는 데 필요한 자버 코드를 알아보고, 두 번째는 안드로이드 클라이언트 코드를 알아보겠습니다. [ 서버 ] TCP Server Java Code import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.ServerSocket;import .. 2014. 10. 14.
[Java] '지정된 크기 - 숫자 자리수'만큼 숫자 왼쪽을 0 으로 채우기 1. 컬럼의 지정된 크기가 있고, 컬럼 값이 숫자일 때, '지정된 크기 - 숫자 자리수'만큼 숫자 왼쪽을 0 으로 채우기 1) 언제 사용하는가? - 인터페이스 전문 테스트 데이터를 직접 만들 때 - 전문에서는 전문 항목이 숫자일 경우, '지정된 크기 - 숫자 자리수'만큼 숫자 왼쪽을 0 으로 채운다. 2) 어떻게 쓰는가? = REPT("0", 지정된 크기 - LEN(컬럼))&컬럼 ex ) REPT("0",6-LEN(A1))&A1 3) JAVA 에서는 어떻게 쓰는가? String a = String.format("%06d", 1) : 0 은 왼쪽에 채울 숫자, 6 은 자릿수, 1은 실제 숫자 값 출처 : http://hyoseokchoi.tistory.com/12 2014. 10. 7.
JAVA JSON 라이브러리 Jackson 사용법 참조 : 1. http://jackson.codehaus.org/ 2. http://wiki.fasterxml.com/JacksonInFiveMinutes 라이브러리 다운로드 http://wiki.fasterxml.com/JacksonDownload jackson-core, jackson-databind, jackson-annotations 를 다운 받음. Jackson 에서 JSON 처리에 제공하는 방법 1. Streaming API 성능이 빠름. 2. Tree Model 일반적인 XML처럼 노드형태로 Json 데이터를 다룸. 유연성이 가장 좋음. 입맛대로 구성할 수 있음. 3. Data Binding POJO 기반의 가자 객체들을 JSON으로 변환함. -Simple data Binding : 자바클래.. 2014. 9. 11.
Spring에서 Json으로의 입출력 정리 이번에 프로젝트를 진행하면서 Spring에서 사용하는 Jackson Json 라이브러리를 조금 디테일하게 이용해야 하는 상황이 생겨서 이에 대한 내용을 정리하고자 한다.일단 Json과 관련되어 작업의 내용은.. Java 객체에 저장된 값을 Json 형태로 변환하여 Request Body에 실어서 보내야 한다(이때 String 형 변수가 아닌 다른 형(ex : int 형)을 String 형태(쌍따옴표로 감싼 형태 : "123")로 보내야 한다.Java 객체에 저장된 값을 Json 형태로 변환하여 보낼때 선별적으로 보낼수 있어야 한다. (무슨뜻이냐면 Json으로 보낼때 모든 필드를 다 사용하는것이 아니라 특정 필드는 제외해서 사용할 수 있어야...) Request의 Body로 온 Json 내용을 Java 객.. 2014. 9. 11.
Jackson Tutorial - 2 Examples Full Data Binding (POJO) Example Simple Data Binding Example Data Binding with Generics Three Model Example Streaming API Example Full Data Binding(POJO) Example Jackson's org.codehaus.jackson.map.ObjectMapper "just works" for mapping JSON data into plain old Java objects ("POJOs"). Json data { "name" : { "first" : "Joe", "last" : "Sixpack" }, "gender" : "MALE", "verified" : false, "use.. 2014. 9. 11.
Jackson Tutorial - 1 Jackson tutorial(http://wiki.fasterxml.com/JacksonInFiveMinutes) 차례 JSON Three Ways Examples Full Data Binding (POJO) Example Simple Data Binding Example Data Binding with Generics Three Model Example Streaming API Example JSON Three Ways Jackson은 JSON 데이터를 처리하기 위한 세가지 방법을 제공한다. Streaming API(aka Incremental Processing, or Token Streams) http://wiki.fasterxml.com/JacksonStreamingApi Streaming AP.. 2014. 9. 11.
Jackson How-To: Ignoring Unknown Properties Jackson How-To: Ignoring Unknown Properties http://wiki.fasterxml.com/JacksonHowToIgnoreUnknown JSON 데이터를 자바 객체로 바인딩 할 때, JSON은 모든 프로퍼티가 자바 객체에 일치할 필요가 있다. 자바 객체의 프로퍼티와 일치하지 않는 프로퍼티를 만난다면 Exception이 발생하게 된다. Sometimes, Unknown Properties에 대해 예외를 발생시키지 않고 Ignore 해야 할 필요가 있다. Add "Any setter" to handle any unknown properties @JsonAnySetter 어노테이션으로 특정 메소드를 명시해 주는 방법.(자동으로 되지 않는다.) // note: name doe.. 2014. 9. 11.