전체 글
테이블간의 Cardinality와 객체 내의 Attribute간의 Cardinality?
Introduction 며칠 전 친구한테 질문을 받았다. 학교의 DB 과제였는데, DB 모델링시 테이블간의 Cardinality는 중요하게 여겨지는데, 한 테이블(Entity가 속하는) 안의 Attribute간의 Cardinality는 중요하게 여기지 않는 이유를 설명하라는 것이었다. 당연하게 걍 신경안써도 되는거 아님? 이라는 말을 하기 싫었다. 따라서 나름대로의 이유를 생각하고 조사해보았다. 이런 질문에 답하기 위해서는 Cardinality의 정의와 그러면 왜 테이블간의 Cardinality를 신경쓰는가?에 먼저 답하는 것이 중요하다. Cardinality의 정의 Cardinality는 집합론에서 사용하는 단어로, 집합의 크기를 뜻한다. the cardinality of a set is a measu..
Flask + SQLAlchemy를 사용하며 배운것들을 정리
migrate 변수는 뭘 하는거냐 Migrate 변수는 뭐하는 변수람 flask 에서 migration을 하는 코드를 보면 다음과 같은 코드를 볼 수 있다. migrate = Migrate(app, db) 역시나 이게 왜 필요한지 말 안해주는 사람이 많다. 그래서 찾아봤는데...커맨드를 입력하기 위해 필요한 변수였다. flask 공식문서 의 Command Reference를 보면. The following example initializes the extension with the standard Flask command-line interface: from flask_migrate import Migrate migrate = Migrate(app, db)이것까지 해야, db migrate를 실행시킬 수..
C++의 Rule of Zero
한참 전에 업무에서 C++을 사용하던, 평생 C++을 쓸 것 같았던 그 시절 공부했던 기록을 찾아서 남겨본다. Rule of Three, Rule of Five에 대해서 간단히 정리하자면... Rule of Three는 소멸자, 복사 생성자, 복사 할당 연산자 중 하나를 정의했다면 다른 것도 같이 정의해야 한다는 것이다. Rule of Five는 모던으로 넘어오면서 위의 3개에서 이동 생성자, 이동 할당 연산자를 추가 한 것이다. 단순히 무조건 기계적으로 만들어라라기 보다는, 저 중 하나를 만들었으면 다른 것에 대한 생각을 무조건 하고, 적절한 처리를 해야된다는 뜻이다. (포인터를 멤버로 가지고 있고 소멸자에서 그 포인터를 할당 해제 하는 클래스가 있을 때, 복사 생성자를 정의 안하면 복사된 인트선스와 ..
Elixir의 Ecto에서 virtual 키워드가 의미하는 것
처음에는 OOP의 virtual 개념이랑 헷갈려서 많이 혼동했던 부분. ecto에서 field를 정의할 때 virtual을 정해줄 수 있다. 여기서 virtual은 DB에 저장하지 않는 field라는 뜻이다. DB에 저장하지도 않은 테이블이 왜 필요하나면, 이것을 이용해서 유용한 처리를 할 수 있기 때문이다. 그 스키마와 연관된 값이지만 저장할 필요는 없는, 그런 값이 필요할 때가 있다. 공식 문서에서 발췌한 설명이다. 이 경우에서는 password 필드를 virtual로 하였다. password 필드는 평문 패스워드가 들어가는데 DB에 직접 들어갈 필요는 없다. 하지만 user와 관련된 값이기에 분리하기도 애매하다 virtual로 저장되기에 DB에 저장되지 않는다. changeset에서 이 값을 변환해..
좌절의 11개의 맛
원문 : http://www.foddy.net/2017/01/eleven-flavors-of-frustration/ Eleven Flavors of Frustration A list of some of my favorite flavors of frustration in games. Number 7 will shock you! www.foddy.net 게임 디자이너들은 플레이어가 좌절을 느끼는 것은 게임 디자인이 뭔가 잘못되고 있는 것이라고 자명하게 생각한다. 그러나 좌절은 대부분의 유명하고 영향력 있는 디자인에서의 필수적 요소이다. 다시 시작할 수 없는 스페이스 인베이더가 있다면 어떨것인가? 나무 그루터기 없는 Myst가 있다면 어떨 것인가? 좌절을 완벽하게 피한 게임은 마찰, 저항이 없는 게임일 것이다..
2019 겜마루 신입생 공모전 멘토링 후기
2019년 2학기에 진행된 겜마루 신입생 공모전에서 멘토를 한 적이 있습니다. 그때 멘토링을 하면서 느낀 점을 여기 간단하게 적어보고자 합니다. Icebreaking 멘토링을 시작할 때, 서로의 목표를 확인하는 것이 중요합니다. 멘티가 이 활동을 통해 어떤 것을 원하고, 할 수 있는지 알아야합니다. 어느정도의 실력을 가지고 있는지 어느정도의 성장을 원하는지 어느정도의 시간과 열정을 가지고 임하고 있는지. 멘토(나)는 이 활동으로 어떻게 하고 싶은지를 생각해보는 것도 중요합니다. 어떠한 목적으로 임하고 있는지(지식 정리, 가르침 욕구, 친목 도모 등) 어느 정도의 교육을 할 수 있는지 어느 정도의 시간과 열정을 가지고 임하고 있는지 이렇게 서로의 이해를 맞추고, 자신의 이해를 파악하고. 멘토링의 계획을 세..

Zeropage Advent Calander 기획 후기
같이 한 Atez의 글은 여기서 보실 수 있습니다. 이번년도 초부터 학교 동아리의 부회장을 담당하면서, 방학때 할 수 있는 좋은 활동이 없을까 고민하다 Advent Calendar 이벤트를 진행한 적이 있습니다. 여기에 간단하게 그 기록을 남깁니다. Advent Calendar란? 크리스마스를 기다리기 위해서 만든 일력이 유래로, 1부터 24까지 써있는 상자에 선물을 넣어놓고 하나하나씩 열어보며 크리스마스를 기다리는 유럽의 문화입니다. 이것을 동아리, 단체, 회사같은 곳에서 적용합니다. 각자 글을 쓰고, 그걸 하나하나씩 열어보는 식으로 진행합니다. 진행 제가 이걸 기획하게 된 계기는 일본 동아리에서 이걸 진행한 적이 있었기 때문입니다. 그때는 adventar.org/ 에서 진행을 하였는데, 이건 날짜가 ..
블로그를 새로 개설하였습니다.
안녕하세요! 저는 컴퓨터공학을 전공하고 있는 학생입니다. 취미는 프로그램 개발, 게임 제작, 음악감상 입니다. 블로그를 개설한 이유 여러가지 이유가 있습니다. 주된 이유는 기록을 다른 사람에게 공유하면서, 그를 통해 저의 능력을 기르기 위함입니다. 기록의 공유 새로운 기록 공간이 필요했습니다. 저는 이미 여러곳에 기록을 하고 있었는데요, 기존에 쓰던 것은 이러한 이유로 부족한 부분이 있었습니다. 트위터는 기록을 하는 곳이라 하기에는 부적절한 것 같습니다. 휘발성 정보에 알맞은 공간입니다 단지 지울 이유가 없어서 기존 글이 자동으로 지워지지 않을 뿐이고요. 그래서 나온게 Fleet인가 하는 생각도 듭니다. 에버노트는 개인 메모장이기에 공유가 되지 않고, 공유된다는 것을 신경쓰지 않으니 보기 좋게 가공하는 ..