2018-09-28

privacy

개인정보취급방침

본 개인정보취급방침은 sootnoon이(이하 ‘회사’) 어떤 정보를, 어떻게 취득하고, 어디에 사용하는지를 밝히고 있습니다. 회사는 프로그램을 이용하는 유저의 어떤 정보라도 중요하게 취급되어야 한다는 것을 분명히 인식하고 있습니다.

개인식별정보

프로그램을 통해 생성되거나, 프로그램 내에서 사용되는 모든 프로필과 정보는 오직 유저의 기기에만 저장됩니다. 즉, 회사는 개인식별정보(이름, 주소, 전화번호, 이메일주소 등)를 수집하지 않습니다. 또한, 회사는 일체의 유저개인정보에 접근하지 않습니다.

지역정보

회사는 일체의 지역과 관련한 정보(GPS, 위치 등)를 수집하지 않습니다.

정보의 공유

회사는 어떤 개인정보도 다른 회사와 공유하지 않습니다.

광고, 분석 소프트웨어

회사는 구글 플레이 스토어, 애드몹, 구글 애널리틱스 소프트웨어를 사용해 우리의 앱의 이용행태들을 익명/통계적으로 취득합니다. 여기에는 대략적인 지역정보(국가 등)와 기기, 언제 그리고 어떤 유저가 앱에 접속했는지 여부 등이 포함됩니다. 이는 앱의 판매와 기본적인 고객관리(공지, 환불, 광고 상영 등)를 위한 것이며, 이 이외의 목적으로는 구글 플레이 스토어, 애드몹, 구글 애널리틱스 소프트웨어를 사용하지 않습니다.
구글의 개인정보보호방침은 아래 URL을 통해 확인하실 수 있습니다.
  • https://www.google.com/policies/privacy/
  • https://support.google.com/analytics
  • https://support.google.com/admob

지원, 문의를 위한 메일

지원 등을 위해 문의를 한 유저의 개인정보는 오직 지원 등의 원래 목적으로만 정보를 사용합니다.

개인정보에 대한 문의사항

개인정보에 관련한 어떤 문의사항도 편하게 아래 메일 주소를 통해 연락주세요.
이메일주소: shimjye@gmail.com

2018-08-10

law of minimum

  • 머리를 식히기 위해 읽은 전공이 아닌 사회학 글에서 기억에 남는 진리적인 법칙으로 미니멈의 법칙이 있다. 미니멈의 법칙은 농업 연구에서 발표되었는데 영양분이 불균형을 이룰 때 식물의 성장은 가장 작은 영양분을 기준으로 수확물이 나타난다는 지금 생각하면 너무나 당연한 법칙이다.
  • 하지만 농업 연구에서 발표된 이 법칙은 체인의 법칙으로 경제학에서도 많은 설명을 가져온다. 단단한 체인에 양 끝을 연결하여 물체를 끌고 갈 때 체인이 견딜 힘은 체인의 구성 중 가장 약한 부위가 끊어질 때의 힘이다. 라는 역시나 당연한 법칙이다.
  • 당시 성과평가를 하고 좋지 않은 결과를 받은 나로서는 결과적으로 내가 가장 약한 부분의 결과만을 통해 좋지 않은 성과를 받았다는 불만족을 가졌는데 어떻게 보면 당연한 법칙이자, 내가 받은 성과에 대해 이의가 적용되지 않는 이유였다. 또, 역시 이쯤 읽은 사회학 글에서 나온 휴리스틱 내용과 결합하여 직관적으로 좋지 않은 결과를 받았다는 것을 생각했다.
  • 뭐 성과는 그냥 성과일 뿐이고, 돈에 영향을 주기는 하지만 내 본 모습이 있듯이, 다른 면에 생각해 볼 때 미니멈의 법칙은 매우 많은 시사점을 가지고 있었다.
  • 성과에 대한 나의 부족한 부분을 개선하기 위해 나의 가장 약한 부분을 보충하기 위해 노력해야 하는가? 이 물음에는 나는 아니라고 대답했다. 회사는 팀으로 일하고 팀의 존재 이유는 슈퍼 개발자를 만드는 것이 아니라 서로 간 협업을 위한다고 생각한다. 특히 프로그래밍 개발에 있어서 하나의 전문적인 강점을 가지고 있는 것이 기술에 있어 제너럴리스트가 되는 것보다 좋다고 본다.
  • 이외 반대로 팀의 구성을 효율적으로 하기 위해서는 가장 약한 부분을 보완해야 하는 필요성이 있다. 결과물 농작물에 있어서 수확물의 품질은 결국 가장 부족한 능력에 따르는 결과가 나타난다.
  • 실제 소프트웨어 엔지니어링에서 사용하고 있는 가장 긴 코드 개선하기, 가장 복잡도가 높은 코드 개선하기 등 이 이 법칙을 따르는 품질 향상 방법으로 적용할 수 있다.
  • 농업에 있어서 영양의 부족은 절대량이 달라 어떤 것은 조금 필요하고, 어떤 것은 많이 필요로 한다. 미니멈의 법칙에서는 그 부족의 비율이 작용하듯이 프로젝트 개발에서 팀 간 절대량은 다르기에 주니어는 절대량이 작은 부분을 시니어는 많은 부분을 수행해 영양의 부족 비율을 줄이는 팀 구성의 전략이 필요하다.

conclusion

  • 뜬금없는 결론
  • 가장 장점을 더욱 발전시켜 전문가가 되어야 함은 분명하지만 가장 약한 부분을 보완하는 것도 때로는 필요할 것이다.
  • 팀의 구성, 유지, 협력을 위해 이 법칙을 팀원 모두가 이해하고 팀을 발전시킬 수 있다.

Knot Theory

이어폰 꼬이지 않게 보관하기

  • 매듭 이론, 수학이 실생활에 도움을 얼마나 많이 주는지 생각하다가 조회한 글 내용이다. 수많은 사람의 난제인 이어폰 꼬이지 않게 보관하기를 해결하기 위해 매듭 이론이 사용된다.
  • 하지만 몇몇 방법을 살펴본바 그다지 편리하지 않고 명확하지 않아 이론적인 공식으로 접근해 다시 생각해 봤다.
  • 기초적인 매듭 이론. 그중 unknot 그냥 원 모양이다. 정확히 꼬이지 않은 매듭이다. 이어폰을 원 모양으로 보관하면 절대 꼬이지 않는다.(??) 하지만 이어폰 줄이 1m 정도일 때 50cm 길이로 보관할 수 있다.
  • 여기에서 또 발견한 공식이 Fary–Milnor theorem이다. 매듭이 어쩌고저쩌고 4 pi보다 작은 경우 항상 꼬이지 않은 상태임을 증명한 공식이다.

Fary–Milnor theorem

If K is any closed curve in Euclidean space that is sufficiently smooth to define the curvature k at each of its points, and if the total absolute curvature is less than or equal to 4pi, then K is an unknot.
  • https://en.wikipedia.org/wiki/Fary%E2%80%93Milnor_theorem

활용

  • 수학적인 증명은 생략하고 이어폰을 가지고 접근한다. 매듭 이론은 끝이 없는 원 형태의 매듭이고 이어폰은 직선 줄이다. 매듭 이론을 적용하기 위해 줄 끝과 끝을 서로 가상의 직선으로 연결하여 원 형태로 생각한다.
  • 이어폰을 한 번 접으면 가상의 선을 통해 원이 되고 2 pi, 한 번 더 접으면 4 pi가 된다. 1m 이어폰 줄을 25cm까지 줄이는 데 성공했다.
4pi
  • 이 상태로라면 아무리 가방에 오래, 주머니에 오래 있어도 절대 꼬이지 않는다. 그 증명은 Fary–Milnor theorem으로 되어있으니 나는 모른다.
  • 역시 25cm를 보관하기는 불편하다. 여기서 다른 방법에 많이 나온 것과 같이 현재 꼬인 상태를 유지하며 길이를 줄이는 방법이 필요하다. 나는 그냥 한 바퀴 묶었다. 그리고는 잘된다.
  • 이것은 위상적인 형태를 유지하며 선을 묶어주는 방법이다. 다른 방법에서는 집게를 사용한다던가 자석을 사용하여 그 형태를 유지하도록 한다. 그냥 묶어도 잘되는 것 같아 그냥 사용하기로 한다. 사실 여기서는 묶는 것이 아니라 위상적인 형태를 유지하기 위해 공간을 뒤틀어 준 것이다. 이어폰은 계속 4 pi로 있다.
topology
  • 이어폰에서는 가상의 선을 이었다는 점과 Y자로 선이 구성되어 있음에 실제로는 꼬임이 발생할 수 있겠지만 이론적으로는 절대로 꼬이지 않는 이어폰 보관방법이다.

conclusion

  • 수학은 생활에 도움이 된다.
  • Fary–Milnor theorem = 니 이어폰을 2번만 접은 상태로 유지하여 보관하면 절대 꼬이지 않는다.

문제의 정의와 해결 방법

알고리즘

  • 알고리즘 문제 해결 전략 세트 http://book.naver.com/bookdb/book_detail.nhn?bid=7058764
  • 무식하게 풀기 : 소풍 (난이도: 하, 문제 ID: PICNIC)
  • 분할 정복 : 울타리 잘라내기 (문제 ID: FENCE, 난이도: 중)
  • 동적 계획법 : 와일드카드 (문제 ID: WILDCARD, 난이도: 중)
    • 특정 범위까지의 값을 구하기 위해서 그것과 다른 범위까지의 값을 이용하여 효율적으로 값을 구하는 알고리즘 설계 기법
  • 탐욕법 : 도시락 데우기 (문제 ID: LUNCHBOX, 난이도: 하)
    • 각 단계마다 지금 당장 가장 좋은 방법만을 선택
  • 조합 탐색 : 게임판 덮기 (문제 ID: BOARDCOVER2, 난이도: 하)
  • 최적화 문제 결정 문제로 바꿔 풀기 : 남극 기지 (문제 ID: ARCTIC, 난이도: 하)

문제 해결

  • 개발이라는 것은 코딩을 가르키는 것이 아닌 문제를 해결하는 것이다.
  • 알고리즘 책에 나오는 방법은 수학적으로 증명된 사용 가능한 문제 해결 방법을 제시한다.
  • 소프트웨어 알고리즘이 단순 개발자가 면접을 보기 위한 수단이 아닌 소프트웨어 문제를 해결하기 위한 수학적인 분석 방법이라고 할 수 있다.
  • 물론 기본적으로 면접을 보는데 있어 알고리즘은 하나의 수단임은 분명하다.
  • 여러 혹은 모든 소프트웨어를 개발하기를 목표로 보면, 여러 알고리즘을 해결할 수 있어야 하지만 지금 나의 수준은 분할 정복 정도만 머리속으로 설계하여 소프트웨어 개발을 하고 있는 수준이라 생각한다.
  • 결국 알고리즘 공부는 소프트웨어 공부에 있어 연습문제를 해결하는 practice 경험이 될 수 있다.

문제 정의

  • 문제 해결에 알고리즘을 젹용하는 과정을 생각해 볼때 정의, 계획, 분석, 연구, 실행, 검토 로 분류해 생각할 수 있다.
  • 문제를 정의하는 것은 문제 해결의 과정이다.
  • 회사내에서는 일반적으로 이슈를 만드는 것을 좋아하지 않는다. 하지만 이는 문제 해결의 과정으로 볼 때 나는 이슈를 만드는 것을 피하지 않고 하나의 방법으로 사용한다.
  • 다수의 경우 여기에서 다른 사람과 관점적 문제가 발생한다.
  • 문제가 없으면 해결방안이 없다.

논문 개요

  • Introduction, Methods, Results, Discussion, and Conclusion