전체 글
-
웹서버, WAS, Servlet스프링/MVC 2021. 11. 2. 22:24
김영한님의 스프링 MVC - 1편을 듣고 작성했습니다. 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., 원 www.inflearn.com 📗 웹서버 HTTP 기반으로 동작한다. 정적 리소스 및 기타 부가 기능 제공 정적 파일 (HTML, CSS, JS, 이미지, 영상)등 제공 NGINX, APARCH등이 있다. 📗 웹 애플리케이션 서버(WAS: Web application Server) HTTP 기반으로 동작 기존 웹서버가 하는 기능 모두 지원 프로그램 '코드'를 실행해서 애플리케이션 로직 수행..
-
싱글톤 패턴(Singleton Pattern)디자인 패턴 2021. 10. 28. 20:58
💡 싱글톤 패턴이란? GOF의 디자인 패턴중 '생성' 패턴에 속하는 패턴으로, 클래스에서 오직 '한 개'의 인스턴스만 인스턴스 화 할 수 있도록 규제하는 디자인 패턴 📗 싱글톤 패턴의 장점 클래스가 오직 한 개의 인스턴스만 가지고 있다고 확신 할 수 있다. 인스턴스 수를 제한 할 수 있다. 전역 변수에 액세스 함으로써 손쉽게 접근 할 수 있다. 📖 함께 쓰일 수 있는 패턴들 Abstract pattern, Factory Method, Builder, Prototype State pattern, Facade Pattern 📖 전역변수보다 싱글톤 패턴이 나은 점 불필요한 변수로 Global namespace를 훼손하지 않는다. 지연 할당과 초기화를 지원함으로써 사용하든 안하든 리소스를 소모하는 전역변수와 달..
-
Facade Pattern디자인 패턴 2021. 10. 27. 21:17
스프링 slf4j(Simple Logging Facade for Java) 를 공부하던 도중 못보던 디자인 패턴이 발견되었다. 그건 이름에도 나와있는 Facade Pattern이였고 이번에 구글링을 통해서 내용을 정리하기로 했다. 💡 Facade 패턴이란? 디자인 패턴의 '구조' 패턴 중 하나로 객체지향 개발법에서 많이 쓰인다. Facade(퍼사드)란 여러 복잡한 서브클래스들의 인터페이스를 한데 묶어 간략화된 인터페이스를 제공하는 객체를 말한다. 🧩 어떤 장점이 있나? 여러 서브시스템을 하나의 인터페이스로 둠으로써 복잡한 서브시스템을 사용하기 편하게 한다. 서브시스템의 '의존성'이 최소화된다. 📗 Facade Pattern UML 위의 클래스 다이어그램과 시퀀스 다이어그램에서 볼 수 있듯이 서브클래스들을..
-
IP / TCP / UDP / PORT / DNS인터넷 2021. 10. 19. 19:22
김영한님의 '모든 개발자를 위한 HTTP 기본 지식' 을 보고 개인적으로 작성한 내용입니다. https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., 웹 기술을 사용하는 개발자라면 누구나 OK!꼭 필요한 HTTP의 핵심을 알려드립니다. 📣 확인해주세요!본 강의는 자바 스 www.inflearn.com 통신 방법 컴퓨터 두 대가 있고 이 컴퓨터 사이에 데이터를 전송하려면 어떻게 해야할까? 모르긴 몰라도 둘 사이에 데이터를 전송해야하니 컴퓨터 사이에..
-
Mockito테스트 2021. 10. 19. 16:18
🍸Mockito 이란? 테스트를 위한 Mock를 구축할 수 있게 해주는 자바 진영의 프레임워크 🧩Mockito Syntax 스프링 환경에서 코드를 작성했다. 스프링부트에서는 mock 객체를 라이브러리로 지원하기에 별다른 추가 빌드 코드 없이 사용 할 수 있다. 1. mock(className.class) /** * mock(classToMock.class)로 mock 객체를 만들 수 있다. * 내부 구현은 동작하지 않고 0, null, false 등이 리턴된다. */ @Test void createMockTest() { // given Cook mockCook = mock(Cook.class); // when mockCook.setOrderedItem("hamburger"); // then assertT..
-
Mock이란?테스트 2021. 10. 19. 15:14
'오늘 뭐먹지' 프로젝트 프로토타입을 만들 때 JEST를 사용해서 테스트를 작성해보려고 했는데 MOCK이라는 것에 막혀서 옴짝달싹 못했던 때가 있었다. 그래서 테스트에 대해 막연한 두려움마저 생겨날 지경이라 이번에 Mock을 공부해서 막연한 두려움을 없애고 테스트를 진행해보고 싶은 마음에 조사를 진행했고, 정리했다. Mock이란? 실제 객체를 '흉내'내는 시뮬레이션 된 객체, 소프트웨어 테스팅 계획에서 주로 쓰인다. Mock을 사용해야 하는 이유? 시나리오를 하나 들어 설명하겠다. 현재 식당에서 손님이 주문을 하는 상황이라 가정하자. 이 시나리오에서는 손님이 웨이터에게 메뉴를 주문하면, 웨이터는 요리사에게 메뉴를 전달하고, 메뉴가 완성되면 다시 손님에게 음식을 전달해주는 시나리오로 흘러간다. 요리사 객체..
-
MVC VS FLUX VS REDUX개발로그/오늘뭐먹지 프로젝트 2021. 10. 13. 14:16
이번 프론트 앤드에서 사용해볼 후보군을 추려봤고 주로 MVC, FLUX, REDUX 아키텍쳐가 쓰인다고 한다. 1. MVC 아키텍쳐 1.1. MVC 아키텍쳐 개요 3개의 레이어로 이루어진 아키텍쳐 패턴으로 유저에게서 요청받을때마다 적절한 Model과 View를 활용해 응답한다. Model: 앱의 데이터 및 동작을 유지, 관리한다. View: 모델의 UI를 표기한다. Controller: View와 Model 컴포넌트 간의 인터페이스 역할을 담당한다. 2. FLUX 아키텍쳐 2.1. FLUX 개요 2014년경 페이스북의 업데이트를 앞두고 페이스북에서 개발된 아키텍쳐 다음과 같은 요소를 포함한다. Store/Stores: 앱의 state와 로직등을 저장하는 컨테이너 Action: Dispatcher에게 데이..
-
백앤드 프로토타입 완성개발로그/오늘뭐먹지 프로젝트 2021. 10. 13. 14:01
프로토타입 완성 회고 https://github.com/KwangJongJeon/whatShouldIEatTodayBackProto GitHub - KwangJongJeon/whatShouldIEatTodayBackProto Contribute to KwangJongJeon/whatShouldIEatTodayBackProto development by creating an account on GitHub. github.com 드디어 프로토타입 완성했다! API를 통해 통신하는데에 이런저런 문제가 많이 생겨서 내가 생각하던 것보다는 더 오래 걸렸다. 이번 프로토타입을 만들면서 느꼈던 문제점들은 다음과 같다. 첫 번째로, 이번 프로토타입을 만들면서 가장 많이 느꼈었던건 내가 했던 설계가 상당히 부실했다는 것..