패키지(package) 클래스의 묶음 클래스들끼리 그룹 단위로 묶어놓으므로써 클래스를 효율적으로 관리할 수 있다. 클래스의 실제 이름(full name)은 패키지명을 포함한 것이다. 같은 이름의 클래스여도 서로 다른 패키지에 존재하는 것이 가능하므로 자신만의 패키지 체계를 유지함으로써 다른 개발자가 개발한 클래스와 이름이 충돌하는 것을 피...
[Java] 상속
상속 (Inheritance) 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있다. 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 수정이 매우 용이해진다. 사용방법 extends 사용 class Parent {} class Child extends Parent {...
[Java] 변수와 메서드
변수 변수의 종류 클래스변수 (class variable) 선언 방법 : 클래스 영역에 선언하고 변수 앞에 static을 붙인다. 사용 방법 : 클래스이름.클래스변수 모든 인스턴스가 공통된 저장공간(변수)을 공유하게 된다. 클래스가 메모리에 로딩될 때 생성되어 프로그램이 종료될 때까지 유지된...
[Java] 객체
클래스, 객체, 인스턴스 클래스 정의 : 객체를 정의해놓은 것 용도 : 객체를 생성하는 데 사용 객체 정의 : 실제로 존재하는 것, 사물 또는 개념 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름 인스턴스 인스턴스화(instantiate) : 클래스로부터 객체를 만드는 과정 인스턴스(instance) : 클래스...
[OOP] 객체지향
객체지향 프로그래밍이란 OOP, Object Oriented Programming의 약자 객체지향 프로그래밍이란 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. 장점과 단점 장점 코드를 재사용할 때 용이합니다. 다른 사람...
[Web] 웹 동작방식
웹 브라우저에서 URL을 입력했을 때 일어나는 일 웹 브라우저에 URL을 입력하고 Enter 키를 누릅니다. 웹 브라우저가 도메인의 IP주소를 조회합니다. (먼저 캐시를 찾고, 그 다음 DNS를 검색합니다.) 웹 브라우저가 찾은 IP주소를 기반으로 서버와의 TCP 연결을 시작합니다. 웹 브라우저가 HTTP 요청을 ...
[Swagger] 스웨거 설명, 사용법
Swagger란 REST API 문서를 자동으로 생성해주는 오픈소스 프레임워크다. 기능 API 설계 API 개발 API 테스트 API 모킹 및 시각화 API 모니터링 API 관리 설정 Spring boot에 Swagger 적용 의존성 추가 Gradle dependencies { // ......
[Spring] 스프링 PSA 개념
PSA (Portable Service Abstraction) 일관성있는 서비스 추상화 Service Abstraction 어댑터 패턴을 적용해 같은 일을 하는 다수의 기술을 공통의 인터페이스로 제어할 수 있게 한 것 추상화 계층을 사용해서 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공해주는 것 ...
[Spring] 스프링 AOP 개념, 구현 방법
AOP (Aspect Oriented Programming) 관점 지향 프로그래밍 똑같은 코드가 여러 곳에 흩어져 있을 경우 수정할 때 여러 번 바꿔줘야 한다. 👉 공통적인 코드를 한 곳에 모아놓는다. class A { method a() { AAAA 안녕하세요. BBBB } method b() { ...
[Spring] Bean 등록과 의존성 주입(DI) 사용법
빈(Bean) Spring IoC Container가 관리하는 자바 객체 ApplicationContext가 알고있는 객체 (ApplicationContext.getBean()으로 얻어질 수 있는 객체) Bean만 의존성 주입이 된다. Bean 등록 Component Scanning Bean 설정파일에 직접 등록 Com...