
자바로 Queue를 직접 구현해봤다. 큐는 자료구조로, FIFO(First-in, First-out)의 특성을 가지고 있다. 두가지 방법을 사용해서 구현했다. 배열과 Node(연결 리스트) 방법 두가지다. 배열을 이용하여 구현 ArrayQueue.class public class ArrayQueue { private int[] arr; private int size; public ArrayQueue() { arr = new int[20]; } public int getSize() { return size; } public void setSize(int size) { this.size = size; if(size 1) { for(int i=1; i

자바로 stack을 직접 구현해봤다. 스택은 자료구조로, LIFO(Last-in, First-out)의 특성을 가지고 있다. Stack.class package stack; public class Stack { private int[] arr; private int length; public Stack() { this.arr = new int[100]; length = 0; } public int getLength() { return length; } public void setLength(int length) { this.length = length; if(length

LinkedList ArrayList와는 하나의 큰 배열을 사용하는 방식이다. 이와는 다르게 LinkedList는 각각의 노드를 연결하는 방식을 사용한다. 연결 리스트로 구현되어 있고 각각의 데이터는 노드(Node)로 구성되어 연결되어 있는 구조다. 각 노드는 데이터와 다음 노드의 값을 가지고 있다. LinkedList의 장점은 데이터 삽입/삭제가 용이하다는 점이다. 원하는 위치 어디에서나 삽입/삭제 시에 변경되는 노드만 다시 연결해주면 되기 때문에 빠른 연산이 가능하다. LinkedList에서의 삽입 과정 LinkedList에서의 삭제 과정 그래서 데이터의 삽입/삭제가 자주 발생하는 경우에 LinkedList를 사용하는 것이 좋다. 그러나, LinkedList는 순차접근만 가능하기 때문에 인덱스를 이용..

1. Primitive Type 종류, 값의 범위, 기본 값 2. Primitive Type 과 Reference Type primitive type (원시 타입) 정수, 실수, 문자, 논리 리터럴 과 같은 실제 데이터 값을 저장하는 타입이다. non-object Reference Type (참조 타입) 메모리 번지 값을 통해 객체를 참조하는 타입이다. 객체(obejct)의 주소를 저장한다. 예를 들면 class, interface, enum, array, String type을 말한다. 3. literal이란? 리터럴은 프로그램에서 직접 표현한 값(데이터)을 말한다. 1) 정수 리터럴 10진수, 8진수, 16진수, 2진수 리터럴 정수 리터럴은 int형으로 컴파일, long 형은 숫자뒤에 L이나 l을 붙..

1. JVM이란? JVM은 자바 가상 머신으로 Java Virtual Machine의 줄임말이다. Java는 운영체제(OS)에 구애받지 않고 실행할 수 있는데 , JVM이 그 역할을 한다. 자바 프로그램은 컴퓨터가 이해할 수 있는 언어(기계어)인 바이너리코드가 아닌 바이트코드(가상 머신이 이해할 수 있는 코드)로 되어 있다. 여기서 JVM의 필요성을 알 수 있다. 기계어는 cpu의 제조사마다 달라서 하나의 언어가 아니다. 다 다른 컴퓨터 환경에서 실행하려면 각각의 제조사에 맞는 기계어를 알고 있어야 한다. 그렇지만 개발자가 모든 종류의 cpu의 기계어를 알고 있기에 매우 번거롭다. 그래서 JVM이 자바 프로그램을 다양한 cpu 환경에서 이식성 문제 없이 실행할 수 있도록 도와주는 역할을 하는 것이다. 이..

스프링에서 servlet-context.xml과 같은 xml파일에서 bean을 정의하고 여러가지 설정을 하는데, 이를 xml파일이 아닌 자바 클래스로 구현을 해보겠다. xml에 비해 짧고 간단하게 설정할 수 있어 편리한 장점을 가지고 있다. 1. Java 설정 클래스 @Configuration public class AppConf { @Bean public MemberDao memberDao(){ return new MemberDao(); } } 설정 클래스로 사용할 클래스 위에 @Configuration 애노테이션을 붙여준다. 스프링은 이 애노테이션이 붙은 설정 클래스를 내부적으로 스프링 빈으로 등록한다. @Bean을 사용하는 클래스에는 반드시 @Configuration 어노테이션을 활용하여 해당 클래..
Java에서 DB를 사용할 때, 자바프로그램은 DB 쪽으로 SQL 문을 전송하고, DB는 처리된 결과를 다시 자바프로그램 쪽으로 전달해야 합니다. 이 역할을 하는 객체가 Statement입니다. 자세한 내용은 이전 포스팅을 참고하여주세요. 2020/12/08 - [웹 개발/Java] - [ Java ] JDBC 사용하는 방법 [ Java ] JDBC 사용하는 방법 JDBC란? JDBC란, 자바 언어로 다양한 종류의 관계형 데이터베이스에 접속하고 SQL문을 수행하여 처리하고자 할 때 사용되는 표준 SQL 인터페이스 API입니다. 즉, 자바에서 데이터베이스를 사용하기 codingwell.tistory.com PreparedStatement 사용법 그런데 이때, Statement를 사용하지 않고 Prepare..

JDBC란? JDBC란, 자바 언어로 다양한 종류의 관계형 데이터베이스에 접속하고 SQL문을 수행하여 처리하고자 할 때 사용되는 표준 SQL 인터페이스 API입니다. 즉, 자바에서 데이터베이스를 사용하기 위한 절차에 대한 규약입니다. DBMS에 따라 DB를 다루는 방식이 다르다면, 사용자는 각 DBMS의 방식을 모두 알아야하기 때문에 필요한 지식이 너무많아지게 됩니다. 그래서 JDBC를 통해 추상화된 인터페이스를 제공하기만 하고, 데이터베이스의 종류에 상관없이 각 JDBC 드라이버를 통해 특정 DBMS를 사용할 수 있습니다. DB에 접근하기 위한 인터페이스는 JDBC의 API를 사용하면 됩니다. JDBC 드라이버 실제 DB관련 기능이 동작하려면 위에서 말한 인터페이스 만으로는 작업할 수 없습니다. 그렇기..