일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Sprint Security
- While
- IAC
- datatype
- jvm
- Fluent-bit
- If
- UserDetails
- 연산자
- Class
- For
- Spring Security
- programmers
- 기초
- g1gc
- lambda
- C++
- JavaScript
- zgc
- Java
- Kotlin
- JPA
- redis
- 자료형
- MergeSort
- quicksort
- Algorithm
- datastructure
- ansible
- SpringBoot Initializr
- Today
- Total
목록BLOG HOME (78)
뭐라도 끄적이는 BLOG
Embedded H2 Database H2 Database는 자바기반의 오픈소스 RDBMS이다. H2 Database는 설치를 해서 사용할 수도 있지만 Database설치 없이 Application에 Database가 내장된 형태로 프로그램을 테스트 해볼 수 있다. 프로그램이 종료되면 데이터가 사라지기 때문에 간단한 테스트 용도에서만 사용한다. implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' H2 Database를 사용하기 위해서 위 2가지 의존성을 추가했다. spring: h2: console: enabled: true path: /h2-console datasource: g..
Security Configuration Spring Boot 3.0.0 이후 설정되는 Spring Security는 이전에 Configuration을 적용했던 방식과는 조금 달라졌다. 이전에는 WebSecurityConfigurerAdapter가 @Configuration이 설정된 Class에 상속됬어야 했는데 지금은 @EnableWebSecurity를 추가해주면 된다. Spring Security without the WebSecurityConfigurerAdapter In Spring Security 5.7.0-M2 we deprecated the WebSecurityConfigurerAdapter, as we encourage users to move towards a component-based..
Spring Security란 Spring Security는 인증, 권한 부여, 일반적인 공격에 대한 보호 기능을 제공하는 프레임워크이다. Servlet Application과 Reactive Application 모두 보안을 최고 수준으로 지원하며, Spring 기반 애플리케이션 보안을 위한 사실상의 표준이다. Setup start.spring.io에서 아래와 같이 Spring Security 프로젝트를 간단히 생성해본다. 이후 해당 프로젝트를 지속적으로 변경하면서 Spring Security에 대한 설명을 이어나갈 것이다. 해당 Spring Security 시리즈는 Spring Boot 3.0.0이후에 적용되는 Spring Security를 기준으로 작성한다. 간단하게 Web과 Security Dep..
이제 대부분 Spring Framework 프로젝트를 시작하기 위해 Spring Boot 프로젝트를 생성한다. 이러한 Spring Boot 프로젝트를 생성하는 방법과 프로젝트가 어떻게 구성되어 있는지 살펴본다. Spring Initializr Spring Initializr에서 Spring Boot 프로젝트를 생성할 수 있다. 먼저 Project Build Tool을 선택할 수 있다. Maven또는 Gradle은 프로젝트의 의존성 관리를 하기 위한 시스템이며 MavenRepository에서 개발자가 필요로하는 라이브러리를 가져와 사용할 수 있도록 도와주는 도구이다. Maven은 Ant와 더불어 인기가 식어가고 있으며 새로운 프로젝트에는 Gradle이 많이 사용되고 있다. Language는 Java와 Ko..
Kotlin 함수는 일급 함수로 변수와 데이터 구조에 저장할 수 있으며 다른 함수의 인수로 전달하거나 다른 함수에서 반환할 수 있다. 이를 효율적으로 사용하기 위해 Kotlin에서는 람다와 같은 특수한 언어 구조를 제공한다. 고차함수 (Higher-order functions) 고차함수는 함수를 매개변수로 받거나 함수를 반환하는 함수를 말한다. Lambda 람다를 사용하여 함수를 훨씬 더 간결한 코드로 작성할 수 있다. fun uppercaseString(string: String): String { return string.uppercase() } fun main() { println(uppercaseString("hello")) println({ string: String -> string.upper..
함수 선언 Kotlin에서 함수를 선언하기 위해 fun 키워드를 사용한다. fun hello(){ return println("Hello, world!") } 함수 매개 변수는 괄호안에 작성된다. 각 매개변수에는 타입이 있어야 하며 여러 매개변수는 쉼표로 구분해야 한다. 반환 유형은 함수의 괄호 뒤에 콜론으로 구분하여 작성한다. 함수 본문은 중괄호 안에 작성한다. return 키워드로 함수를 종료하거나 함수에서 값을 반환하는 데 사용된다. 함수에서 반환할 것이 없을땐 반환 타입은 Unit을 사용한다. 함수 본문에서 Unit이 반환된다고 명시적으로 선언 할 필요는 없다. fun printMessage(message: String) { println(message) // `return Unit` or `re..
람다(java 8) public interface Printable { void print(String s); } public class Printer implements Printable{ @Override public void print(String s) { System.out.println(s); } public static void main(String[] args) { Printable prn = new Printer(); prn.print("What is Lambda?"); } } 일반적으로 인터페이스는 바로 인스턴스를 생성할 수 없기 때문에 클래스로 구현한 뒤에 사용한다. 하지만 인터페이스의 함수가 적거나 이벤트와 같이 특별한 경우에만 적용된다면 익명 클래스를 이용해서 사용하기도 한다. pu..
제네릭 제네릭은 JDK 1.5부터 등장하였다. 제네릭은 데이터 타입을 일반화 하는 것을 의미한다. 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 이렇게 컴파일시 type check를 하면 클래스나 메소드 내부에서 사용되는 객체의 타입의 안정성을 높일 수 있으며 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있다. 제네릭 이전에는 클래스나 메소드의 매개변수나 반환값으로 Object타입을 사용다. 하지만 반환된 Object객체를 다시 원하는 타입으로 변환하는 과정에서 프로그래머의 실수가 잦았다. 이젠 제네릭을 사용하여 컴파일 타임에 미리 타입이 정해져 타입 검사나 타입 변환과 같은 번거로운 작업을 생략할 수 있게 되었다. 제네릭 사용법 class Bo..
I/O 입출력 입출력(I/O)이란 Input과 Output의 약자로 입력과 출력을 말한다. 흔히 줄여서 입출력이라고들 많이 말하며 컴퓨터 내부 또는 외부 장치와 프로그램간의 데이터를 주고 받는 것을 말한다. 예를들어 파일이나 네트워크에서 데이터를 읽고 파일에 쓰거나 네트워크를 통해 응답을 하는 동작 모두 입출력이라고 한다. Java.io & java.nio java에는 java.io와 java.nio 2가지 IO 패키지가 존재한다. nio는 new-io라고도 하며 Non-Blocking io라고도 한다. IO NIO Stream Buffer 단방향 양방향 Blocking IO Non blocking IO Selectors java.io 스트림 (Stream) Java에서 어느 한 쪽에서 다른 쪽으로 데이..
Ansible 구성 파일 Ansible의 작동 방식을 구성하는 파일들을 말한다. 인벤토리 파일의 위치, 관리 노드에 연결하는 방법, 연결 한 후 작동 방법 등 많은 구성을 지정할 수 있다. 기본 Ansible 구성 파일 위치는 `/etc/ansible/ansible.cfg`이다. Ansible 구성 파일 우선순위 우선 순위가 높은 파일에 정의된 값이 이전 정의된 값보다 우선시 된다. `ANSIBLE_CONFIG`환경변수 현재 디렉토리의 `ansible.cfg` 홈 디렉토리의 `~/.ansible.cfg` `/etc/ansible/ansible.cfg` Ansible 작동 방식 제어 우선 순위 Ansible 작동 방식을 제어하기 위해 Ansible 구성 파일 외에도 ansible 명령의 옵션, 플레이북 키..