Java
-
Java Jasypt 프로퍼티 암호화Java 2024. 9. 16. 10:40
Java Jasypt 프로퍼티 암호화 1. Jasypt란?Jasypt는 개발자가 암호에 대한 지식 없이도최소한의 노력을 통해 자신의 프로젝트에 기본적인 암호화 기능들을 추가할 수 있게 도와주는 라이브러리이다. 목록 분류에서도 알 수 있듯이 스프링 자체 기술은 아니고, 자바에서 지원해주는 기술이다.스레드 안전의 특징을 가지기 때문에,싱글톤 환경인 스프링에서 동기화에 대한 걱정 없이 사용할 수 있다. 아 물론 자바, 스프링, 스프링 부트에서 사용할 때 각각 설정이 조금씩 달라지기는 한다.오늘은 스프링부트에서 사용하는 방식을 소개할 예정이다. 그리고 원본문자에 대한 제약이 없다.일본어나 한국어 등 자주 사용되지 않는 언어를 지원해준다.근데 뭐 대부분 영어로 쓸텐데 크게 와닿으려나 싶기는 하다. 아무튼 바로..
-
Java JDBCJava 2024. 2. 27. 15:58
JDBC(Java Database Connectivity) 자바와 DBMS 서버간의 통신을 할 수 있게끔 개발하는데에 제시된 표준이고 기준인 인터페이스들의 집합 JDBC를 안쓰면 MySQL용 쿼리, Oracle용 쿼리 등등 전부 다 따로 만들어줘야 함, 근데 얘가 OS 독립적이게 해주는 JVM같은 역할을 해줌 드라이버 지정 JDBC가 포함하고 있는 인터페이스를 구현할 드라이버를 지정한다. 드라이버는 아래와 같이 지정 Class.forName([드라이버 전체 경로 문자열]); Class.forName 메서드는 ClassNotFoundException Checked 예외를 발생시키므로 이에 대한 적절한 처리가 필요하다. 가령, MariaDB DBMS 서버에 접속하기 위한 드라이버 지정은 아래와 같이 할 수 ..
-
Java 네트워킹Java 2024. 2. 27. 15:37
네트워킹(Networking) 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크(network)를 구성하는 것을 말한다. 네트워킹의 개념은 컴퓨터들을 서로 연결하여 데이터를 손쉽게 주고받거나, 자원프린터와 같은 주변기기를 함께 공유하고자 하는 노력에서 시작되었다. 메신저나 온라인게임과 같은 인터넷을 이용하는 다양한 네트워크 어플리케이션이 많이 생겨났고, 자바에서 제공하는 java.net패키지를 사용하면 이러한 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있으며, 간단한 네트워크 어플리케이션은 단 몇 줄의 자바코드만으로도 작성이 가능하다. 클라이언트/서버 클라이언트/서버는 컴퓨터간의 관계를 역할로 구분하는 개념이다. 일반적으로 서버는 다수의 클라이언트에게 서비스를 제공하기 때문에 고사양의 하..
-
Java 입출력 - 2, 표준 입출력과 파일Java 2024. 2. 27. 15:20
표준입출력과 File 1. 표준입출력 - System.in, System.out, System.err 표준입출력은 콘솔(console, 도스창)을 통한 데이터 입력과 콘솔로의 데이터 출력을 의미한다. 자바는 표준 입출력(standard I/O)을 위해 3가지 입출력 스트림, System.in, System.out, System.err을 제공하는데, 이 들은 자바 어플리케이션의 실행과 동시에 사용할 수 있게 자동으로 생성되기 때문에, 개발자가 별도로 스트림을 생성하는 코드를 작성하지 않고도 사용이 가능하다. 이런 이유로 지금까지 스트림의 생성 없이 System.out을 사용해올 수 있었다. System.in 콘솔로부터 데이터를 입력받는데 사용 System.out 콘솔로 데이터를 출력하는데 사용 System..
-
Java 입출력 - 1, 스트림(I/O Stream)Java 2024. 2. 27. 13:49
I/O란 Input, Output의 약자로 입력과 출력, 간단하게 입출력 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것 예를 들면 키보드로부터 데이터를 입력받는다든가, System.out.println()을 이용해서 화면에 출력한다던가 하는 것이 가장 기본적인 입출력이다. 1. 스트림(Stream) 입출력을 수행하려면, 즉 어느 한 쪽에서 다른 쪽으로 데이터를 전달하려면, 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림(stream)이라고 한다. 람다와 스트림의 스트림 API와 다른 개념이다. 스트림은 데이터를 운반하는데 사용되는 연결통로이다. 스트림은 단방향통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 할 수 없다. 그래서 입력과..
-
Java 스트림(Stream)Java 2024. 2. 27. 11:55
1. 스트림 지금까지 많은 수의 데이터를 다룰 때, 컬렉션이나 배열에 데이터를 담고 원하는 결과를 얻기 위해, for문과 Iterator문을 이용해 코드를 작성해왔다. 그러나 이런 방식으로 작성된 코드는 너무 길고 알아보기 어렵다. 재사용성도 떨어진다. 또 다른 문제는 데이터 소스마다 다른 방식으로 다뤄야한다는 것이다. 인터페이스를 이용해 컬렉션을 다루는 방식을 표준화하기는 했지만, 각 컬렉션을 다루는 방식을 표준화하기는 했지만, 각 컬렉션 클래스에는 같은 기능의 메서드들이 중복해서 정의되어 있다. 예를 들면 List를 정렬할 때는 Collections.sort()를 이용하고, 배열을 정렬할 때는 Arrays.sort()를 이용한다 이 문제를 해결해주는 것이 스트림 스트림은 데이터소스를 추상화하고, 데이..
-
Java 람다, 람다식Java 2024. 2. 26. 18:39
람다식 자바가 1996년 등장한 이후로 두 번의 큰 변화가 있었는데, 1. jdk1.5부터 추가된 지네릭스의 등장 2. jdk1.8부터 추가된 람다식(lambda expression)의 등장이다. 람다식의 도입으로 인해 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 1. 람다식이란? 람다식은 간단히 말해서 메서드를 하나의 식으로 표현한 것이다. 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수'라고도 한다. int[] arr = new int[5]; Arrays.setAll(arr, (i) => (int)(Math.random() * 5) + 1); 위 문장에서 '() => (int)(Math.rando..
-
Java 쓰레드(Thread)Java 2024. 2. 26. 18:15
1. 프로세스와 쓰레드 실행 중인 프로그램 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며, 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드 그래서 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재하며, 둘 이상의 쓰레드를 가진 프로세스를 멀티쓰레드 프로세스라고 한다. 참고 프로세스라는 작업공간에서 작업을 처리하는 일꾼 쓰레드로 이해하면 쉽다 하나의 프로세스가 가질 수 있는 쓰레드의 개수는 제한이 없지만, 쓰레드가 작업을 수행하는데 개별적인 메모리 공간(호출 스택)을 필요로 하기 때문에, 프로세스의 메모리 한계에 따라 생성할 수 있는 쓰레드의 수가 결정된다...