개발 인생 4년 간 다양한 언어들로 개발해왔다. c/c++, go, python 4가지 언어로 개발해왔고, 최근까지 go만 주구장창쓰다가 project가 java로 바뀌었다.java를 처음 공부한 지가 이제 어언 8년이 넘어간다... 학생 때는 java랑 Spring을
데이터 타입을 정리하면 다음과 같다.기본 타입은 변수 자체에서 값을 저장하고 있지만, 참조타입(reference type)은 객체가 생성된 메모리를 참조하는 주소를 저장한다.객체들이 생성되어 관리되는 메모리 영역을 '힙(heap)'이라고 한다. 힙(heap)안에 객체가
클래스는 하나의 틀이고, 클래스를 통해 만든 것들이 '객체(instance)'이다. 객체는 속성과 동작으로 구성되는데, '속성'은 객체의 상태를 나타내고, '동작'은 객체의 행동을 나타내준다. 객체는 단독으로 존재할 수 있지만 객체들끼리의 관계를 통해서 더 다양한 현실
상속(inheritance)는 부모가 자식에게 물려주는 행위를 말한다. 객체 지향 프로그래밍에서는 부모 클래스의 필드와 메서드를 자식 클래스에게 물려줄 수 있다.상속은 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 중복되는 코드를 줄여 개발 시간을
인터페이스는 두 객체를 연결하는 역할을 한다. 객체 A가 인터페이스를 통해서 특정 객체의 메서드를 호출하고 그 결과값을 받는 것이다. 인터페이스는 일관된 사용 방법(method)를 제공해주어, 인터페이스와 연결된 객체가 무엇이든 지 상관없이 객체 A에 실행 결과값을
특정 클래스끼리만의 관계를 맺는 경우에는 중첩(nested) 클래스로 선언하는 것이 유지보수에 도움이 되는 경우가 많다.중첩 클래스(nested) 클래스란 클래스 내부에 선언한 클래스를 말하는데, 중첩 클래스를 사용하면 클래스의 맴버를 쉽게 사용할 수 있고 외부에는 중
라이브러리는 프로그램 개발 시 활용할 수 있는 클래스와 인터페이스들을 모아놓은 것을 말한다. 일반적으로 JAR(java archive) 압축 파일인(~.jar) 형태로 존재한다. JAR 파일에는 클래스와 인터페이스의 바이트 코드(~.class)들이 압축되어있다. 프로그
java에서는 예와(exception)라고 부르는 오류가 있다. exception은 잘못된 문법, 코딩으로 인해 발생한 오류를 말한다. exception이 발생하면 프로그램은 곧바로 종료된다는 점에서 에러와 동일하지만, exception의 처리를 통해 실행 상태를 유지
클래스를 선언할 때 extends 키워드로 다른 클래스를 상속하지 않으면 암묵적으로 java.lang.Object 클래스를 상속하게 된다. 따라서, 모든 클래스는 Object의 자손 클래스이다. 모든 객체들은 Object가 가진 메서드를 사용할 수 있다.equals()
다음과 같이 Box 클래스를 선언하려고 한다. Box에 넣을 내용물로 content field를 선언하려고 할 때, 타입을 무엇으로 해야할까??Box는 다양한 내용물로 저장해야 하므로 특정 클래스 타입으로 선언할 수 없다. 그래서 다음과 같이 Object 타입으로 선언
Thread java에서는 Thread를 생성 할 때도 class를 만들어 생성해야한다. 이때 thread class는 Runnable이라는 interface를 구현해야하는데, Runnalbe interface의 run 메서드가 thread가 실행될 때 호출되는 메서드
Collection collection framework는 몇 가지 인터페이스를 통해서 다양한 collection class를 이용할 수 있도록 설계되어 있다. 주요 인터페이스로 List, Set, Map이 있는데, 이 인터페이스로 사용 가능한 collection 객체
Stream 요소 처리 Java8부터 collection 및 배열의 요소를 반복 처리하기 위해 Stream을 사용할 수 있다. stream은 요소들이 하나씩 흘러가면서 처리된다는 의미를 가지고 있다. List collection에서 요소를 반복 처리하기 위해 strea
Data 입출력 입출력 스트림 java는 입력 스트림과 출력 스트림을 통해 데이터를 입출력한다. stream은 단방향으로 데이터가 흐르는 것을 말하는데, 다음과 같이 data는 출발지에서 나와 도착지로 흘러들어간다. 프로그램을 기준으로 데이터가 들어오면 입력 스트림
가장 먼저 postgres를 설치해주도록 하자. docker를 사용하여 간단한 postgres server를 구축하면 된다.postgres container에 접속되었다면 이제 postgres database 내부로 접속해보도록 하자.비밀번호를 묻는다면 '1234'를
JDBC를 사용하게 되면 SQL 쿼리 문을 계속해서 만들게 되고, java의 OOP 특성을 최대한 살리기 어렵다는 단점이 있다. 이러한 문제를 해결하기 위해서 ORM을 지원하는 hibernate를 사용하는 것이 좋다.hibernate는 Object Relational
새로운 Alien class를 만들어보도록 하자.hibernate를 통해서 Alien class를 table로 만들어 보자.위코드를 실행하면, 아래의 결과가 나오게 된다.기존에 해당 table이 없었으므로 create table를 통해서 table을 만드는 것을 볼 수
이전 시간에 만들었던 database table 정보들을 모두 삭제하도록 하자.삭제했다면 Alien class를 다음과 같이 수정하도록 하자.AlienLaptopMain위 코드를 실행하면 다음과 같은 결과가 나온다. 그런데 왜 인지는 모르겠지만 session.get을