Development

Algorithm

[백준]9012번 괄호 문제 풀이

T = int(input()) result = [] for _ in range(T): VPS = input() num = 0 for i in VPS: if num

Languege/Java & Spring

좋은 객체 지향 설계의 5가지 원칙 (SOLID 원칙)

SOLID란 객체 지향 설계에 있어서 5가지 원칙을 말한다. •SRP: 단일책임원칙(single responsibility principle) •OCP: 개방-폐쇄원칙 (Open/closed principle) •LSP: 리스코프치환원칙 (Liskov substitution principle) •ISP: 인터페이스분리원칙 (Interface segregation principle) •DIP: 의존관계역전원칙 (Dependency inversion principle) SRP 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이란건 모호하다.(클 수도, 작을 수도 있고 문맥과 상황에 따라 다름) 중요한 기준은 변경인데 변경이 있을때 파급 효과가 적으면 SRP를 잘 따른것 OCP 개방-폐쇄 ..

Languege/Java & Spring

좋은 객체 지향 프로그래밍

김영한님의 스프링 핵심 원리를 듣고 작성하였습니다. 객체 지향 특징 • 추상화 • 캡슐화 • 상속 • 다형성 객체 지향 프로그래밍이란? • 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. (협력) • 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 한다. 유연하고, 변경이 용이? • 레고 블럭 조립하듯이 • 키보드, 마우스 갈아 끼우듯이 • 컴퓨터 부품 갈아 끼우듯이 • 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법 다형성을 실세계에 비유하자면 역할과 구분으로 나눌 수 있다. 위 그림에서 운전자(클라이언트)의 역할은 자..

Algorithm

[정렬] 이코테 QuickSort - 퀵정렬

퀵 정렬 기준 데이터를 설정하고 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾸는 방법 일반적인 상황에서 가장 많이 사용되는 정렬 알고리즘 중 하나 병합 정렬과 더불어 대부분의 프로그래밍 언어의 정렬 라이브러리의 근간이 되는 알고리즘 가장 기본적인 퀵 정렬은 첫 번째 데이터를 기준 데이터(Pivot)로 설정 퀵 정렬 동작 예시 [Step 0] 현재 피벗의 값은 '5'이다. 왼쪽에서부터 '5'보다 큰 데이터를 선택하므로 '7'이 선택되고 오른쪽에서부터 '5'보다 작은 데이터를 선택하므로 '4'가 선택된다. 이제 이 두 데이터의 위치를 서로 변경함 [Step 1] 현재 피벗의 값은 '5'이다. 왼쪽에서부터 '5'보다 큰 데이터를 선택하므로 '9'가 선택되고 오른쪽에서부터 '5'보다 작은 데이터를 선택하므..

Study

[AWS 컨퍼런스– 에센셜 클라우드 기초의 모든 것]

GoTo Webinar 클라우드 컴퓨팅의 이점 1. 자본 비용을 가변 비용으로 대체 2. 규모의 경제로 얻게 되는 이점 3. 용량 추정 불필요 4. 속도 및 민첩성 향상 5. 중요한 문제에 집중 6. 몇 분 만에 전 세계에 배포 클라우드 컴퓨팅 배포 모델 - 클라우드 - 하이브리드 - 온프레미스(프라이빗 클라우드) AWS란? AWS는 다양한 글로벌 클라우드 기반 제품을 제공하는 보안 클라우드 플랫폼 AWS리전 AWS 리전은 지리적 영역이다. 리전 전체의 데이터 복제는 사용자가 제어한다. 리전을 선택 시 데이터 거버넌스, 법적 요구 사항, 지연시간, 리전 내 사용 가능한 서비스, 비용 등의 다양한 요인을 고려하여야 한다. 가용 영역 AWS리전에는 가용영역이 있다. 가용 영역은 개별 데이터 센터로 구성되며 ..

Study

[김영한 스프링 강의 1] 회원 관리 예제

[요약] 1.비즈니스 요구사항을 정의 -데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 2.회원 도메인과 리포지토리 만들기 - 도메인은 Member 클래스를 정의 - 리포지토리는 Interface와 Class파일로 나뉘는데 전자는 기능의 정의를 통해 상속받을 수 있도록 하기 위함 후자는 실제 기능을 구현한다. ex) 아래와 같음 [인터페이스] Member save(Member member); [클래스] public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } 3.테스트 케이스 작성 테스트 케이스 작성시 @Test 어노테이션을 사용한다. 테스트 하려는 r..

Languege/C# & ASP.NET

[ASP.NET MVC] Controller 에서 View 로 데이터 전달

컨트롤러에서 뷰로 데이터 전달 컨트롤러에서 뷰로 정보를 전달 하는 방법에 대해 알아보겠습니다. 컨트롤러 클래스는 URL 요청에 대한 응답으로 호출됩니다. 컨트롤러 클래스는 들어오는 브라우저 요청을 처리 하는 코드를 작성 하 고, 데이터베이스에서 데이터를 검색 하 고, 궁극적으로 브라우저에 다시 보낼 응답 유형을 결정 합니다. 뷰는 비즈니스 로직을 수행하거나 DB와 직접 상호 작용하지 않아야 합니다. https://docs.microsoft.com/ko-kr/aspnet/mvc/overview/getting-started/introduction/adding-a-view#passing-data-from-the-controller-to-the-view MVC 앱에 뷰 추가 보기 추가 이 문서의 내용 --> R..

Languege/C# & ASP.NET

[ASP.NET MVC] Razor Syntax 정리

[ASP.NET Core용 Razor] Razor는 웹 페이지에 .NET 기반 코드를 포함하는 태그 구문입니다. Razor 구문은 Razor 태그, C# 및 HTML로 구성됩니다. Razor를 포함하는 파일의 확장명은 일반적으로 .cshtml입니다. Razor 구문은 다양한 JavaScript SPA(단일 페이지 애플리케이션) 프레임워크(예: Angular, React, VueJs 및 Svelte)의 템플릿 엔진과 비슷합니다. https://docs.microsoft.com/ko-kr/aspnet/core/mvc/views/razor?view=aspnetcore-6.0 ASP.NET Core용 Razor 구문 참조 웹 페이지에 서버 기반 코드를 포함하는 Razor 태그 구문에 대해 알아봅니다. docs...

mntdev
'분류 전체보기' 카테고리의 글 목록 (14 Page)