1. 게시판 만들기

2 분 소요

최근에 배우기 시작한 기술들(Node.Js, React)을 직접 사용해보고 싶어서 간단한 게시판을 만들기 시작했었다.
현재 한 번 시도해 봤다가 제대로 안 되서 뒤엎고 다시 만드는 중이다.
그래서 이번에는 이 뒤엎기 전의 것들에 대해서 이야기 해보려고 한다.


일단 대부분의 작업은 학원에서 했었다.
학원의 수업 내용을 다 듣고난 뒤 남는 시간에 조금씩 진행하는 방식이었고, 덕분에 머리 터지는 줄 알았다..
또한 작업할 때 구조를 짜는것이 어렵다고 느꼈던 적이 많아 일부러 알고리즘이나 데이터 구조같은 부분들은 최대한 혼자서 해결해보려 노력했었다. 그래도 생각보다는 진도가 나쁘지 않게 나갔던 것 같기도 하고, 역시 직접 사용해봐야 알 수 있던 부분들도 많았던 것 같다.

처음 시작했을 때는 데이터 구조를 어떻게 해야할 지 정리는 전부 됐는데, 이걸 Schema로 어떻게 표현을 해야할 지 몰라서 고민도 많이 해 보고, 시도도 조금… 해봤다.
구조를 게시판 안에 게시글, 게시글 안에 댓글 식의 구조였었는데, 이걸 스키마로 표현하는 방법을 몰라서 열심히 구글링을 했었다.
그러던 중 Schema의 data type을 javascript object로 지정할 수 있다는 글을 봤었다.
일단 내가 생각하던 대로는 할 수 있으니 적용시켜 보기로 했고, 이 때 코드를 효율적으로 만들기 위해서 이것저것 해봤었다.

우선, 파일 구조를 바꿔보았었다.
원래는 각 Schema당 하나의 파일로 정리를 해서 사용을 했었으나, 파일의 export type은 Schema Object였었고, Schema를 정의할 때 필요했던 객체는 javascript Object였다.
그래서 javascript Object도 사용할 수 있고, Schema Object도 사용할 수 있도록 구조를 만들었어야 했는데, 나는 Schema용 javascript Object를 한 파일에 전부 저장하고, Schema Object를 만드는 곳에서 그 파일을 참조하여 javascript Object를 가져오는 방식으로 만들었었다.

하지만 만들던 중 갑자기 이게 갑자기 이렇게 구조를 짜면 효율이 나쁘지 않을까? 라는 의문이 들기 시작했고, 이것저것 따져보기 시작했다.
처음부터 메인 화면에 들어가면 게시판이 여러개 나타나고, 게시판의 이름과 게시판에 올라온 게시글 중 일부를 보여주려고 생각을 하고 있었는데, 이렇게 만들면 게시판의 글들을 일부만 가져오는게 안되고, 보여줄 필요도 없는 댓글들의 데이터까지 가져오게 될 것 같다는 생각을 했었고(실제로 어떻게 되는지는 모르겠다), 결국 다른 방법을 좀 더 찾아보기로 했었다.

그 이후 populate 기능을 알게되서 그냥 그거 적용시켜서 해결했다..

이 이야기는 나중에 그림을 따로 업로드 하겠습니다.. 제가 봐도 이해가 안되네요.

이렇게 큰 산을 하나 넘겼었고, 그 이후 귀찮아서 넣을 생각을 안 하고 있던 계정때문에 작업이 진행이 되지 않게 되었고, 작업도 많이 안했어서 그냥 갈아엎고 다시 만들기로 했었다.
그래도 결과만 보면 실제로는 어떻게 사용하는가 를 좀 더 알 수 있었으니 괜찮지 않나… 라는 생각도 든다.

그리고 추가로 꺠달은 점은 뭐든 시작하기 전 준비는 잘 해놓고 가자 였다.. 역시 사람은 당해봐야 제일 잘 깨닫게 되는 거 같다.


이제 현재 다시 갈아엎고 난 뒤의 이야기를 조금 해보려고 한다. 아마 이제 자세한 건 공부 이야기에서 할 듯 싶은데, 계정 데이터를 만들 때 비밀번호 암호화를 하기 위해 crypto 사용법을 조금 보고있고, 이게 끝나면 로그인을 위해서 session쪽 공부를 할 것 같다.
이 두개를 끝내고 나머지는 다 괜찮은데, 지금 생각해보니 파일, 사진 업로드를 까먹고 있었다..
구조는 대강은 알 것 같긴 한데, 일단 이것도 해봐야 알 것 같다.

오늘의 헛소리) 게시글 올릴 때 커밋수도 올라가는거 뭔가 좀… 그렇다.. 일 안하는 나쁜 사람이 된 것 같은 느낌?? 뭐라고 표현해야하지?????