자기개발

    파이썬 비교비용 프로파일링 삽질기

    친구들과 파이썬 삽질을 하면서 이리저리 많이 알아기에 그를 정리하고 공유하고자 글을 작성한다. 깔끔한 결론따위 없는 삽질기니 기대 없이 이런게 있구나 생각하면서 보는게 좋다. 발단 다음과 같은 코드가 있다. if x in [long_string, big_string, nagai_string] 이 코드가 진짜 많이 호출된다고 해보자. 뭔가 최적화 할 방법은 없을까?? 어차피 80/20 법칙 그런걸로 이런거 고칠바에는 다른 곳을 고치는게 성능향상에 도움이 되지만, 이러한 삽질은 재밌기에 해봤다. (실제로 python에서의 문자열 비교는 길이가 같으면 O(1), 길이가 다르면 O(n)이라고 알려져있는 것으로 보이지만, 그렇게 단순하게 생각하기엔 여러 글이 있다. 여기서는 자세히 다루지 않는다. 참고 : htt..

    Kafka의 Auto Commit 에서 Auto는 당신이 생각하는 Auto가 아닐 수 있다.

    환경설정을 할 때 auto라는 키워드가 나오면 작업자는 날먹을 꿈꾸며 행복해지는 한 편, 이 auto가 어디까지 자동으로 해주고 어디까지는 안해주는지 공포에 떨며 작업을 하게 된다. 나에게 kafka의 auto.commit이 그런 느낌이었다. Kafka의 auto란 따로 commit하라고 요청 안해도 일정 시간 간격마다 알아서 commit 이라는 뜻의 auto이다. https://kafka.apache.org/23/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html Setting enable.auto.commit means that offsets are committed automatically with a frequency controlled b..

    BIC FESTIVAL 2021 (부산 인디 커넥트 페스티벌 2021) 전시 참가 후기

    이번에 운좋게 제가 (거의 다) 참가한 게임인 '이 AI를 복구해주세요.'가 BIC FESTIVAL 2021 (이하 BIC)에 전시작으로 선정되어 참가하게 되었습니다. 이번에는 온라인/오프라인 병행으로써 온라인 전시는 9월 30일까지 계속 진행되고, 오프라인 전시는 9월 11일에 종료되었습니다. 집에 돌아오고 밀린 일을 처리하고하다보니 다소 늦어졌지만, 오프라인 전시에 대한 기록을 써볼까합니다. 공식행사는 3일이지만, 행사 시작전에도 준비가 있었기에 0일차를 포함해서 써보겠습니다. 0일째 - 행사 시작 전 0일차의 공식 일정은 ID카드 등록밖에 없습니다. 숙소와 행사장, 전시장을 미리 보고 딱히 할일이 없었기에, 잠시 부산의 음식을 먹고 쉬었습니다. 제가 확인한 정보로는 최소 6층, 최대 10층까지를 B..

    Unity3D에서 백그라운드 사운드 재생을 (완전 꼼수로) 하게 하는법

    3줄요약 Android에서는 프로젝트 파일을 Export한 후, 소스코드를 일부 고쳐 Pause부분을 지운 후 빌드한다. (APK업로드방식이라 추후 다른 방법을 찾아야할 수 있음.) IOS에서도 Export된 Xcode 프로젝트 파일에서 일부 코드를 수정해서 사운드 재생이 계속 되게 한다. 단, IOS에서는 코드 외의 빌드 설정도 수정할 필요가 있다. (이하 AOS = Android OS) 개요 어찌저찌해서 어플리케이션 외주를 하게 되었다. 특정 타이밍에 유저 액션을 받거나 이미지를 보여주거나 하는 프로그램이었다. 웹으로 하지 않았으면 하고, 동영상으로 하기에는 인터렉티브 요소 등 별개 프로그램으로 작성이 필요한 요구사항이 있었다. 그래서, 규모가 작음 + IOS와 AOS 둘다 지원 + 미디어 관련 요구..

    맥북에서 변환 딜레이 없이 한글, 영어, 일본어 키보드 다 잘 사용하기 (by Hammerspoon)

    요약 (겸 설치방법) HammerSpoon을 설치 후, foundation_remapping 을 설치한다. 키보드 설정에서 capslock으로 한영변경을 끈다. 참고링크 한국어, 영어, 일본어 키보드를 맥 키보드 설정에 추가한다. 다음 gist 파일을 hammerspoon의 설정파일(init.lua)에 반영시킨다. Ctrl+Space로 한+영 조합, 일+영 조합으로 바꾸고, CapsLock으로 영어랑 Toggle 할 수 있다. 물론 Capslock으로 바꿨을 때의 전환 딜레이도 사라진다. (다크모드면 syntax hightlighting이 안되요!) (히라가나 구글 일본어 키보드를 사용하는걸 가정하여 설정하였다. 맥 기본 일본어 키보드를 쓸거면 코드에서 주석을 바꿔주면 된다.) 개요 회사에서 맥북을 샀다..

    Welcome To Spring :)

    참고 : asfirstalways.tistory.com/334 드디어 나한테도 봄이 왔다. 한국에서 백엔드 개발자를 한다고 하면 피해갈 수 없는게 바로 이 봄인 것 같다. 이 봄은 내가 이때까지 쓰던 프레임워크랑 반대로 규칙을 강제하는 부분이 많기에, 프레임워크에서 하고자하는 의도와 동작한느 원리를 알지 못하는 상태에서 접근하면 피상적인 이해만 한 후 끝날 가능성이 높다 생각했다. 그래서 하나하나... 정리를 해보자. 글이 혼란스러울 수 있는데 남이 읽으라고 쓴 글이 아닌 내 머릿속에서 정리한걸 남겨둔거라 혼란스러우면 정확히 읽고 있는거 맞다. ## Servlet 자바 개발자라면 다 들어봤을 단어. 그러나 나는 C# 개발자였기에 들어본 적 없다. Servlet 클래스라고 있는데, 이게 뭘까요? docs...

    함수형 언어에서 state를 관리하는 법

    (Elixir 특징상, 이 글에서의 Process는 Erlang Process입니다.) 서론 함수형 언어의 특징으로는 Pure Function이 있다. 하지만 프로그램을 짜면 state 관리는 필요하다. 따라서 pure function에 state를 넘겨주는 방식으로 관련 처리를 한다. (elixir에서는 그랬다.) 그런데 `그럼 함수형 언어에서 state 관리는 어떻게 해?' 라는 질문을 친구한테 들었다. 질문 자체가 포괄적이긴 하다. 그냥 얼랭 프로세스에서 하나 들고있고, 그걸 쓴다 하기에는 친구가 납득하지 못한 느낌이었고, 나도 납득할만한 설명을 못했다고 생각했다. 납득할 만한 설명을 하려고, 인터넷을 좀 찾아봤다. 어느정도 납득할만한 설명을 봐서, 정리하고자 이 글을 쓴다. (https://www..

    내가 읽으려고 하는 데이터베이스 정규화 정리

    나는 데이터베이스 수업을 2학년때 일본에서 들었다. 그때의 지식이 나의 머리 뒷편에 남아서 내가 DB 모델링을 할 때 항상 도와주는 느낌적 느낌은 들지만, 시험을 보라고 하면 딱 나오질 않는 느낌의 지식이 되었다. 이러한 방법은 무의식중에 날 도와주지만, 주기적으로 정리하면서 더욱 도움이 되게 할 수 있다. 그러니까 정리한다. (https://ko.wikipedia.org/wiki/데이터베이스_정규화) 여기 참고했음 https://www.studytonight.com/dbms/database-normalization.php 여기도 정규화는 왜 하는가? 데이터 중복을 피하려고 테이블 간 좋은 관계(여기서는 잘 조직된 관계)를 형성하려고 이러한 좋은 관계를 이루어내기 위해서, 각 단계별 진행하는 과정이 있다..