728x90

Total

728x90

    객체지향의 설계, SOLID 원칙

    1. 단일 책임 원칙 SRP(Single Responsibility Principle) 객체는 단 하나의 책임만 가져야 한다 하나의 클래스는 하나의 기능 담당하여 하나의 책임을 수행하는데 집중되도록 클래스를 따로따로 여러개 설계하라는 원칙 만일 하나의 클래스에 기능(책임)이 여러개 있다면 기능 변경(수정) 이 일어났을때 수정해야할 코드가 많아짐 최종적으로 단일 책임 원칙의 목적은 프로그램의 유지보수성을 높이기 위한 설계 기법 남자가 클래스 고장나면 모든 기능 사용 불가능 클래스를 나눠 놓는다면 남자친구 클래스가 고장나도 아들, 사원, 소대원과 같은 나머지 기능 사용 가능 2. 개방 폐쇄 원칙 OCP(Open Closed Priciple) 확장에 열려있어야 하며, 수정에는 닫혀있어야 한다 기능 추가 요청이..

    객체 지향 프로그래밍 OOP 특징 | 캡슐화, 추상화, 상속, 다형성

    OOP(Object Oriented Programming) 문제를 여러 개의 객체 단위로 나눠 작업하는 방식으로 객체들이 서로 상호작용하는 프로그래밍 이론 객체들의 모임으로 파악하는 것 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임을 의미 클래스를 이용하여 관련있는 처리(기능) 부분과 데이터 부분을 하나의 객체(인스턴스)로 묶어 생성하여 사용 캡슐화 (Encapsulation) 데이터와 코드의 형태를 함께 묶어 외부에서 알 수 없도록 하고, 데이터의 구조와 역할/기능을 하나의 캡슐형태로 구현하는 방법 캡슐화의 중요한 목적은 변수를 private 으로 선언하여 데이터를 보호하는 것 보호된 변수는 getter()/setter() 메소드를 통해..

    [프로그래머스] 자동완성 (트라이)

    https://school.programmers.co.kr/learn/courses/30/lessons/17685?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 학습된 단어들이 아래와 같을 때 - go - gone - guild go를 찾을 때 go를 모두 입력해야 한다. gone을 찾을 때 gon 까지 입력해야 한다. (gon이 입력되기 전까지는 go 인지 gone인지 확신할 수 없다.) guild를 찾을 때는 gu 까지만 입력하면 guild가 완성된다. 이 경우 총 입력해야 할 문자의 수는 7이다. 2023.06.0..

    [프로그래머스] 야근지수 (힙)

    https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 남은 피로도를 최소화 하기 위해서 works 배열 내 모든 원소들의 제곱값의 합을 최소로 만듦 최대힙 사용 풀이 from heapq import heapify, heappush, heappop def solution(n, works): answer = 0 if sum(works) 0: maxval = heappop(works) heappush(works, maxval+1) n -= 1 for..

    [프로그래머스] 매출 하락 최소화 (DP, 트리)

    https://school.programmers.co.kr/learn/courses/30/lessons/72416 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 워크숍에 참석할 직원들을 선발 모든 팀은 최소 1명 이상의 직원을 워크숍에 참석 워크숍에 참석하는 직원들의 하루평균 매출액의 합이 최소 10번 직원은 C팀과 D팀 모두에 속해 있으므로, 두 팀에서 모두 참석한 것으로 인정 참석하는 직원들의 하루평균 매출액의 합을 최소로 하려고 합니다. 그렇게 최소화된 매출액의 합 리턴 d[i][j] : i는 노드번호, j는 워크샵 참여/불참 하는 경우 현재 ..

    [gRPC] gRPC 개요, MSA 서비스간 통신, gRPC vs REST

    마이크로 서비스간 통신 이슈 MSA에서는 여러 모듈로 분리되어있고 동일 머신에 존재하지 않을 수 있습니다. 따라서 일반적으로는 보편화된 방식인 REST 통신을 통해 메시지를 주고 받습니다. TTP 1.0은 요청/응답을 하기에 앞서 매번 Connection을 맺고 끊어야했기 때문에 연결 요청/해제 비용이 상당히 높았습니다. RPC Remote Procedure Calls 다른 컴퓨터의 프로그램의 프로시저를 실행하는 프로그램을 허용하는 프로토콜 개발자가 원격 상호 작용에 대한 세부 정보를 명시적으로 코딩하지 않아도 됨 프레임워크가 자동 핸들링 클라이언트 코드에서는 직접 서버 코드의 함수를 호출하는 것처럼 보임 gRPC google Remote Procedure Call 구글에서 만든 원격 프로시저 호출 프레..

    [Elasticsearch] 설치 및 Index, Document 생성

    1. 설치1.접속하여 다운로드https://www.elastic.co/kr/downloads/past-releases#elasticsearch Past Releases of Elastic Stack SoftwareLooking for a past release of Elasticsearch, Logstash, Kibana, es-hadoop, Shield, Marvel, or our language clients? You're in the right place.www.elastic.co 2. 다운로드 경로에서 실행cd elasticsearch-8.9.1./bin/elasticsearch 3. 접속curl -XGET http://localhost:9200 [에러] Received plaintext http..

    [프로그래머스] 숫자 타자 대회 (재귀)

    https://school.programmers.co.kr/learn/courses/30/lessons/136797 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 2023.06.27 - [programmers/KAKAO] - 양과 늑대 (DFS)

    [프로그래머스] 아방가르드 타일링 (DP)

    https://school.programmers.co.kr/learn/courses/30/lessons/181186 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 2를 표현하는 방법 3을 표현하는 방법 DP(10) = DP(9) + 2*DP(8) + 5*DP(7) + 2*DP(6) + 2*DP(5) + 4*DP(4) + 2*DP(3) + 2*DP(2) + 4*DP(1) + 2 DP(n)을 구하는데 DP(n-4)부터는 반복되는 구간이 나타나므로 DP(n+3)에서 DP(n)을 빼서 하위 구간을 삭제 DP(13) - DP(10) = DP(12) + 2*D..

    [프로그래머스] 등대 (트리, DP)

    https://school.programmers.co.kr/learn/courses/30/lessons/133500 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 트리 DP : DFS 풀이 dp[i][j] : i는 노드번호, j는 등대를 켠 경우와 아닌 경우로 1이면 켠 경우 현재 노드가 안켜져 있다면 자식 노드가 켜져있어야 함 현재 노드가 켜져 있다면 자식 노드의 값은 상관 없으므로 최솟값을 취함 더보기 유사문제 : https://www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 첫 번째 줄에는 친구 관계 트리..