All
21 posts
2022년 4월에야 하는 2021년 회고

근황 2021년 4월부터 일했던 회사에서 2월부터 정규직 제안을 받았다. 원래 계약기간이 2월까지였고, 막학기를 앞두고 있었기에 당연히 퇴사를 염두에 두고 있었는데, 좋은 조건을 주셨고 주 1회 출근으로 배려를 해주셔서 회사와 학교를 병행하고 있다. 오랜만에 학교를 가니까 22학번도 많았는데, 너무.. 화석같다.. 하지만 계속 비대면만 해왔었는데 대면으로 학교를 나가니, 막학기를 대면으로 할 수 있음에 감사한 것 같다. () 2021년도의 나를 되돌아보고 계획했던건 잘 지켰는지, 좋은 개발자로 일하고 있는지에 대해서 한번 생각해보려고 한다. 2021년 솔직히 2021년을 치열하게 살았다고는 못할 것 같다. 2021년에는 휴학을 결정했다. 인턴을 구해서 처음으로 현업에서 일해보고 싶어 휴학을 결정하기도 했지만 개인적으로 힘든일도 있었기에 6개월 정도는 나를 돌아볼 시간이 좀 필요했다. 하지만 생각보다 빠르게 일을 구해버렸다. 2021년 4월 말 부터 일을 시작했는데, 일을 시작하면서…

April 06, 2022
Life
Pythonic하게 코드 작성하기 - 리스트 컴프리헨션, 제너레이터, range, enumerate

본 포스팅은 코딩테스트를 염두에두고 작성한 파이썬 코드 작성법이며, 파이썬 알고리즘 인터뷰(박상길 지음, 2020)를 읽으며 정리한 내용임을 밝힙니다. 이전 포스팅에 이어서, 본 포스팅에서는 리스트 컴프리헨션, 제너레이터, Range, Enumerate에 대해서 알아보도록 하겠습니다. 다시한번 강조드리지만, 기존에 다 알고 있던 기능이라도 한번쯤 되돌아 보시면서 코드를 작성하는 법을 익히는 시간이였으면 좋겠습니다. 리스트 컴프리헨션 파이썬은 , 와 같은 함수형 기능을 지원하고, 또한 지원합니다. 이는 아주 오래전부터(1994년) 람다를 지원해왔고, 이보다 더 유용한건 입니다. 리스트 컴프리헨션이란 무엇일까요? 기존 리스트를 기반으로 새로운 리스트를 만드는 구문 파이썬 2.0부터 지원되었으며, 위 처럼 함수형 기능을 사용하는 것 보다 훨씬 가독성이 좋습니다. 파이썬 2.7부터는 리스트 말고도 딕셔너리 등도 가능하도록 추가되었습니다. 제너레이터 제너레이터란, 루프의 반복(Itera…

September 12, 2021
CS
Pythonic하게 코드 작성하기 - 인덴트, 네이밍컨벤션, 타입힌트

본 포스팅은 코딩테스트를 염두에두고 작성한 파이썬 코드 작성법이며, 파이썬 알고리즘 인터뷰(박상길 지음, 2020)를 읽으며 정리한 내용임을 밝힙니다. 프로그래밍 언어는 도구다. 어떤 알고리즘을 작성할 때 언어는 도구에 불과한게 맞습니다. 다만, 중요하게 생각해야할 점은 아무리 쉬운 도구라도 제대로 사용법을 숙지해야 제대로 사용할 수 있다. 입니다. 같은 칼이라도, 저의 칼질과 횟집 사장님의 칼질은 차원이 다릅니다. 저 또한 파이썬 문법에 대해 굉장히 깊이있는 내용까지 숙지하지 않고 현업에서, 혹은 학교 과제로 어설프게 익힌 언어로 코딩테스트를 시도할 때면 흔히 말하는 을 굉장히 많이 했습니다. 비유하자면 에 집중해야 하는데, 어떤 칼을 쓸지만 고민하다가 시간이 다 지나버리는 거라고 할까요.. 따라서 파이썬이 쉬운 언어고 생산성이 좋은 언어로 알려졌다 하더라도 왜 쉽고 생산성이 좋은지 그 원리를 알지 못하면 제대로 그 장점을 활용하긴 어려울 것입니다. 코딩테스트에서도 마찬가지 입니…

September 05, 2021
CS
Django(장고) ORM 정리 - 데이터를 조작하는 방법

Operation 처음 언급한 것 처럼 ORM의 함수를 통해서 어떻게 데이터들을 조작할 수 있는지 살펴보겠습니다. Django CookBook 여기서 기본적인 CRUD 문법을 확인하실 수 있습니다. Select 특별한 설명없이 자주 쓰이는 함수들을 소개드리고, 주의할 점 몇가지를 말씀드리겠습니다. 먼저 객체를 통해 데이터를 가져오는 연산들 입니다. 여기서 기본적으로 전체를 가져오거나, filter 함수를 통해 Where Caluse를 사용해 조건을 걸어줄 수 있습니다. 중요한 점은 위 두 연산 모두 실제 객체를 가져오는 것이 아닌, 만을 반환하기 때문에 위 변수로는 접근이 바로 안됩니다. 따라서 실제 객체에 접근하기 위해서는 이런식으로 하게 되면 실제 객체에 접근할 수 있게 됩니다. first는 쿼리셋 내에서 가장 첫번째의 값을 참조하는 함수입니다. 제가 이렇게 쿼리셋 / 실제 객체 접근을 구분한 이유는, DB 접근 횟수를 줄임으로써 성능에 이점을 줄 수 있기 때문입니다. 예를 들…

August 10, 2021
Framework
Django(장고) ORM 정리 - Model의 정의

ORM(Object Relational Mapping) 먼저 이 뭘까요? 이름에서 알 수 있듯 간단히 말하면 와, 를 시켜주는 역할을 하는 녀석입니다. <- 매핑(ORM) -> 로직을 구성하면서 CRUD를 위해 SQL을 작성할 필요 없이, 객체를 정의하고 ORM이 제공하는 Method를 사용하여 데이터베이스에 적재된 데이터를 쉽게 접근할 수 있도록 하는 것입니다. 이 과정에서 자동으로 SQL을 생성하면서 매핑이 되는 것 입니다! (편하죠?) 텍스트로만 보셨을 땐 이해가 잘 안되실 수도 있는데요, 코드를 보면 쉽게 이해하실 수 있으실 겁니다. 만약 ORM이 없으면 DB에 접근하는 비즈니스 로직마다 SQL을 작성해서 접근해야 하고, 이렇게 되면 비즈니스 로직이 너무 복잡해지고 간결성이 줄어듭니다. 또 팀 내에서 코드를 서로 이해하는데에도 큰 리소스가 듭니다. 저도 회사에서 Django 기반으로 서버가 구성되어 있어 ORM을 사용해 백엔드 로직을 작성하고 있는데, 너무 편합니다. …

July 10, 2021
Framework
피플펀드 1개월간의 인턴 생활 회고

오랜만의 포스트 인턴 생활을 하게 되면 한달에 2번은 올리겠다고 다짐했지만.. 회사에 적응하느라 한달반동안 이제 처음으로 포스트를 쓰게됩니다..ㅎ 짧은 기간임에도 처음으로 현업을 접한 것이다 보니 배운게 정말 많고 쓰고싶은 포스트도 많지만, 일단 출근 4시간전에 빨래방에서 글을 쓰고 있어서 간단히 배운것들과 후기만 남기려고 합니다. 맡은 역할 자세한건 말씀드릴 순 없지만, 제가 다니는 회사는 P2P 대출을 주력 상품으로 내세우는 회사이기 때문에 돈의 흐름이 매우 중요합니다. 사실 어떤 서비스를 운영하는 회사던 간에 결제 시스템이 있다면 돈의 흐름을 관리하는 (정산, 이체 등) 로직은 어디에나 존재합니다. 그 중에서도 투자와 대출에 관련되어 있는 회사에 다니다 보니 그 로직을 관리하는 일은 매우 중요하다고 할 수 있습니다. 저는 핀테크 엔지니어링 그룹에서 정산, 상환 등의 돈의 흐름을 관리하는 백엔드 로직을 개발하는 역할을 담당하고 있습니다 :) 한달동안 해왔던 일 201712315…

May 26, 2021
Life
피플펀드 인턴 면접 및 합격 후기

인턴을 구하게 된 계기 저는 3학년 2학기까지 하고 1년동안 휴학을 하게 되었는데, 휴학을 한 목적은 명확했습니다. 3학년 동안 너무 열심히 달렸으니 조금만 쉬기 알고리즘 실력 쌓기 실무 개발 능력을 키우기 2월까지 하던 프로젝트를 마무리하고, 조금 휴식기를 가지면서 천천히 인턴을 구해보기 시작했습니다. 특히 저는 스타트업에서 일을 해보고 싶었습니다. 일을 배우는 입장에서, 대기업보단 스타트업과 같이 빠르게 성장하고 있는 회사에서 일하는게 더 많이 배울 수 있다고 생각했습니다. 아무래도 대기업 인턴은 과제를 주시거나, 묵어있던 과제를 해결하는데 초점이 맞춰져 있다고 들었었고 스타트업은 바로 일할 수 있는 사람을 뽑기 때문에, 제가 스타트업 인턴에 합격하게 된다면 그래도 그 자격이 약소하게나마.. 인정된게 아닐까 하는 생각이 들었었습니다. 대기업보다야 많은 트래픽을 다뤄보는 경험은 아니겠지만, 개개인이 서비스에서 담당하는 부분이 더 큰 것이 저에게는 메리트로 다가왔습니다. 인턴은 금…

April 14, 2021
Life
프로그래머스 - Level 2 위장 | Python

문제 링크 및 출처 스크린샷 2021-04-09 오후 9.18.14 풀이과정 Dictionary에 각 종류별 옷의 갯수를 저장합니다. 1부터 시작한건 아무것도 안입을 수도 있어서 입니다.문제에서 한개의 의상은 입는다고 되어있다고 하니 하의만 입고 상의는 안입을 수도 있습니다. 그 다음 각 갯수를 모두 곱하고, 마지막에 1을 빼고 리턴해줍니다. 안입은 경우를 위에서 더해줬으니 모두 안입은 경우가 생길 것이므로, 그것은 답에서 제외합니다. 풀이과정

April 09, 2021
Algorithm
프로그래머스 - Level 2 전화번호 목록 | Python

문제 링크 및 출처 스크린샷 2021-04-09 오후 9.18.14 풀이과정 해시문제인데 그냥 풀려버렸네요.. 전화번호부를 Sort 하게되면 문자열이기 때문에 앞 문자가 유니코드상으로 빠른 순서대로 정렬이됩니다. 따라서 바로 뒤에 있는 것만 앞의 것으로 시작하는지(접두어) 확인하면 됩니다. 풀이과정

April 09, 2021
Algorithm
프로그래머스 - Level 1 완주하지 못한 선수 | Python

문제 링크 및 출처 스크린샷 2021-04-09 오후 8.32.06 풀이과정 처음에는 이렇게 풀었습니다. 완주한 사람의 목록에 있는 사람을 참가자에서 하나씩 빼는겁니다. 정확도는 모두 맞는데 해시를 쓰지 않으면 조회시간이 오래걸려 효율성 테스트에서 모두 문제가 생깁니다. 따라서 해시기반 자료형을 사용해야 하는데, Python 에서는 를 사용하면 됩니다. 저는 근데 위 아이디어를 좀 더 살렸는데요, 파이썬 내장함수중에 이라는 함수가 있습니다. 두 리스트를 같은 인덱스 끼리 Tuple로 묶어준다고 생각하시면 됩니다. 그럼 sort를 한 뒤에 같은 인덱스 묶인 Tuple간 원소를 비교했을 때 다르다면 그게 답이 될겁니다. 만약 if문에 안걸리면 마지막 원소가 답이 됩니다. 풀이과정

April 09, 2021
Algorithm
비대칭 암호화와 RSA 알고리즘

비대칭 암호화는 암호화, 복호화에 사용하는 키가 2개인 암호화 방식을 의미합니다. 그 키는 Public Key, Private Key로 나뉩니다. 일반적으로 Public Key는 자물쇠, Private Key는 그 자물쇠에 맞는 열쇠라고 생각하면 편합니다. 다만 Public Key, Private Key 둘 다 서로 암호화, 복호화에 사용할 순 있습니다. 일반적으로 그렇다는 겁니다. 출처: codedragon.tistory.com 방식 만약에 A 서버와 B 클라이언트가 정보를 교환한다고 해봅시다. A는 B에게 공개키를 제공합니다. 그리고 B가 정보를 보낼 때 공개키로 암호화를 해서 보냅니다. 이렇게 되면 B가 보낸 정보는 A의 개인키로 밖에 열지 못하기 때문에 유출되더라도 위험하지 않으며 A에게만 비공개적으로 정보를 보낼 수 있는 것입니다. HTTPS HTTPS 프로토콜 상에서 통신하는 A 서버와 B 클라이언트가 서로 정보를 교환해야 한다고 가정해봅시다. HTTPS란? SSL 프…

April 05, 2021
CS
SQL과 NoSQL의 비교

SQL SQL이란 Structured Query Language 입니다. RDBMS(관계형 데이터베이스 관리 시스템)과 상호 작용을 하기 위한 언어이며, 데이터베이스가 아닙니다. 어쨌든 중요한건 SQL는 관계형 데이터베이스를 다룰 때 사용한다는 것입니다. RDBMS에는 두가지의 중요한 특성이 있습니다. 데이터는 정해진(엄격한) 데이터 스키마 (= structure)를 따라 데이터베이스 테이블에 저장됩니다. 데이터는 관계를 통해서 연결된 여러개의 테이블에 분산됩니다. 엄격한 스키마 데이터는 Table에 Record로 저장이 되며, 명확하게 정의된 Schema가 존재합니다. Schema는 구조이며, 이 구조에 적합하지 않은 Record는 Table에 추가할 수가 없습니다. 그래서 이란 표현을 쓰는겁니다. 관계 이름에서부터 알 수 있듯이 입니다. 각 테이블마다 관계를 맺고있다는 뜻입니다. 이게 중요한 이유는 중복을 피할 수 있다는 것입니다. 그 관계는 Foregin Key와 Prim…

April 04, 2021
Database
JVM의 Garbage Collection

Garbage Collection C/C++ 에서는 메모리를 개발자가 명시적으로 해제하지만 JVM 기반 어플리케이션에서는 명시적으로 해제를 하지 않습니다. JVM의 Garbage Collector가 더이상 사용되지 않는 인스턴스를 찾아내서 메모리를 삭제하는 행위를 합니다. 동작 방식 Stop The World 앞서 말씀드렸듯 는 자동으로 JVM이 판단하여 사용되지 않는 인스턴스의 할당을 해제하는 역할을 합니다. 다만 메모리를 해제하기 위해서는 자바 어플리케이션의 GC를 실행하기 위한 쓰레드를 제외하고 모두 멈추게 되고, GC가 완료된 후에야 다른 쓰레드가 작동하게 됩니다. 이러한 상태를 라고 합니다. Mark and Sweep 상태에서 GC는 스택의 모든 변수나 Reachable 객체를 스캔한다. 여기서 사용되고 있는 메모리를 찾아내는 과정이 , 식별되지 않은 객체를 메모리에서 제거하는 과정이 이다. GC 튜닝 GC 튜닝이란 이러한 Stop The World 상태의 시간을 …

April 04, 2021
CS
메모리 관리 기법과 가상 메모리

본 포스팅은 한양대학교 컴퓨터소프트웨어학부 유민수 교수님의 운영체제 과목 강의 자료와 수업내용을 참고하였습니다. 메모리 관리 기법과 가상 메모리 가상메모리를 설명하기 위해서는 OS의 메모리 관리 기법에 대해서 알고있어야 합니다. CPU는 스케줄링 알고리즘을 통해서 메모리에 올릴 프로세스를 선택하게 됩니다. 이 과정에서 메모리의 관리는 OS에서 아주 중요한 부분이죠. 메모리 관리 기법의 두가지 목적 프로세스 별로 하나의 단일하고 연속적이고, 보호가 되는 메모리의 공간을 할당하기 위함. 실제 물리적 메모리 공간보다 더 많은 공간을 사용하기 위해서 메모리 관리 기법 연속적 Address Binding Address Binding 특정 메모리의 주소에 코드와 데이터를 적재하는 것. 연속적인 메모리의 할당 1번 목적이 기억나시나요? CPU는 연속적인 메모리의 할당을 요구합니다. IMG_0A580D86915E-1 이런식으로 프로세스간에 연속적으로 메모리를 할당하도록 하게 되어있고, 남는 공간…

April 03, 2021
CS
운영체제 프로세스 동기화 기법(Semaphore, Mutex)

동기화란? 다수의 프로세스, 혹은 쓰레드에서 같은 공유 자원에 동시에 접근해야 하는 경우가 생깁니다. 해당 경우에, 프로세스들이 같은 공유자원에 접근할 때 일관된 순서가 정해지지 않으면 데이터의 일관성이 깨지게 됩니다. 그래서 프로세스가 동시에 같은 공유자원에 접근할 때 접근 순서를 보장해주는 과정이 입니다. Race Condition 다수의 프로세스들이 공유 자원에 동시에 접근하고 있는 상황을 의미합니다. Critical section Race Condition에 놓인 프로세스들의 영역, 즉 공유자원이 여러 프로세스들에 의해 동시 다발적으로 Access될 수 있는 영역입니다. Critical Section Problem의 해결법 공유 자원의 접근 순서를 제어하기 위해서 만족해야할 은 다음과 같습니다. Mutual Exclusion(상호배제) 하나의 프로세스, 혹은 쓰레드가 Critical Section에서 실행 중이면 다른 프로세스, 혹은 쓰레드가 접근하면 안된다. Progre…

April 02, 2021
CS
SQL 기본적인 문법 정리

SQL 은 Structured Query Language 의 줄임말로, 관계형 데이터베이스 시스템(RDBMS)에서 저장된 데이터베이스의 자료를 검색하고 관리하기 위한 언어입니다. SQL의 종류 DDL (Date Definition Language) 릴레이션을 정의하기 위한 언어를 의미하며, 테이블을 생성, 수정, 삭제할 수 있는 CREATE,ALTER,DROP 등의 명령어가 있습니다. DML (Data Manipulation Language) 데이터의 추가, 수정, 검색, 삭제를 위한 언어를 의미하며, SELECT, INSERT, UPDATE 등의 명령어가 있습니다. DCL (Data Control Language) 사용자의 접근 권한을 제어하는 언어를 의미하며, GRANT, REVOKE 등이 있습니다. DDL 명령어 CREATE 데이터베이스 생성 데이터베이스 사용 테이블(릴레이션)의 생성 View 생성 SHOW 데이터베이스 확인 테이블 확인 DESC 테이블 정보 확인 ALTER …

March 29, 2021
Database
맥북에서 mariadb 설치하기 (HomeBrew)

MariaDB란? RDBMS(Relational DBMS)이며, 오픈소스이다. Mysql API와 정확히 일치하여 호환성이 높고, MYSQL의 Monti program AB를 설립한 Michael Monty Widenius가 개발했다. (Monty의 둘째 딸 이름을 따서 MariaDB라고 합니다.) 설치방법 Xcode Xcode는 맥에 깔려있는 앱스토어에서 다운로드 받으시면 됩니다. HomeBrew 설치 Homebrew는 macOS 용 패키지 관리자이며, 리눅스에서 사용하는 sudo apt-get, yum 등과 같다고 생각하시면 됩니다. Homebrew로 설치하는 것이 어렵다고 느끼실 수 있지만, 환경변수나 패키지 관리를 아주 잘해주기 때문에 매우 편합니다. 익숙해지면 한 줄의 명령어로 패키지를 설치해주는 홈브류에게 고마움을 느끼실 겁니다 ㅎㅎ 먼저 터미널에 접속해줍니다. 위 명령어를 터미널에 입력해주세요. 이후 나오는 것에서 엔터 입력하라면 하고, 맥북 비밀번호 입력하면 됩니다.…

March 24, 2021
Database
Data, Database, DBMS의 개념

본 포스팅은 한양대학교 컴퓨터소프트웨어 학부 데이터 베이스 시스템 과목에서 학습한 내용을 기반으로 함을 알려드립니다. Data 흔히 많이 들어본 데이터(Data)의 정의는, 다음과 같습니다. 기존에 알려져 있는 ‘Fact’ 중 기록과 저장이 가능한 것 예를 들어서 이름, 주소, 핸드폰 번호 등이 있습니다. Database 데이터베이스란 쉽게 생각하면 데이터를 모아놓은 것인데, 좀 더 정확한 정의는 다음과 같습니다. 연관되어 있는 데이터가 논리적으로 연결된 집합 예를 들어, 한 회사의 연락처는 데이터베이스가 되는 겁니다. 핸드폰 번호라는 가 에 의해 같은 회사 사람의 데이터로 논리적 연결이 형성되면서 집합을 형성한 겁니다. 어렵게 설명했지만 쉽게 말하자면 의 개념으로 이해하시면 됩니다. 실제 세상에서, 어떤 한 면을 대표하는 것으로 생각하는 것입니다. 이 느낌을 잘 가지고 있는 것이 중요합니다. 본 포스팅에서는 RDBMS(관계형 데이터베이스)를 다루며, SQL을 사용하지 않는 데이터…

March 23, 2021
Database
Spring을 사용한 카카오 i Open Builder 챗봇 연동 RestAPI 서버 개발

프로젝트 개요 시작하게된 계기 저는 CIT 코딩학원의 관리자로 2019년도 6월부터 2021년도 3월말까지 근무했습니다. 처음 근무했을 당시 많은 부분이 수기로 작성되고 있었습니다. 그로 인해서 학생들의 디테일한 사항을 놓치게 되고, 컴플레인이 많이 발생했었습니다. 저는 그래서 저는 이렇게 생각했습니다. 반복적이면서 수작업으로 이뤄지는 일련의 과정들을 자동화함으로써 교육의 질을 높이고 학생들에게 더 신경쓸 수 있지 않을까? 자동화가 되어있지 않은 프로세스들을 자동화 시킴으로써 업무의 효율을 높이고, 학생들의 진도 현황과 관리에 더 노력을 기울일 수 있도록 하는게 중요하다고 생각했습니다. 정리하자면 백오피스(Back Office)의 상당 부분을 자동화하여 프론트오피스(Front Office)에 더 신경쓸 수 있도록 하는 것이 학원의 발전에 도움이 될 것 이라고 생각했습니다. 상담 교육의 질 진도 관리 디테일 관리 선생님 처우 개선 이러한 요소들에 더욱 신경쓸 수 있도록, 백오피스 개…

March 13, 2021
Projects
마크다운(MarkDown) 문법, 사용법 정리

마크다운(MarkDown) 문법 위키백과에서 정의하는 마크다운(Markdown)의 정의는 다음과 같습니다. 마크다운(markdown)은 일반 텍스트 기반의 경량 마크업 언어다. 일반 텍스트로 서식이 있는 문서를 작성하는 데 사용되며, 일반 마크업 언어에 비해 문법이 쉽고 간단한 것이 특징이다. HTML과 리치 텍스트(RTF) 등 서식 문서로 쉽게 변환되기 때문에 응용 소프트웨어와 함께 배포되는 README 파일이나 온라인 게시물 등에 많이 사용된다. 위키백과 마크다운(MarkDown)은 Github의 등에서 md 확장자를 통해서 접해보셨을 거에요, 쉽게 말하면 이고, 특수문자나 기호 등을 사용해서 HTML로 쉽게 변환할 수 있는 언어라고 생각하시면 됩니다. 개발자라면 마크다운(MarkDown) 문법 정도는 알고계셔야 좋습니다 :) 그럼 알아볼까요? 제목(Header) 제일 먼저 제목입니다. 제목을 작성하는 방법은 두가지로 나뉩니다. 을 사용해 표시 을 사용해 표시 을 사용해 표…

March 10, 2021
Tips
Github 블로그 호스팅 - 개발 공방의 시작

주인장 소개 이 글을 보실 분들이 계실지는 모르겠지만, 중학생 이후로 처음 블로그를 파본 날을 기념하기 위해서 포스팅을 남깁니다 ㅎ 누구시죠? 저는 서건식이라고 합니다. 한양대학교 컴퓨터 소프트웨어 학부 3학년 2학기를 수료하고, 현재 인턴을 위해 휴학중입니다. 학교에 들어왔을 때는 개발이 너무 어렵고 재미가 없었습니다. 그 이유는 1학년 1학기 소프트웨어 입문을 담당하셨던 교수님께서 python이 뭔지도 몰랐던 저에게 추상화, 자료구조, 알고리즘 등의 가르침을 주신 덕분에 흥미를 잃게되었죠… 하지만 어쩌다가 삼성전자와 디센터가 주관한 블록체인 교육&해커톤 프로그램인 FOUNDERS 3기에 참여하고, 유저들의 Request와 데이터들을 다루고 만족감을 주는 서비스 개발에 흥미가 있다는 걸 깨달았습니다. 그 이후로 카카오가 주관한 제주 블록체인 해커톤이나 카이스트 몰입캠프, 한화에서 주관한 Dreamin BlockChain 해커톤 등 많은 프로그램에 참여해봤습니다. 팀원들과…

March 07, 2021
Life