| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- RDBMS
- 어노테이션
- restAPI
- SQL
- 스프링시큐리티
- 자바
- 쿼리
- 스프링오류
- server
- HTTP
- 서버
- Java
- 의존성주입
- Swagger
- 시큐리티
- MariaDB
- 오버라이딩
- JWT
- SpringSecurity
- 상태코드
- Static
- 스웨거
- 인텔리제이오류
- 스프링RESTAPI
- HTTP상태코드
- application.yml
- JPA
- API
- spring
- 스프링
- Today
- Total
목록Java (18)
취뽀몽
다른 분들의 깃을 구경하다가 매개변수나 클래스에 final을 선언해준 것을 보고 수정할 수 없다면 어떤 이점이 있을까? 라고 생각하게 되어 불변 클래스에 대해 공부해봤다. 불변 클래스란 인스턴스의 내부 값을 수정할 수 없는 클래스를 말한다. 즉, 불변 인스턴스의 정보는 객체가 소멸되기 전까지 달라질 수 없다는 것이다. 자바 라이브러리의 불변 클래스 예시로는 String이나 BinInteger, BigDecemal 등이 있다. 클래스를 불변으로 지정해두면 가변 클래스보다 설계와 구현 및 사용이 쉽고 오류가 생길 가능성이 적어져서 안전하다는 장점이 있다. 불변 클래스를 만들 때 몇 가지 규칙이 있다. 1. 객체의 상태를 변경하는 메소드(변경자)를 제공하지 않는다. (ex. setter) 2. 클래스를 확장할..
자바를 사용하는 사람이라면 JDK와 JRE는 모두 알 것이라고 생각한다. 명칭은 알지만, 그 역할이 무엇인지에 대해 알아보고자 한다. 1. JRE(Java Runtime Environment) 자바 실행 환경이란 뜻으로 자바 프로그램을 실행하는데 필요한 것을 모아둔 패키지이다. 자바 가상 머신(Java Virtual Machine), 라이브러리(Java Class Libraries), 클래스 로더(Java Class Loader)가 포함되어 있다. - bin/ : 자바 실행 엔진을 포함한다. JVM을 실행한다면 java를 갖는다. - conf/ : 사용자 편집을 위한 구성 파일을 포함한다. - lib/ : .class파일이 있는 modules를 포함하여 여러 보조 파일이 있다. 2. JDK(Java De..
Private 생성자는 싱글톤 패턴에서 주로 봤을 것이다. private 생성자는 특정 클래스의 인스턴스화를 막기 위해 사용된다. 간단히 말해, 클래스 자체가 아닌 다른 위치에서 클래스 인스턴스가 생성되는 것을 방지한다. public 및 private 생성자를 함께 사용하면 클래스를 인스턴스화하는 방법을 제어할 수 있는데, 이를 생성자 위임이라고 한다. private 생성자는 해당 클래스 내부에서만 호출 가능하며, 외부에서는 인스턴스를 생성할 수 없다. 여기서, 특정 클래스의 인스턴스화를 막으면 어떤 점이 좋은 것일까? 우선 클래스가 정적 메소드나 상수만을 제공하는 유틸리티 클래스(Utility Class)인 경우, 해당 클래스를 인스턴스화할 필요가 없다. 인스턴스화를 제한함으로써 불필요한 객체 생성을 ..
Q. 객체 지향 언어를 이용해 객체 지향 프로그램을 올바르게 설계해 나가는 방법이나 원칙이 존재할까? A. SOLID 법칙이 있다. 1. SRP(Single Responsibility Principle) : 단일 책임 원칙 2. OCP(Open Closed Principle) : 개방 폐쇄 원칙 3. LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 4. ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 5. DIP(Dependency Inversion Principle) : 의존 역전 원칙 응집도는 높이고 결합도는 낮추라는 고전 원칙을 객체 지향의 관점에서 재정립한 것이다. 좋은 소프트웨어 설계를 위해서는 결합도는 낮추고 응집..