본문 바로가기

분류 전체보기142

[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.
[백준]1065. 한수 (파이썬, python) https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 1. 문제 분석 먼저 문제를 분석해보자. 1. 각 자리가 등차수열을 이루는 양의 정수를 '한수'라고 정의한다. 2. N이 주어지면, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력해라. 2. 문제 해결 방향 이 문제의 핵심은 해당 수가 '한수'인지, 아닌지를 구별하는 방법을 만들어내는 것이다. 우선 각 자리가 등차수열을 이루면 참이므로, 1~9, 10~99는 모두 한수가 될 수 밖에 없다.. 2021. 11. 17.
[백준]4673. 셀프 넘버 (파이썬, python) https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 1. 문제 분석 이번 문제를 분석해보자면 1. 기존 수를 n이라고 하면, 다음 수 d(n)을 구하는 공식은 n과 n의 각 자리수를 더하는 것이다. ex) d(35) = 35 + 3 + 5 = 43 2. 이때, 35는 43의 생성자라고 한다. 3. 이런 생성자가 없는 숫자를 셀프 넘버라고 하고, 10000보다 작거나 같은 셀프 넘버들을 출력해라. 2.. 2021. 11. 17.
[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.