![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaLWS0%2FbtruNV2Weg3%2F5tWy8cxVUGOgdvcddlnCg0%2Fimg.png)
[백준]9012번 괄호 문제 풀이
T = int(input()) result = [] for _ in range(T): VPS = input() num = 0 for i in VPS: if num
T = int(input()) result = [] for _ in range(T): VPS = input() num = 0 for i in VPS: if num
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 개방-폐쇄 ..
김영한님의 스프링 핵심 원리를 듣고 작성하였습니다. 객체 지향 특징 • 추상화 • 캡슐화 • 상속 • 다형성 객체 지향 프로그래밍이란? • 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. (협력) • 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 한다. 유연하고, 변경이 용이? • 레고 블럭 조립하듯이 • 키보드, 마우스 갈아 끼우듯이 • 컴퓨터 부품 갈아 끼우듯이 • 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법 다형성을 실세계에 비유하자면 역할과 구분으로 나눌 수 있다. 위 그림에서 운전자(클라이언트)의 역할은 자..
퀵 정렬 기준 데이터를 설정하고 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾸는 방법 일반적인 상황에서 가장 많이 사용되는 정렬 알고리즘 중 하나 병합 정렬과 더불어 대부분의 프로그래밍 언어의 정렬 라이브러리의 근간이 되는 알고리즘 가장 기본적인 퀵 정렬은 첫 번째 데이터를 기준 데이터(Pivot)로 설정 퀵 정렬 동작 예시 [Step 0] 현재 피벗의 값은 '5'이다. 왼쪽에서부터 '5'보다 큰 데이터를 선택하므로 '7'이 선택되고 오른쪽에서부터 '5'보다 작은 데이터를 선택하므로 '4'가 선택된다. 이제 이 두 데이터의 위치를 서로 변경함 [Step 1] 현재 피벗의 값은 '5'이다. 왼쪽에서부터 '5'보다 큰 데이터를 선택하므로 '9'가 선택되고 오른쪽에서부터 '5'보다 작은 데이터를 선택하므..
GoTo Webinar 클라우드 컴퓨팅의 이점 1. 자본 비용을 가변 비용으로 대체 2. 규모의 경제로 얻게 되는 이점 3. 용량 추정 불필요 4. 속도 및 민첩성 향상 5. 중요한 문제에 집중 6. 몇 분 만에 전 세계에 배포 클라우드 컴퓨팅 배포 모델 - 클라우드 - 하이브리드 - 온프레미스(프라이빗 클라우드) AWS란? AWS는 다양한 글로벌 클라우드 기반 제품을 제공하는 보안 클라우드 플랫폼 AWS리전 AWS 리전은 지리적 영역이다. 리전 전체의 데이터 복제는 사용자가 제어한다. 리전을 선택 시 데이터 거버넌스, 법적 요구 사항, 지연시간, 리전 내 사용 가능한 서비스, 비용 등의 다양한 요인을 고려하여야 한다. 가용 영역 AWS리전에는 가용영역이 있다. 가용 영역은 개별 데이터 센터로 구성되며 ..
[요약] 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..
컨트롤러에서 뷰로 데이터 전달 컨트롤러에서 뷰로 정보를 전달 하는 방법에 대해 알아보겠습니다. 컨트롤러 클래스는 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..
[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...