-
덕 타이핑(Duck typing) 이란? :: 마이구미Typescript 2020. 2. 23. 19:37
이 글은 덕 타이핑에 대해 다룬다. 타입스크립트를 통해 다루지만, 덕 타이핑에 관련된 용어는 어느 언어라도 같은 맥락을 가진다. 참고한 글에는 정말 많은 레퍼런스가 있다. 모두 읽어보면 좋은 글이라 생각한다. 참고 링크 - https://devopedia.org/duck-typing 알아보기전에, 이해에 도움을 주는 개념들을 알아본다. 자바스크립트는 타입에 대해 유연한 동적 타입 언어라고 알고 있다. 그래서 JAVA 와는 다르게 타입에 대해서는 명시적으로 선언없이 자유자재로 사용하고 있다. // JAVA String name = "mygumi"; // Javascript const name = "mygumi"; 우리는 자바를 정적 타입 언어, 자바스크립트를 동적 타입 언어라고 분류할 수 있다. 정적은 컴..
-
line-height 란 무엇인가? :: 마이구미HTML, CSS 2020. 1. 11. 23:20
이 글은 CSS 속성 중 하나인 line-height 를 다룬다. 공식 문서에서 볼 수 있는 용도나 사용법이 아닌 좀 더 깊은 이해에 중점을 둔다. 참고한 링크를 통해 스스로 짧게 요약한 내용이다. https://iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align#fnref-1 line-height 속성은 line-box 의 높이를 지정한다. 주로 텍스트간의 줄 간격을 조절할 때 사용한다. 우선 간단히 언급하고 넘어가겠다. line-height 속성에 대해 좀 더 이해하고자 했다면, 다음과 비슷한 맥락의 내용을 고민해본 경험이 있을 것이다. line-height 속성의 디폴트 값은 normal 이다, 그렇다면 이 값은 무엇을 뜻하는 것인가..
-
백준 17822번 원판 돌리기 :: 마이구미알고리즘 풀이/그래프 2019. 12. 28. 20:11
이 글은 백준 알고리즘 문제 17822번 "원판 돌리기" 를 풀이한다. 2019 삼성 SW 테스트 문제 중 하나이다. 단순히 시뮬레이션으로 풀 수도 있으나, DFS 또는 BFS 를 활용할 수 있는 문제이다. DFS, BFS - https://mygumi.tistory.com/102 문제 링크 - https://www.acmicpc.net/problem/17822 본인은 처음 이 문제를 접근할 때, 많은 고민을 했다. 그런데 사실 이 문제는 사실 정답률에 비해, 크게 어렵지도 복잡하지도 않다. 그 이유는 고민할 게 크게 없었고, 테스트 케이스도 작아서, 어떻게 구현해도 시간 초과를 초래하지 않을 거라 판단했다. 그래서 "어떤 함정이 있을까?" 라는 의심에 시간을 좀 썼다. 사실 의심할 건 크게 없고, 이해..
-
Storybook 도입 (1) - 마이구미React 2019. 12. 10. 23:19
이 글은 Storybook 적용해본 첫번째 후기를 다뤄본다. 첫번째라는 건, 다양한 용도, 환경 등에서 오는 다양한 후기가 있을거라 판단했다. 정확히는 본인은 계속 사용할 것이고, 굉장히 만족하여 추후에도 분명 다음 편을 쓸거라고 생각한다. https://github.com/storybookjs/storybook 스토리북 설치 및 사용을 중점으로 다루지는 않을 것이다. 이번에 1차적으로 도입해본 과정을 토대로 다뤄본다. 팀 전체가 아닌 개인적으로 시도해본 것이라, 팀 단위의 도입 측면에서의 많은 정보는 가져갈 수 없을 것이다. "이런게 있구나" 맛보기 관점에서 보았으면 한다. 다음과 같은 순으로 진행한다. Storybook 은 무엇인가? 본인이 StoryBook 을 사용한 이유는 무엇인가? StoryBo..
-
백준 2602번 돌다리 건너기 :: 마이구미알고리즘 풀이/동적계획법 2019. 11. 10. 23:18
이 글은 백준 알고리즘 문제 2063번 "돌다리 건너기" 를 풀이한다. 정올 고등부 문제이자, 동적계획법(DP) 문제이다. 문제 링크 - https://www.acmicpc.net/problem/2602 절대반지를 얻기 위하여 반지원정대가 출발한다. 원정대가 지나가야할 다리는 두 개의 인접한 돌다리로 구성되어 있다. 하나는 이고 다른 하나는 이다. 아래 그림 1은 길이가 6인 다리의 한 가지 모습을 보여준다. 그림에서 위의 가로줄은 를 표시하는 것이고, 아래의 가로줄은 를 표시한다. 두 돌다리의 길이는 항상 동일하며, 각 칸의 문자는 해당 돌에 새겨진 문자를 나타낸다. 두 다리에 새겨진 각 문자는 {R, I, N, G, S} 중 하나이다. 출발 R I N G S R 도착 G R G G N S 반지원정대가..
-
[Cognito] 사용자별 파일 접근하기 :: 마이구미AWS 2019. 11. 4. 22:52
이번 글은 AWS 의 S3, Congito 서비스를 이용한 하나의 예를 다뤄본다. 간단하게 S3 는 스토리지, Congito 는 사용자 관리를 할 수 있다. 두 서비스를 사용한 간단한 하나의 예로, 각 사용자만 접근할 수 있는 스토리지를 만들어 관리할 수 있다. S3 - https://aws.amazon.com/ko/s3/ Cognito - https://aws.amazon.com/ko/cognito/ Example Code - https://github.com/hotehrud/cognito_s3 글에서 다루는 내용에 대한 예제 코드가 존재한다. 예제 코드를 사용하기 위해서는 AWS 서비스 설정을 해주어야한다. 그리고 나서 필요한 값들을 관련 config 파일에 넣어주면 된다. 자세한 서비스 설정은 다루..
-
비트마스크(BitMask) 는 무엇인가? :: 마이구미알고리즘 2019. 10. 20. 22:40
이 글은 비트마스크(BitMask) 기법에 대해 다룬다. 특정 알고리즘이 아닌, bit 를 활용한 테크닉이라고 할 수 있다. bit 는 low level 이 아닌 경우에는 크게 비트를 다룰 일은 없어보이지만, 분명 이해가 필요한 경우는 드물지 않다. 그렇기에, 프로그래밍 문제 풀이가 아니더라도 많은 도움이 될 것이다. 대략적인 설명이후에, 백준 알고리즘 2098번 "외판원 순회" 을 풀이한다. 백준 알고리즘 2098번 문제 "외판원 순회" - https://www.acmicpc.net/problem/2098 비트마스크는 무엇인가? 용어 그대로 비트(Bit) 에 관련된 것이다. 비트는 이진 숫자(binary digit) 를 뜻하는 말로 컴퓨터에서 사용되는 데이터의 최소 단위이다. 비트는 0, 1 의 값을 ..
-
두 점 사이의 거리 공식을 이용한 예제 :: 마이구미수학을 활용한 예제 2019. 10. 11. 23:30
"수학을 활용한 예제" 란 카테고리는 한번쯤은 접했던 수학 공식을 활용한 예제를 다룬다. 컴퓨터 비전, 그래픽, 게임 등을 다루지 않으면, 사실 우리가 배운 수학 공식이나 지식을 사용할 일은 많지 않다. 하지만 수학은 프로그래밍에서 확실히 도움이 된다. 이 카테고리는 수학 공식을 활용하는 예제를 통해 조금이나마 (프로그래밍수학) 연관 관계와 흥미에 도움을 되었으면 한다. 관련 카테고리 링크 이 글은 "두 점 사이의 거리"를 활용한 예제를 다룬다. 중학교 때 이미 배웠고, 어렵지 않은 공식이다. 웬만하면 잊어버리지 않는 공식 중 하나일 것이다. 라인스위핑 알고리즘에서도 사용되는 공식이다. (https://mygumi.tistory.com/294) 예제를 다루기에 앞서, 이 공식은 어디에서 활용할 수 있을까..