일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- http
- 스프링부트
- ./gr
- 스프링 부트 테스트
- 로그인/로그아웃
- JPA
- ./gradlew docker
- 어노테이션
- RESTfull API
- 프레젠테이션 계층
- IPC
- 로그인 인증 흐름
- 스프링
- @temproal
- 스프링부트 계층구조
- Java
- ORM
- 세션기반 인증
- MSA
- 스프링부트 구조
- spring
- 비동기
- 동기
- formmatted
- 비즈니스 계층
- 작업명중복
- 퍼시스턴스 계층
- JWT
- java I/O
- 토큰기반 인증
- Today
- Total
목록Java (9)
[DEV] J-Jay
I/O란? Input & Output(입출력) 입력 : 키보드, 네트워크, 파일 출력 : 화면, 네트워크. 파일 Java I/O도 객체 I/O에서 사용되는 객체는 어떤 대상으로 부터 읽어들여, 어떤 대상에게 쓰는 일을 한다. Java I/O는 Decorator 패턴 1. Component 인터페이스: Decorator 패턴에서 Component는 데코레이션될 객체와 데코레이터 객체에 공통으로 구현할 메서드를 정의 public interface Component { public void operation(); } 2. ConcreteComponent 클래스: Component 인터페이스를 구현하는 구체적인 객체 public class ConcreteComponent implements Component {..
인터페이스 객체 지향 프로그래밍에서 추상화를 통해 코드의 재사용성과 유지보수성을 높이는 기술 중 하나이다. 인터페이스는 메소드의 선언만으로 기능을 정의하고, 이를 구현하는 클래스에서 모든 메소드를 구현해야 한다. 글로만 설명하면 이해가 힘드니 직접 구현을 해보겠다. 예제: 동물 인터페이스 interface Animal { public void makeSound(); } class Dog implements Animal { public void makeSound() { System.out.println("멍멍"); } } class Cat implements Animal { public void makeSound() { System.out.println("야옹"); } } public class Main ..
Java Generic Generic은 JDK 1.5부터 도입된 기능 중 하나로, 서로 다른 타입의 객체들을 처리할 수 있는 재사용 가능한 코드를 만들 수 있도록 해준다. "Generic" 타입을 정의할 수 있도록 하여, 모든 종류의 객체를 나타낼 수 있도록 해준다. 예를 들어, 다음과 같이 제네릭 타입을 정의할 수 있다. class MyGenericClass { // ... } 여기서 T는 타입 매개변수이다. 제네릭은 클래스이름 뒤나, 메소드의 리턴타입 앞에 붙을 수 있다. 부분은 T라는 이름의 제네릭 타입을 선언한다는 것을 의미한다. T는 Type의 약자기 때문에 많이 사용되는 문자이지 꼭 T를 쓸필요는 없다. (T가 아니라 E나 D등의 단어를 사용해도 된다.) Generic 의 장점 타입 안정성: ..
String은 왜 final로 선언되어 있을까? public final class String implements java.io.Serializable, Comparable, CharSequence, Constable, ConstantDesc { String String str1 = new String("Hello"); // new 연산자를 통해 객체 생성 String str2 = "Hello"; // 리터럴 형태로 바로 할당 java에서 문자열(String) 타입의 특징은 참조 타입임에도 불구하고 직접 new 연산자를 통해 객체를 생성하는 방법이 아닌, 문자열 리터럴 형태로 사용된다 String의 불변성 (Immutable) String은 최초에 한 번 생성되면 절대로 그 값이 변하지 않는다. Stri..
조건문 if if는 제어문 중의 하나다 순차적인 흐름안에서 조건에 따라 제어를 할 필요가 있을 경우 사용한다 /* if(조건문){ 조건문이 참일 경우 실행 } */ public class IfExample { public static void main(String[] args){ int a = 10; if (a > 5){ System.out.println("a는 5보다 크다"); } } } /* if(조건문) { 조건문이 참일 때 실행 } else { 조건문이 거짓일 때 실행 } */ public class IfExample { public static void main(String[] args) { int a = 1; if( a > 5){ System.out.println("a는 5보다 크다"); } ..
bit(비트) 와 byte(바이트) bit(비트)는 컴퓨터가 처리하는 정보의 최소 단위 1개만으로는 많은 양의 데이터를 나타내기에 부족하여, 8개 비트를 묶은 byte(바이트)를 사용한다 1byte = 00000000 부터 111111111 까지 값 표현 가능하다 1byte를 정소루 표현하면 0 ~ 254까지 표현 가능하다 1byte를 16진수로 표현하면 00 ~ FF까지 표현 가능하다 비트 연산자의 종류 & | ^ ~ >>> and or xor not 좌측 shift 우측 shift 우측 양수화 (우측 shift) > 는 명시된 수 만큼 비트들을 오른쪽으로 이동시킨다 (부호화비트 제외) public class BitExample { public static void main(String[] args){..
정수는 실수에 포함 된다 실수 유리수 무리수 정수 정수가 아닌 유리수 양의 정수 0 음의 정수 double형에 정수 저장 public class DoubleToInt { public static void main(String[] args){ double d1 = 50; double d2 = 5000L; } } dobule형 실수 Type에 정수 값은 대입이 가능하다 Int형에 실수 저장 public class IntToDouble { public static void main(String[] args){ int a = 50.0; //java: incompatible types: possible lossy conversion from double to int int b = 100.5f; //java: in..
Boolean 기본형 타입 중 논리형 타입은 boolean를 사용한다 결과는 참(true) or 거짓(false)으로 나온다 초기화하지 않으면 기본적으로 false 값을 가진다. 1byte(8bit) 메모리를 사용한다 1bit만으로도 참(1)과 거짓(0)을 표현할 수 있지만 컴퓨터가 자료를 표현하는 최소 단위가 1byte public class Test { static boolean a; public static void main(String[] args){ System.out.println(a); //false } } 메소드 안에서 변수를 선언한 후 초기화 하지 않고 사용하면 오류가 발생한다 public class Test { public static void main(String[] args){ bo..
Java Complie Java 파일을 컴파일하려면 javac라는 프로그램이 필요하다 javac = Java + Compiler를 말한다 javac Hello.java cmd 창에서 위의 명령어를 입력하면 Hello.java라는 파일을 읽어 컴파일하게 된다 컴파일을 성공하면 Hello.class 파일이 생성이 되며, 실패하면 오류메시지를 보여준다 Hello.class 파일은 byte(바이트) 파일이다 byte는 기계어 이며 2진수로 되어 있고 CPU가 알아들을 수 있도록 하는 언어이다 Hello.java를 Notepad나 다른 Editor 도구로 열어보면 알아볼 수 있지만 Hello.class는 알아볼 수 없다