일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ORM
- IPC
- 퍼시스턴스 계층
- 세션기반 인증
- 동기
- 어노테이션
- MSA
- Java
- java I/O
- 프레젠테이션 계층
- 스프링부트 계층구조
- RESTfull API
- formmatted
- 스프링부트 구조
- @temproal
- spring
- 토큰기반 인증
- ./gr
- http
- 스프링부트
- 로그인 인증 흐름
- 스프링
- 비동기
- 스프링 부트 테스트
- 로그인/로그아웃
- JPA
- JWT
- 비즈니스 계층
- ./gradlew docker
- 작업명중복
- Today
- Total
목록Back-end (69)
[DEV] J-Jay
추상 클래스 ( abstract calss) Java에서 추상 클래스는 abstract 키워드로 정의되며, 일반 클래스와 달리 객체를 직접 생성할 수 없는 클래스이며 상속을 통해서만 사용된다. 상속받은 하위 클래스는 추상 메소드를 반드시 오버라이딩하여 구현해야 한다. 추상 클래스는 객체를 생성할 수 없으므로, 일반적으로 인터페이스와 함께 사용된다. 추상 클래스는 인터페이스와 달리 일부 메소드를 구현할 수 있으며, 추상 메소드도 함께 선언할 수 있다. 추상 클래스 내부에서 선언된 추상 메소드는 메소드 본문(body)이 없으며, 선언부만 존재한다. 추상 클래스는 일반 클래스와 마찬가지로 생성자를 가질 수 있다. 하지만 추상 클래스의 생성자는 하위 클래스에서 생성자를 호출할 때 사용된다. 만약 하위 클래스에서..
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..
Java에서 static은 객체가 아닌 클래스에 속하는 키워드이다. 클래스 변수 클래스 변수(static 변수)는 클래스 내부에서 선언되며 모든 객체가 공유하는 변수이다 클래스 변수는 객체를 생성하지 않고도 사용할 수 있으며, 클래스 이름으로 접근한다. public class MyClass { static int classVar = 0; int instanceVar = 0; } 클래스 메서드 클래스 메서드(static 메서드)는 클래스 내부에서 선언되며 객체를 생성하지 않고도 호출할 수 있는 메서드다. 클래스 메서드는 클래스 변수만 사용할 수 있으며, 인스턴스 변수를 사용할 수 없다 public class MyClass { static int classVar = 0; int instanceVar = 0;..
JVM(Java Virtual Machine) JVM(Java Virtual Machine)은 Java 프로그램을 실행하기 위한 가상 머신이다 Java는 컴파일러를 통해 바이트 코드(Bytecode)로 변환되며, 이 바이트 코드는 플랫폼에 독립적이다. 즉, 같은 바이트 코드(Bytecode)를 가진 Java 프로그램은 어떤 플랫폼에서도 실행이 가능하다 JVM은 자바 코드에서 메모리 관리, 스레드 관리 등을 담당한다 JVM은 자바 언어의 중요한 특징 중 하나로, 플랫폼 독립성을 제공하면서도 높은 이식성, 안정성, 보안성을 보장한다. Java의 main method public static void main(String[] args) { // 여기에 코드를 작성합니다. } Java에서 main 메소드는 프로..
Mehtod 선언 //[]은 생략가능 [접근제한자] [static] 리턴 type 메소드이름([매개변수, ...]){ 실행문 ... } public static void main(String[] args){ } 매개변수 O / 반환값 O public int calculate(int x) { ... return x; } 매개변수 X / 반환값 X public void test(){ ... } 매개변수 O / 반환값 X public void test(int x){ ... } 매개변수 X / 반환값 O public int test(){ ... return 1; }
Class(클래스) 클래스는 필드와 메소드를 가진다. 필드는 클래스의 속성이라고 할 수 있다 메소드는 클래스의 기능이라고 할 수 있다 선언방법 첫 문자가 문자나 _ , $의 특수문자로 시작되어야 한다. 숫자로 시작할 수 없다 JDK8에스는 한글자로 이뤄진 변수는 예약어로 정의되어 있어 사용할 수 없다 자바의 예약어는 식별자로 사용할 수 없다 자바의 식별자는 대소문자를 구분한다 식별자 길이는 제한이 없고 공백은 포함할 수 없다 관례 클래스 명은 대문자로 시작한다 (소문자로도 가능하지만 개념이 없는걸로 보일 수 있다) 단어와 단어가 만날 경우 2번째 단어의 시작은 대문자로 시작한다 낙타의 등처럼 오르락 내리락 한다고 하여 낙타 표기법(Camel Case)라고 한 접근제한자 class 클래스이름 { 필드들; ..
객체지향 프로그래밍 객체 지향(Object oriented) 프로그래밍이란? 우리가 실생활에서 쓰는 모든 것을 객체라 하며, 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다 Class(클래스) = 설계도면 Object(오브젝트) / Instance(인스턴스) 설계도면을 보고 실제 만들어진 것을 Object(오브젝트) or Instance(인스턴스)라고 한다 Referecne Variable(참조형 변수) Instance(인스턴스)를 특별한 이름으로 불러주고 싶다면 참조형 변수를 선언한다 Book b = new Book(); //b가 참조형 변수 참조되지 않은 인스턴스는 쓰레기(Garbage)다
EJB(Enerprise Java Beans)이란? (위키백과) 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 어플리케이션이다. EJB는 서버 어플리케이션의 개발을 용이하게해 다양한 제품과 플랫폼간의 이동성을 실현하기 위해 비지니스로직과 시스템 서비스 로직을 분산해 그 사이의 규약을 규정하고 있다. 비지니스 로직을 탑제한 부품을 "Enterprise Bean"이라 한다. Database처리, Transaction처리등의 시스템 서비스를 이용한 로직을 감추고 있는 부품을 "컨테이너"라고 불린다. 왜 등장? ■ 어플리케이션에서 필요로 하는 비지니스로직 뿐만 아니라, 시스템 서비스를 이용한 데이터베이스처리와 트랜젝션처리의 프로그램이 필요로 하..
조건문 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보다 크다"); } ..