여니의 프로그래밍 study 225

[REST API] REST API가 뭐야 도대체! (+API, HTTP Method, HTTP Status Code ... )

REST API, 어디서 많이 들어본 개념이지만, 하지만 말로 설명하지 못하는 1인,, (남한테 설명 못하면 그건 알고 있는 게 아니라 수박 겉핥기 식으로 두루뭉실하게 알고 있는 겁니다..) 그래서 제대로 파보기로 했습니다. 방법도 나중에 알아보기 쉽도록 정리해두는 기념으로 해서.. 포스팅을 시작해보겠습니다.. 일단 API 개념에 대해서 짧게 짚고 넘어가볼게요. API란? : Application Programming Interface의 약자, 예시를 들어서 쉽게 설명해보면, 레스토랑에 손님, 점원, 주방이 있다. 1. 점원은 메뉴판을 손님에게 보여준다. 2. 점원은 손님이 고른 메뉴를 접수받고, 주방에 전달한다. 3. 주방에서 음식이 나오면 점원은 손님에게 서빙한다. 여기서 API가 어느 역할일까요? ..

[스프링부트] 싱글톤 컨테이너

출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 순수한 DI 컨테이너 순수한 DI 컨테이너인 AppConfig는 요청을 할 때 마다 객체를 새로 생성한다. 고객 트래픽이 초당 100이 나온다면 초당 100개 객체가 생성되고 소멸된다. 즉 메모리 낭비..

[스프링부트] 스프링 컨테이너와 스프링 빈

출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 다형성 https://eboong.tistory.com/407 [Ch2] 객체 지향 프로그램, 객체 지향 특징 (상속,다형성,추상화,캡슐화), 오버라이딩 및 오버로딩 > : 초기에는 프로그램의 규모가 ..

[스프링부트] 스프링 컨테이너와 스프링 빈

출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 다형성 https://eboong.tistory.com/407 [Ch2] 객체 지향 프로그램, 객체 지향 특징 (상속,다형성,추상화,캡슐화), 오버라이딩 및 오버로딩 > : 초기에는 프로그램의 규모가 ..

[스프링부트] loC, DI, 컨테이너

출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard loC (Inversion of Control) : 제어의 역전 : 기존 프로그램은 구현 객체가 스스로 서버 구현 객체를 생성하고 연결, 실행까지 하며 모든 제어 흐름을 스스로 조종했다. 그러나 AppConfig가 등장하고 난 이후로는 AppConfig가 프로그램의 제어 흐름을 조종한다. 따라서 구현 객체(OrderServiceImpl)는 인터페이스들을 호출은 하지만 어떤 구현 객체들이 실행되고 있는지를 모른다. DI (Dependency Injection) ..

[스프링 핵심 원리 이해2] - AppConfig, DI

게시글 참조 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 추상(인터페이스)에만 의존하게끔 설계하여 DIP, OCP 위반 방지하는 방법 >> AppConfig 설계 AppConfig = 공연 기획자 역할. : 애플리케이션의 전체 동작 방식을 구성(..

[IntelliJ] 단축키 모음

자동완성 Command + Enter test class 만들기 command + shift + T 생성자 자동 생성 (generate -> constructor) control + Enter (); 자동 완성하기 command + shift + Enter 변수명 자동 완성 new 생성자() 작성 후 커서를 맨 앞으로 옮긴 다음 command + option + v println -> sout soutv (변수명 포함 출력문) soutm (메소드 포함 출력문) main -> psvm for 문 자동생성 -> iter 해당 생성자 코드로 바로 옮겨지는 단축키 command + B 위치 상관없이 엔터 shift + Enter 클래스 찾기 command + o 과거 히스토리 보기 command + E Extr..

UML 다이어그램

(Unified Modeling Language : 객체 모델링 언어 또는 통합 모델링 언어) - 시스템 설계, 요구분석, 구현 등의 과정에서 사용되는 모델링 언어 - 산출물을 명세화, 시각화, 문서화 할 때 사용하는 언어 건물을 짓기 위한 설계도와 비슷한 역할! - UML의 목적 : 하나의 시스템을 표현하기 위한 표준적인 방법을 제공 즉 표기법의 표준화를 위한 모델링 언어 시스템을 여러가지 시각에서 볼 수 있도록 뷰를 제공한다. 이러한 뷰의 집합을 모델이라고 한다. - UML을 사용하는 이유 : 개발자끼리 설계 개념에 대한 의견을 주고 받을 때 굉장히 편리하다. 대규모 소프트웨어 구조의 로드맵을 만들 때 유용하다. - UML의 종류 : UML은 크게 구조와 행위, 두 가지의 다..

[스프링부트] 객체 지향 설계와 스프링

- 다형성 + OCP, DIP를 가능하게 지원해준다. - DI 컨테이너 제공 - 클라이언트의 코드 변경 없이 기능을 확장할 수 있다. - 쉽게 부품 교체하듯이 개발할 수 있다. 모든 설계에 역할과 구현을 분리하자! - 인터페이스를 도입하면 추상화라는 비용이 발생한다. - 기능 확장 가능성이 없다면 구체 클래스를 사용하고, 향후 필요할 때 리팩터링해서 인터페이스를 도입하는 방법이 있다. 객체지향 책 추천 : 객체지향의 사실과 오해 스프링 책 추천 : 토비의 스프링 JPA 책 추천 : 자바 ORM 표준 JPA 프로그래밍 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B..

[스프링부트] 객체 지향 설계 SOLID 원칙

> : 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리! (1) SRP (Single Responsibility Principle) : 단일 책임 원칙 - 한 클래스는 하나의 책임만을 가져야한다. - 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면? 단일 책임 원칙을 잘 따른 것! ex) UI 변경, 객체의 생성과 사용을 분리 (2) OCP (Open/Closed Principle) : 개방-폐쇄 원칙 *** - 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀있여야한다. - 다형성을 활용 - 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현 - 지금까지 배운 역할과 구현의 분리를 생각해보자 - 객체를 생성하고, 연관관계를 맺어주는 별도의 조..