분류 전체보기 64

소수 (솟수)

문제 1. 어떤 수 N (=upperbound) 보다 작은 소수 목록(prime numbers)을 구하라. 소수는 1과 자기 자신만을 약수로 갖는 수이다. 그러므로 무언가의 2배, 3배, 4배 등이 되는 수라면 이는 소수가 아니다. N=60이라고 하면, 그보다 작은 소수들은 primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59] 가 있을 것이다. 이를 구하는 가장 효율적인 방법은 기원전에 발견되었다(에라토스테네스의 체, Sieve of Eratosthenes). 이 방법은 우선 모든 수를 소수라고 추정한 뒤, 어떤 소수의 배수처럼 소수가 아닌 수를 지워나가는 것이다. 먼저 0, 1은 소수가 아니라고 정의한다. 최초의 소수인 2를..

알고리즘/Math 2023.08.06

애매성의 함정

IT 기술 관련 설명할 때 많이 듣는 얘기가 “-라고 보시면 되구요” 이다. 원래는 그게 아닌데 간단히 쉽게 말하면 그런 것 같다고 봐도 별 탈이 없다 정도로 들린다. 그렇게 말하는 이유는 청자의 이해 수준에 맞추기 위한 목적도 있을 수 있지만, 화자가 적확히 깊이 있게 이해하지 못하고 있으니 더 캐묻지 말고 이정도 느낌으로 받아들이고 말라는 메시지를 전달하기 위해 저런 화법이 발생하는 것 같기도 하다. 현재 회사에 오기 전에 IT 관련 직무를 하는 사람들과 얘기할 때면 유난히 애매한 비유성 동사가 많이 통용되는 것을 느낄 수 있었다. 이를테면 데이터를 ‘떨군다‘ ’뭉친다‘ 등등… 이런 경우에 조금만 파고 들어 물어보면 동어반복을 하거나 잘못된 설명으로 흐르는 등 기초지식이 바닥을 드러내는 경우를 보았다..

카테고리 없음 2023.04.27

개발자를 위한 네트워크 노트 (1)

개발을 하다 보면 네트워크 지식이 간절해진다. 쿠버네티스를 하다보면 포트는 왜 그리 자주 나오며, 원격 접속만 하려 해도 IP와 맥주소가 뭔지 괴로운 것이 하나 둘이 아니다. 그래서 공부하기로 했다. 이 글은 나를 위한 참고 노트이기도 하다. 그리고 늘 그렇듯 공부를 하기 전에 전체적 체계를 잡는 것이 가장 시간을 절약하는 길이기에 오늘은 전체를 조망하고자 한다. 네트워크 계층 OSI 7계층 모델은 통신의 계층을 가장 세세하게 나눈 표준이지만 이에 완전히 대응하는 프로토콜은 존재하지 않기에 통상 4계층인 TCP/IP 모델 중 1계층을 OSI의 물리-데이터링크 계층으로 세분하여 5계층으로 보면 현실을 설명하고 업무하기에 적절하다고 한다. 즉, 1계층부터 5계층까지가, 물리-데이터링크-네트워크-트랜스포트-애..

꿀팁 대방출

개발자 생활에 필요한 꿀팁을 적립해 두는 곳이다. 계속 추가할 예정 (별도 표시가 없다면 mac OS 기준). 웹사이트 다운로드 강의용 사이트 등 용량이 적은 파일이 있는 곳을 그 체계를 유지하며 다운로드 받아 다른 연관 자료들과 함께 로컬 폴더에 배치해 나중에도 편히 참고하고 싶은 경우에 유용. 먼저 자신이 다운로드 하고 싶은 디렉토리로 이동한 다음 아래 명령어 실행하면 그 위치에 에 해당하는 내용이 받아짐 (꺽쇠는 입력하지 않는다). # If you don't have wget, use brew install wget # Pretends I am a visitor via a web browser # but waits 10 secs between file download, limiting speed a..

IT in General/OS 2023.03.18

Iterator와 Generator 사용방법

Heron의 방법으로 제곱근을 구하는 수치해석 로직을 통해 Iterator와 Generator의 쓰임에 대해 설명하는 예제를 준비해보았다. 아래 코드는 [1] 에서 참조했다 (책에 존재하던 코드의 오류는 필자가 본 페이지와 같이 수정해서 원 저자의 레포에 커밋하고 머지되었다). 아래 sqrt1 함수는 제곱근을 구할 대상이 될 숫자인 a를 입력받아, a의 제곱근에 대한 추정치를 Heron의 알고리즘으로 반복해서 구하게 된다. 동 알고리즘은 매 횟수마다 이전보다 더 정밀한 추정치를 구하게 되며, 이전 단계에서 구한 추정치와 이번 단계에서 구한 추정치의 차이가 0.001보다 적게 되면 반복을 멈추고 결과를 돌려주며 종료된다.def sqrt1(a: float) -> float: x = a / 2 # initia..

환경

맨 처음에는 아래의 '인적 환경' 관련한 글만 있었지만, 관련한 액션에 대한 경험칙을 모아서 나의 주변 환경을 더 나은 곳으로 만들기 위한 생각을 정리하는 곳으로 이 포스트를 꾸미고자 한다. 인적 환경을 관리한다 “You are the average of the five people you spend the most time with.” (Jim Rohn) 사람이 어떤 환경에 있는가는 그 사람의 인격 형성에 아주 중요한 영향을 준다. 어떤 이를 둘러싼 환경의 요소로는 물리적인 것도 있지만, 주변의 사람들이 중요하다. 그렇기에 맹자의 어머니는 3번이나 자식을 위해 이사를 했을 것이다. 자기가 태어난 가정환경은 한동안은 바꿀 수가 없지만, 그 이후로 어떻게 알을 깨고 나와 다른 곳으로 가 새로운 환경에서 사..

Soft Talks 2023.03.13

나는 왜 이 회사를 사랑하는가

믿을 수 있겠는가? 회사 가는 것이 기다려지고 회사에 있는 동안 근무시간이 얼마 안남아 아까워하게 되며 고마운 마음에 하나라도 더 배우고 그래서 기여하고 싶은 마음이 든다는 것. 회사에 있다 보면 감격에 겨워서 멍해질 때가 있고, 일터에서 얻을 수 있는 행복감에 이 회사를 더 발전시키고 싶은 생각이 든다는 것. 일 자체가 도전적이고 많은 것을 배워야 하지만 일하다가 사람들과 교류하면서 느끼는 기쁨으로 인해 정년까지 이곳에서 일하고 싶다는 생각이 드는 것. 그래서 이런 세계를 만들어 준 창업자에게 마음으로 감사하게 되는 곳이 있다는 것. 이 모든 것이 내가 일하는 회사에서는 현실이다. 2주 남짓 지나게 되었지만, 그리고 그 중에 OT랄 것은 채 하루도 하지 않았지만, 그 짧은 시간에 이런 생각이 들어버린 ..

Soft Talks 2023.02.10

테크 업계 이직시장 리뷰

회사에 퇴직 인사를 다니면서 직원들로부터 들은 말을 종합하면 크게 세가지였다: 대성해라, 부럽다, 나도 방법을 알려달라. 첫번째는 나와 철학이 좀 다르고 당장 글로 답할 성질의 것이 아니므로 어제 도넛가게에서 찍은 다음 사진속 프루스트의 말을 인용해 짧게 답하려 한다. 이 글은 세번째 커멘트인 방법에 관한 이야기로, 테크 업계에 관심 갖고 있는 이들을 위한 이직시장 분석이다. 필자는 금융공기업에서 비전산 출신으로 입사해 컴퓨터과학을 따로 공부해 디지털 전환 관련 부서에 창립멤버로 합류하여 일하다가 그 경험을 인정받아 네카라 중 한 곳의 경력자 채용(정규직)에 합격했음을 참고로 말씀드린다. 업종 통상 네카라쿠배(당토직야) 라고 불리는 빅테크/IT서비스회사는 B2C 즉 일반 소비자 대상 서비스업을 영위한다...

Soft Talks 2023.01.10

취미를 위한 코딩 테크트리

내가 가장 좋아하는 취미가 뭐냐 묻는다면 알고리즘 문제를 코딩으로 푸는 것이라 말하겠다. 이전에는 제2외국어를 배우거나 스위치를 사서 슈퍼마리오를 아주 재미있게 즐겨왔지만, 외국어는 이를 대신해 줄 도구들이 많아져 공부에 대한 ROI (return on investment) 가 작아지고 있고 게임은 이제 대체로 재미가 없다. 프로그래밍을 하다 보니 결국 그 게임 속 세계라는 것도 사람이 설정해 놓은 조건을 달성하면서 포인트나 스테이지라는 결과값을 얻게 되는 것에 다름아니라는 생각이 들어 몰입이 잘 되지 않았기 때문이다. 그러나 더 큰 이유는 알고리즘 문제를 푸는 과정과 풀었을 때의 성취감이 게임을 할 때 보다 훨씬 크기 때문인 듯 하다. 그래서 나는 알고리즘 문제 풀이도 바둑이나 장기처럼 즐길 수 있는 ..

알고리즘 2022.12.20