본문 바로가기

Web45

[Spring] 객체 지향 설계와 스프링 1. 스프링 - 이전 글에서 다형성만으로는 OCP와 DIP를 지킬 수 없다는 내용을 작성하였다. - 스프링은 아래의 기술들로 다형성과 OCP, DIP를 가능하도록 지원해줌 -> DI(Dependency Injection): 의존관계, 의존성 주입 -> DI 컨테이너 제공 - 위 기능들을 활용하면, 클라이언트 코드의 변경 없이, 기능이 확장 가능해진다. (즉, 쉽게 부품을 교체하듯이 개발 가능) 2. 지금까지 내용 정리 - 해당 카테고리의 첫번째 게시물부터 지금까지 내용들을 한번 정리해보자. - 모든 설계에 역할과 구현을 분리하자. - 애플리케이션을 설계할 때, 마치 공연을 설계하듯 배역만 만들어두고, 배우는 언제든지 변경할 수 있도록 유연하게 설계하는 것 -> 이것에 좋은 객체 지향 설계이다. -> 이것.. 2022. 5. 26.
[Spring] 좋은 객체 지향 설계 5가지 원칙(SOLID) 0. SOLID란? - 로버트 마틴(클린코드 저자로 유명)이 좋은 객체 지향 설계의 5가지 원칙을 정리함 - SRP: 단일 책임 원칙(single responsibility principle) - OCP: 개방-폐쇄 원칙(open/closed principle) - LSP: 리스코프 치환 원칙(liskov substitution principle) - ISP: 인터페이스 분리 원칙(interface segregation principle) - DIP: 의존관계 역전 원칙(dependency inversion principle) 1. SRP 단일 책임 원칙 (Single Responsibility Principle) - 하나의 클래스는 하나의 책임만 가져야 한다. - 하나의 책임이라고 하면, 기준이 모호해.. 2022. 5. 26.
[Spring] 좋은 객체지향 프로그래밍이란? 0. 객체 지향의 특징 - 추상화 - 캡슐화 - 상속 - 다형성 1. 객체 지향 프로그래밍 - 다들 알고있겠지만, 객체 지향 프로그래밍은 프로그램을 명령어의 목록으로 보는 것에서 벗어나, "객체"(독립된 단위)들의 모임으로 파악하는 것이다. - 각각 객체는 서로 메세지를 주고받고, 데이터를 처리하는 등 서로 협력한다. - 객체 지향 프로그래밍은 프로그램을 유연하고, 변경에 용이하도록 만들어 주므로, 대규모 개발에 자주 사용된다. -> 유연하고 변경이 용이하다? -> 마치 레고 블럭을 조립하듯이, 컴포넌트를 유연하게 변경하면서 개발하는 방법 -> 객체 지향의 핵심인, 다형성(Polymorphism) 2. 다향성이 왜 중요한가? - 다향성에 대해 이해해 보기 위해 실생활의 상황을 역할과 구현으로 구분해보자... 2022. 5. 17.
[Spring] 스프링이란? 1. 스프링 구성 요소? - 스프링은 하나의 기술이 아닌, 여러가지 기술로 나누어져 있다. - 필수 - 스프링 프레임워크: 스프링의 기본 - 스프링 부트: 스프링 설정을 쉽게 해주는 장치 - 선택 - 스프링 데이터: 데이터(CRUD)를 쉽게 관리할 수 있는 장치, JPA를 많이 씀 - 스프링 세션: 세션 기능을 편하게 사용할 수 있도록 함 - 스프링 시큐리티: 보안 관련 - 스프링 Rest Docs: 스프링의 api를 문서화 시켜 편하게 볼 수 있도록 함 - 스프링 배치: 다량의 데이터중 일부를 가져오고 저장하는 기술이 배치, 이를 스프링 특화되게 함 *이 외에도 많은 기술들이 있다.(링크 참고) https://spring.io/projects Spring | Projects Spring Framewor.. 2022. 4. 19.
[Intellij] cdn으로 불러온 js 라이브러리를 인식하지 못할 경우(Unresolved) 프로젝트를 수행하던 도중 intellij가 불러온 js 라이브러리(jquery)를 인식하지 못하는 오류가 발생하였다. cdn으로 jquery를 불러왔음에도 intellij에서 인식을 하지 못하였다. 구글링을 하여도 별다른 정보가 나오지 않아 공식문서를 찾아본 결과, 생각보다 방법은 간단하였다. 1. 위의 cdn 링크에 마우스를 댄다. 2. download library를 클릭한다. 구글링을 해보면 대부분 Ctrl+Alt+s(Settings 열기) -> Languages&Frameworks -> JavaScript -> Libraries에 add를 클릭한 후 버전에 맞게 다운받은 jquery를 넣거나, download를 클릭한후 jquery를 찾아서 추가하는 형식 뿐이었다. 하지만 직접 다운받는 것은 번거.. 2021. 8. 9.
Postman 설치, 사용법 1. Postman이란? 프론트와 분리되어있는 백엔드 서버 제작시, api를 테스트할 수 있게 도와주는 플랫폼이다. 이를 통해 RestAPI의 HTTP 요청을 테스트해볼 수 있다. 2. Postman 가입, 설치, 사용 https://www.postman.com/ Postman | The Collaboration Platform for API Development Postman makes API development easy. Our platform offers the tools to simplify each step of the API building process and streamlines collaboration so you can create better APIs faster. www.postm.. 2021. 7. 28.
[Spring Security]로그인/회원가입 페이지 구현해보기 이번 게시물에서는 Spring Security 공부 차원에서 이를 활용하여 로그인 페이지, 회원가입 페이지가 있는 소규모 프로젝트를 만들어 볼 것이다. 전체 코드는 Github에서 확인해 볼 수 있다. 해당 게시물은 해어린 블로그님의 게시물과 코딩스타트님의 게시물, 레퍼런스를 참조하여 작성했다. 1. Spring Security란? Spring Security는 스프링 기반 에플리케이션의 보안을 담당해주는 스프링 하위 프레임워크이다. 이를 활용하면 개발자가 직접 보안 관련 로직을 짜는 수고를 덜 수가 있다. 스프링 시큐리티에 대해 공부하기 위해 여러 포스팅과 블로그, 레퍼런스들을 둘러보았고, 우선 다음의 4가지 용어를 이해한 후 넘어갈 것이다. 1) 접근 주체(Principal) - 보호되어 있는 리소스.. 2021. 7. 26.
13. 전체 조회 화면 해당 게시물들은 이동욱 저자님의 "스프링 부트와 AWS로 혼자 구현하는 웹 서비스"를 공부하며 기록한 것입니다. 앞선 게시물에서는 게시글 등록 화면과 실제로 작동하도록 index.js까지 완성하였다. 이번 게시물에서는 index.mustache에서 저장되어있는 게시물 목록을 볼 수 있도록 구현할 계획이다. 우선 index.mustache를 변경한다. 기존의 index.mustache의 글 등록 버튼을 포함한 div 아래 작성한다. 여기서 머스테치의 문법이 처음으로 등장한다.(레이아웃 제외하고) 1) {{#posts}} - 이는 마치 Java의 for문과 동일하게 생각하면 되며, posts라는 list를 순회한다. 2) {{id}} 등등 {{변수명}} - List에서 뽑아낸 객체의 필드를 사용한다. ind.. 2021. 7. 21.