Java
-
싱글톤 패턴(Singleton Pattern)Java/디자인 패턴 2023. 6. 19. 23:09
디자인 패턴 - 프로그램 설계 시에 발생했던 문제점들을 객체 간의 상호 관계를 통하여 해결할 수 있도록 만들어 놓은 규약의 형태 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴은 디자인 패턴의 다양한 종류 중 가장 흔하고(?) 자주 들어보신 분들이 계실 것 같습니다. 말 그대로 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴으로, 보통 하나의 클래스를 기반으로 여러개의 인스턴스를 만들 수 있지만, 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 이를 기반으로 로직을 만드는데 쓰입니다. Ex) 데이터베이스 연결 모듈 싱글톤 패턴의 장점 인스턴스를 생성할 때 드는 비용이 줄어든다. 싱글톤 패턴의 단점 의존성이 높아진다. ( 객체지향 5대 원칙 중, 개방-폐쇄 원칙 문제 발생 ) TDD(테..
-
[Spring Boot] Spring boot + GPT 3.5를 활용한 CS 챗봇 앱Java/Spring boot 2023. 6. 15. 17:10
앱스토어 링크 : https://apps.apple.com/app/learnable/id6449747626 Learnable “당신의 CS 학습 파트너“ Learnable과 함께 효과적으로 CS를 공부해보세요. [No. 1 개발 직군 기술 면접 파트너] ■ 과목 선택 기능 - 다양한 과목 집중 학습 자료구조, 운영체제, 데이터베이스 등 apps.apple.com 플레이스토어 링크 : https://play.google.com/store/apps/details?id=inha.capstone.learnable Learnable(러너블)-당신의 CS 학습 파트너 - Google Play 앱 당신의 CS 학습 파트너 play.google.com Spring boot + GPT-3.5-Turbo를 활용한 컴..
-
[Spring Security] WebSecurityConfigurerAdapter 에러Java/Spring Security 2023. 3. 5. 01:14
가끔 구버전 Spring security 강의나 자료를 보면 SecurityConfig 파일에 WebSecurityConfigurerAdapter를 상속받아서 사용하여 configurer 메소드를 오버라이딩 하여 설정하는 방법을 사용했었다. 예시 @Configuration @EnableWebSecurity // 스피링 시큐리티 필터가 스프링 필터체인에 등록이 됨. public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override // 코드 목록 } 허나 WebSecurityConfigurerAdapter는 현재 deprecated 됐으므로, 현재는 SecurityFilterChain을 리턴하는 메소드를 빈에 등록하는 방식으로, 컴포넌..
-
[Spring] Restful API란 ?Java/Spring boot 2022. 2. 22. 19:23
Restful API란 ? HTTP 통신에서 어떤 자원에 대한 CRUD(Create , Read , Update , Delete) 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식 즉 , Rest란 어떤 자원에 대해 CRUD 연산을 수행하기 위해 URI(Resource)로 요청을 보내는 것으로, Get/Post 등의 방식을 사용하여 요청을 보내며, 요청을 위한 자원은 특정한 형태로 표현된다. 그리고 이러한 Rest 기반의 API를 웹으로 구현한 것이 Restful API이다. 그렇다면 API는 무엇일까? API는 애플리케이션 소프트웨어를 빌드하고 통합하기 위한 정의 및 프로토콜 세트인 애플리케이션 프로그래밍 인터페이스(Application Programming Interface..
-
[Spring] 객체 지향 설계 5대 원칙 SOLIDJava/Spring boot 2022. 2. 22. 17:58
객체 지향 설계 5대 원칙 SOLID 1. SRP 단일 책임 원칙 (Single Responsibility Principle) 하나의 클래스는 하나의 책임만 가져야 함. 응집도는 높고, 결합도는 낮게 설계하라는 원칙. 변경이 있을 때, 파급효과가 적으면 원칙을 잘 따른 것. 예시 코드 class B{ main(){ A a = new A(); a.getName(); } } class C{ main(){ A a = new A(); a.getId(); } } 위 코드에서 볼 수 있듯이, A 클래스는 B와 C에서 사용되지만 , B 클래스에선 getName() 메소드를 호출하고, C 클래스에선 getId() 메소드를 호출하는 것을 볼 수 있다. 이 경우에 A 클래스는 B 클래스나 C 클래스에서 추가/변경되는 기능..