캡슐화 외부로부터의 직접 접근을 막아 데이터를 보호한다 Setter를 통해 간접접근을 허용한다 추상화 상속 두 클래스를 부모와 자식으로 관계를 맺어주는 것 기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용) JAVA는 단일 상속만을 허용한다 다형성 여러가지
📌 이것이 자바다 유튜브 인강으로 후루룩 정리System.out.println() 단점: 출력형식 지정불가, 10진수만 출력System.out.printf() : 출력형식 지정 가능⎻지시자: %b, %d, %o, %x, %f, %e, %c, %sScanner'0' 을
📌 자바의 정석 유튜브 무료 강의(/171)객체지향 언어 = 프로그래밍 언어 + 객체지향개념코드 재사용성이 높다유지보수가 용이하다중복코드 제거캡슐화상속추상화다형성클래스: 객체를 정의, 객체를 생성하기 위해 필요하다 (붕어빵 기계)객체: 실제로 존재하는 사물, 개념 (
실행 중인 프로그램. 자원과 쓰레드로 구성프로세스 내에서 실제 작업을 수행. 모든 프로세스는 최소 하나의 쓰레드를 갖고 있다. 프로세스보다 쓰레드 생성 비용이 더 적다시스템 자원을 보다 효율적으로 사용할 수 있다사용자에 대한 응답성이 향상된다작업이 분리되어 코드가 간결
"컴파일" 시 타입을 체크해주는 기능객체 타입 안정성을 높이고 형변환의 번거로움을 줄여주어 코드가 간결해짐Box<T'> : 지네릭 클래스T : 타입 변수Box : 원시 타입참조 변수와 생성자의 대입된 타입은 일치해야 한다지네릭 클래스 간의 다형성은 성립한다(대입된
다수의 객체를 다루기 위한 표준화된 프로그래밍 방식컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공java.util패키지에 포함여러 객체(데이터)를 모아 놓은 것표준화, 정형화된 체계적인 프로그래밍 방식자유도는 떨어지나, 생산성 증대, 유지보수 용이기능만 제공
모든 클래스의 최고 조상오직 11개의 메서드만을 가지고 있다.객체 자신과 주어진 객체를 비교한다 ☞ 객체의 "주소"를 비교한다주소가 같으면 true, 다르면 false인스턴스 변수의 "값"을 비교하도록 equals()를 오버라이딩해야 한다.객체의 해시코드(hash co
클래스 내부클래스 클래스 안의 클래스 장점 내부클래스에서 외부클래스의 멤버들을 쉽게 접근할 수 있다 코드의 복잡성을 줄일 수 있다(캡슐화) 내부클래스 종류 인스턴스 클래스 스태틱 클래스 지역 클래스 익명 클래스 : 클래스의 선언과 객체 생성을 동시에 하는 이름없는
오직 상수와 추상 메서드만 존재하는 일종의 추상 클래스추상화 정도가 높아서 밑그림만 있는 기본 설계도의 개념으로 이해할 수 있다상수와 '추상' 메서드만 존재하는 일종의 '추상' 클래스=> 이미 정의에서 추상화 개념을 내포하고 있음을 알 수 있다인터페이스도 상속이 가능하
자바 언어 기반의 프레임워크 → 객체 지향 언어객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크⇒ 좋은 객체 지향 애플리케이션을 개발할 수 있도록 도와준다스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용Tomcat 같은 웹서버를 내장해서 웹서버를
프로젝트 생성 빌드 후 preferences에서 Build and run using, Run tests using 을 IntellJ로 수정한다 비즈니스 요구사항과 설계 ⇒ 인터페이스를 만들고 구현체를 언제든지 갈아 끼울 수 있도록 설계를 한다 우선은 순수한 JA
정률 할인 정책을 추가할 경우, 객체지향 설계 원칙을 잘 준수했을까?할인 정책을 변경하려면 클라이언트인 OrderServiceImpl의 소스코드를 고쳐야 한다.추상 인터페이스 뿐만 아니라 구현 클래스에도 의존하고 있다 ⇒ DIP 위반 & OCP 위반DIP - 구체에
스프링 컨테이너 : ApplicationContext (인터페이스)AnnotationConfigApplicationContext(구현체)스프링 컨테이너 생성스프링 빈 등록스프링 빈 의존관계 설정조회 대상 스프링 빈이 없다면 NoSuchBeanDefinitionExcep
오버라이드 애노테이션 명시 유무의 차이? 출력결과: 안녕하세요, 저는 hj 입니다 안녕! 결과: 컴파일 오류 발생 아래와 같이 수정해줘야 한다 오버라이드 성립 조건 애노테이션 명시 이유
대부분의 스프링 애플리케이션은 웹 애플리케이션이다웹 애플리케이션 - 여러 고객이 동시에 요청을 한다우리가 만든 스프링 없는 순수한 DI 컨테이너인 AppConfig는 요청 시 마다 객체를 새로 생성한다(메모리 낭비)⇒ 싱글톤 패턴 : 객체가 1개만 생성되고 공유하도록
등록해야할 스프링 빈이 많아지면 누락 등의 문제가 발생⇒ 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능 제공⇒ 의존관계도 자동으로 주입하는 @Autowired 기능도 제공@ComponentScan을 설정정보에 붙여준다각 클래스가 컴포넌트 스
의존관계 자동 주입은 스프링 컨테이너가 관리하는 스프링 빈이어야 동작한다생성자 주입생성자 호출 시점에 딱 1번만 호출되는 것이 보장된다불변, 필수 의존관계에 사용생성자가 딱 1개만 있으면 @Autowired를 생략해도 자동 주입된다수정자 주입(Setter)선택, 변경
회원 - username, age기능 - 회원 저장 기능, 회원 목록 조회 기능서블릿 덕분에 동적으로 원하는 HTML을 만들 수 있지만, 복잡하고 비효율적이다.JAVA 코드로 HTML을 만들어 내기 보다는, HTML에 동적으로 변경할 부분만 자바 코드를 넣을 수 있다면
객체를 직접 생성하는 게 아니라 외부에서 객체를 생성한 후 주입시켜주는 방식애플리케이션 실행 시점에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결되는 것스프링은 DI라는 방식을 이용하여 모듈간의 결합도를 낮추어준다DI
소프트웨어로 해결하고자 하는 문제 영역 => 비즈니스 영역비즈니스 도메인을 중심으로 시스템을 설계하는 방법데이터베이스 스키마나 기술적인 제약조건에 우선순위를 두지 않고, 비즈니스 요구사항을 우선으로 하여 설계도메인의 모델과 로직에 집중하는 개발 방식복잡한 도메인을 해결
도메인 로직이 포함된 객체로 데이터베이스에 저장되고 관리된다데이터베이스에 저장되는 객체식별자를 갖는다데이터 저장 및 검색을 위한 메서드를 제공데이터 전달을 위한 객체로 불변성을 가지며 로직을 포함하지 않는다레이어간 데이터 교환을 위한 객체데이터만 포함하고 로직은 포함하
☑️ JDK 버전 기존 8에서 11로 업데이트하기☑️ IDE: STS4, IntelliJ(유료버전) 설치하기☑️ 웹서버: Tomcat9 설치하기❌ DB: MySQL❌ 기타: AWS, MavenSTS4 Tomcat 연결 후, 프로젝트 우클릭 시 run on server가
Presentation Layer는 사용자와 애플리케이션 간의 상호작용을 처리하는 계층이다. 이 계층에서는 요청의 유효성 검증, 응답의 생성, 응답 형식의 결정 등을 수행한다사용자의 요청을 받아서 해당 요청을 처리하기 위해 Application Layer의 서비스를 호
웹에서 데이터를 주고받기 위한 프로토콜 HTTP는 클라이언트와 서버 간의 통신을 위해 요청(Request)과 응답(Response)을 사용한다.HTTP 메서드는 클라이언트가 서버에게 요청을 보낼 때 사용하는 명령어로, 8가지 종류가 있다.GET: 서버로부터 리소스를 조
Spring은 다양한 어노테이션을 제공하여 개발자들이 손쉽게 애플리케이션을 개발할 수 있도록 지원한다.빈번하게 사용되는 어노테이션만 하단에 정리해보았다.@Autowired: 의존성 주입을 위해 사용되며, 자동으로 Bean을 주입한다.@Bean: Bean 객체를 생성하기
REST(Representational State Transfer)는 웹 서비스에서 자원을 이름(URI)으로 구분하여 해당 자원의 상태(리소스)를 주고 받는 아키텍처 스타일이다RESTful API는 이러한 REST 아키텍처를 기반으로 만들어진 API로, 클라이언트와 서
Spring Framework에서 DI(Dependency Injection)를 달성하는 방법은 크게 3가지가 있다: 객체를 생성할 때 생성자를 통해 의존성을 주입하는 방식UserServiceImpl 클래스는 UserRepository 인터페이스에 의존한다. UserS