오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

분류 전체보기 210

[🐕🐾 일기 4일차] 주석은 이말년처럼

100만 유튜버 침착맨이 개인방송으로 유명하기 전, 웹툰 작가 이말년으로 살았을 무렵, 마이 리틀 텔레비전(마리텔)이라는 프로그램에 나온 적이 있다. 마리텔은 개인 방송 대결 프로그램으로 연예인들이 나와 개인 방송을 켜 시청자 수가 얼마나 많은지 경쟁하는 프로그램이다. 이말년의 컨텐츠는 자신이 어떤 식으로 그리는지 혹은 다른 게스트와 만화 그리기같은 컨텐츠를 주로 진행했다. 이중 기억에 남는 장면이 하나 있었다. 바로 사람들이 캐릭터를 잘 못 알아볼 때 하는 방법을 알려주는 장면이다. 캐릭터는 다양한 이유로 사람들이 잘 못알아 볼 수 있고 그럴 떄마다 그는 이마에 낙인을 찍는 다고 했다. 그 당시에는 기발한 아이디어다. 라고 생각하고 그냥 넘어갔던거 같다. 프로그램을 업으로 삼으면서 하면서 어떤식으로 객..

글/🐕🐾 일기 2021.10.05

클래스와 객체

클래스 : 공통적인 상태와 행동을 공유하는 객체들을 추상화한것 클래스를 구현하거나 다른 개발자에 의해 개발된 클래스를 사용할 떄 가장 중요한 것은 클래스의 경계를 구분 짓는 일 객체 객체는 상태와 행동을 갖는다. 접근 제어 매커니즘: 접근 수정자 캡슐화와 접근제어는 객체를 두부분으로 나눈다. 퍼블릭 인터페이스 : 외부에서 접근 가능한 부분 구현 : 오직 내부에서 접근 가능한 부분

Paradigm/OOP 2021.09.29

의존성

어떤 객체가 협력하기 위해 다른 객체를 필요로 할 때 두 객체 사이의 의존선이 존재 의존성은 구현 시점과 실행 시점에 따라 다른 의미를 갖는다. 실행 시점 : 의존하는 객체가 정상적으로 동작하기 위해서는 실해 시에 의존 대상 객체가 반드시 존재 구현 시점 : 의존 대상 객체가 변경 때 의존하는 객체도 변경 의존성 : 변경에 의한 영향의 전파 가능성 의존성 전이(transitive dependency) A 객체가 B 객체에 의존하면 A객체는 B객체가 의존하는 다른 객체에 대해서 의존적이다. 의존성의 종류 직접 의존성: 한 요소가 다른 요소에 직접 의존하는 경우 간접 의존성: 한 다리 건너서 의존하는 경우 의존성 전이에 의해 영향이 전파 되는 경우 런타임 의존성: 애플리케이션이 실행되는 시점 컴파일 타임 의..

Paradigm/OOP 2021.09.28

역할, 책임, 협력, 메세지

객체지향은 객체간의 협력을 통해 시스템을 구성하는 것 객체간의 협력은 메세지를 통해 이루어지며 메세지의 맥락에서 특정한 역할을 한다. 이 역할을 책임이라고 한다. 객체는 자신을 스스로 책임진다. 자신을 스스로 책임진다 = 객체를 캡슐화 한다, 자율성을 높음 객체와 객체가 상호 작용할 수 있는 방법은 오직 메세지 수신된 메세지를 처리하기 위한 방법이 메서드

Paradigm/OOP 2021.09.28

추상화 매커니즘

추상화 매커니즘에는 프로시저 추상화와 데이터 추상화가 있다. 이 두 추상화 매커니즘은 시스템을 분해하는 방법이며 프로시저 추상화 중심으로 시스템을 분해한다면 기능분해(또는 알고리즘 분해)의 길로 가는 것이다. 데이터 추상화의 경우 데이터를 중심으로 타입을 추상화 하는 경우가 있고 데이터를 중심으로 프로시저를 추상화 하는 방법이 있다. 전자를 추상데이터 타입 후자를 객체 지향이라고 한다. 타입은 변수에 저장할 수 있는 내용물의 종류와 변수에 적용될 수 있는 연산의 가짓수를 의미한다. 리스코프는 "Programming with Abstract Data Types"에서 프로시저 추상화를 보완하기 위해 데이터 추상화 개념을 제안했다. 추상 데이터 타입을 구현하기 위해서 다음과 같은 특성을 프로그래밍 언어에서 지..

Paradigm/OOP 2021.09.28

[🐕🐾 일기 1일차] 엥? 아직도 커밋을 안한다고?

혼자서 작업을 하다보면 수능 문제를 푸는 것 처럼 작업을 하게된다. 물론 벌써 수능을 본지 10년 정도가 되었지만 당시 학원 선생님이 이런 전략을 이용하라고 했다. "한 문제가 막히면 다른 문제를 먼저 풀고 또 풀다가 막히면 넘어가고 마지막 페이지를 넘기고 나서 다시 별표친 문제를 다시 보아라." 프로그래밍을 시작한지 얼마되지 않았을 때 나는 흐르는 강물을 거스르는 연어였다. 펄떡펄떡 일단 쉽게 구현할 수 있는 부분을 먼저 구현한 다음 다시 처음으로 돌아와 어려운 구현을 하는 방식으로 작업을 했다. 이런식으로 작업을 하면 작업이 빨라진다. 깊은 생각 없이, 구현할 수 있는 부분을 먼저 구현하기 때문에 작업 진도를 빠르게 칠 수 있다. 수능에서도 이런 전략을 사용했던 이유도 짧은 시간안에 많은 문제를 풀어..

글/🐕🐾 일기 2021.09.27

[BOJ] 2842 집배원 한상덕 python

https://www.acmicpc.net/problem/2842 2842번: 집배원 한상덕 상덕이는 언덕 위에 있는 마을의 우체국에 직업을 얻었다. 마을은 N×N 행렬로 나타낼 수 있다. 행렬로 나뉘어진 각 지역은 우체국은 'P', 집은 'K', 목초지는 '.' 중 하나로 나타낼 수 있다. 또, 각 www.acmicpc.net 1. 풀이 사용한 알고리즘은 bfs + 투포인터 이다. 먼저 주어진 지역의 고도 행렬을 중복이 없은 1차원 리스트로 만들어 준 후에 오름차순 정렬해준다. 이 리스트를 heights라고 하겠다. 이후에 초기값이 0인 left, right를 지정해놓고 포인터 값을 변경해가며 heights를 이용해 bfs를 시행하면 되는데 구체적인 로직은 다음과 같다. heights[left:righ..