전체 글 221

TIL 220829

주말에 푹 쉬면서 오래간만에 친구들과 집에서 밥 먹고 웃고 노느라 충전이 많이 된 것 같다. 다시 또 코딩을 하기 위해 컴퓨터 앞에 앉으니까 다시 부담감과 걱정이 밀려오지만 별수 있나 일단 하나씩 해결하다 보면 6주도 지날 거고, 완성도도 높아지지 않겠는가 열심히 해바야지 오늘의 목표는 기본적인 CRUD를 완성하는 것이었다. 내가 맡은 게 선택 글이지만 투표, 댓글과도 연관이 있기 때문에 빨리 만들어 주어야 다음으로 진행이 된다. 오늘은 정말 앉아서 코드만 열심히 쳤다. 물론 오늘 친것들이 모두 새로 배워서 친 것은 아니지만, 전에 사용했던 코드와 매우 유사한 것도 있지만, 투표의 경우 새로운 로직을 머릿속으로 생각한 뒤 그걸 구현해보기도 했다. 댓글은 좀 많이 비슷했지만.. ㅎㅎ 그래도 하나하나 다시 ..

일지/TIL 2022.08.30

소수점 반올림

js에서 소수점 반올림하여 사용하는 방법 1. Math.round() Math.round(123.456); // 123 Math.round(123.678); // 124 Math.round(123.9191); // 124 사용 시 소수 첫 번째 자리에서 반올림하여 정수로 표현됨 정수가 아닌 소수로 표현하고 싶을 경우 const num = 6.789; const roundNum = Math.round(num * 10) / 10; console.log(roundNum); // 6.8 const roundNum2 = Math.round(num * 100) / 100; console.log(roundNum2); // 6.79 소수 첫 번째 자리까지 표현하고 싶으면 숫자에 10을 곱해서 Math.round()를 ..

coding/JS 2022.08.30

WIL 220828

이번 주는 클론 코딩의 마무리와 실전 프로젝트의 시작주였다. 클론 코딩 때 백앤드는 상대적으로 시간이 조금 있고, 프론트가 바쁘다는 얘기를 들어서 이 기회에 여러 기능들을 구현해 볼 생각이었다. 우리 팀은 클론 코딩으로 에어비앤비를 선택해서 프론트에서 좀 바빴고, 나는 게시물을 담당해서 큰 기능은 하지 못했다.. 가능하면 소셜 로그인을 구현해보고 싶었는데 게시물에서 구현하는 작은 기능들이 많았고, 다른 백앤드 분들의 코드를 봐주느라 정작 내 공부는 많이는 하지 못했다.. 로그인 기능도 마지막 날에 완성이 되어서 소셜 로그인을 공부해서 합칠 여력이 되지 않아 아쉬웠다.. 그래도 이번 주는 코드를 치는 작업 외에 재밌는 일들이 여럿 있었다. 중간에 스파르타 회사에서 진행하는 커피 챗에 초대돼서 IT회사의 분..

일지/WIL 2022.08.29

TIL 220827

어제 실전 프로젝트가 시작되고 팀원들과 아이디어를 취합해서 결정장애인 분들을 위한 선택을 도와주고, 고민이 있는 사람들이 채팅방을 만들어서 실시간 채팅으로 고민들 들어주고 해결을 같이 해주는 고민상담소 사이트로 주제를 정했다. 어떻게 선택을 도와줄지, 상담은 1:1 일지 오픈 채팅방의 형식인지 등을 정해서 프로젝트 기획을 하고 오늘 튜터님께 피드백을 받았다. 다행히 스코프는 우리가 할 수 있을 정도였고, 다만 좀 더 즐길거리가 있어야 활발한 게시판이 될 것 같다고 피드백을 받았다. 나중에 포인트 제도를 사용해서 레벨이나 칭호 같은걸 넣어서 작은 보상심리를 이끌어 내려고 생각하고 있고, 힘든 작업들은 진행상황에 맞춰 기능을 좀 줄이거나 다른 방식으로 표현하는 방식으로 하기로 정했다. 피드백을 기다리면서 프..

일지/TIL 2022.08.27

TIL 220817 - 실전시작.. 기획의 벽

오늘은 드디어 항해의 꽃이라고 하는 실전 프로젝트가 시작되었다. 어제 자기 전 팀원들을 대략적으로 확인했는데 그 팀원들을 그대로 만났다. 좋은 분도 있고, 별로 원하지 않던 팀원도 있었다. 그래도 이렇게 된 거 6주 동안 잘 지내면서 이번 기회에 더 친해지면 좋을 것 같다. 리더로 프로젝트를 시작하게 되었는데 그전까지 팀장은 몇 번 해보았고, 팀장의 역할을 할 땐 크게 부담이 없었지만, 이번 실전 프로젝트는 긴 기간이고, 정말 중요하다 보니 부담이 많이 됐다. 나는 전부 한 번씩 만나본 사람이었지만, 다른 분들은 그렇지 않아서 처음엔 당연히 어색했다. 최대한 얘기를 많이 하면서 분위기가 어색하지 않게 힘썼다... ㅠ 기 빨린다 ㅜ 그래도 천천히 알아가면서 브레인스토밍처럼 아이디어를 주고받았다. 그중 나온..

일지/TIL 2022.08.27

TIL 220826 - 클론코딩 마무리, 새로운 시작 전

클론 코딩이 마무리되었다. 에어비앤비를 클론 하면서 많은 기능을 축소해서 했지만, 우리가 정한 기본 스코프는 모두 깔끔하게 구현을 했고, 프론트에서도 UI를 정말 비슷하게 만들어주어서 좋은 이야기를 들을 수 있었다. 그리고 마지막 날에 타임어택으로 무한 스크롤을 적용할 수 있어서 좋은 경험이었다. 백앤드인 나는 전부터 오프셋 기반, 커서 기반에 대해서 둘 다 준비했는데 프론트가 너무 바쁘다 보니 적용할 여력이 없었는데 딱 마침 오늘 시간이 좀 남는다고 해서 무한 스크롤도 적용해보고, 혼자 cors를 이용해서 특정 도메인만 지정해서 api통신을 허락하는 보안 적인 부분도 해볼 수 있었다. 클론 코딩 때 미니 프로젝트랑 너무 다를 게 없어서 이번 주 얻어가는 게 너무 없으면 어떻게 하지 하는 걱정이 컸는데 ..

일지/TIL 2022.08.26

TIL 220824 - 스파르타 커피챗(회사탐방)

오늘은 특별한 경험을 했다. 어제 스파르타에서 커피 챗 참여를 권유받아서 팀원들께 양해를 구하고 잠깐 스파르타 본사에 갔다 왔다. 무슨 이유로 불렀을까? 하는 기대감과 누가 올까 하는 궁금증으로 선릉에 있는 본사에 갔다. 오랜만에 외출을 해서 그런지 걷는 것조차 너무 좋았는데 얼마 안 걸었는데 어질어질함을 느끼고 아 진짜 지금까지 정말 앉아서 코딩만 했구나를 느꼈다. 서울에 있는 본사에 가보니 으리으리한 빌딩에 위치했는데 수많은 직장인들을 보면서 '아 나도 빨리 수료하고 좋은 곳에 취직해서 좀 더 의미 있게 살고 싶다'라는 생각과 동기부여와 자극이 느껴졌다. 그 후 회사에 들어가 사람들을 기다리니 보현님, 효선님, 도윤님이 오셨다. 항해를 하면서 항상 온라인에서 캠으로만 보던 사람을 직접 보니 정말 감회..

일지/TIL 2022.08.25

TIL 220823

오늘은 어제 중간 멘토링에서 나온 매니저님들의 조언을 토대로 클론 코딩하는 에어비앤비의 모습을 따라 하기로 결정했다. 그에 맞춰서 프론트는 입력받는 값을 추가하고, 뷰를 더 만들기로 했고, 백앤드에서는 추가하는 값만큼 새로운 DB 모델을 만들기로 했다. 프론트와 같이 화면을 공유하면서 어떤 값을 어떤 타입으로 줄지, 변수명은 무엇으로 할지 정한 뒤 각자 작업에 들어갔다. 내가 맡았던 게시물의 모델이 바뀌기 때문에 item 테이블의 모델을 수정하고, 다시 테이블을 생성해서 디비를 구축하였다. 그 후 추가로 받는 값을 저장하고, 저장한 값을 잘 보여줄 수 있게 로직을 수정하여 재배포를 하여 일을 마쳤다. 그렇게 오전을 보내고 어제 매니저님이 말씀하신 데이터베이스 정규화에 대해서 찾아보고 개인 공부를 하였다...

일지/TIL 2022.08.24

Sequelize Op like - 검색 기능

프로젝트를 하면서 검색 기능을 만들 기회가 생겼다. 전에 특정한 카테고리를 중심으로 필터 기능을 만들었는데 그때는 findAll을 통해서 where(조건)에 해당 카테고리를 넣어 찾아주면서 필터 기능을 사용하였다. 카테고리별 조건에 맞는 데이터 찾기 router.get("/category/:category", async (req, res) => { try { const { category } = req.params; const datas = await Posts.findAll({ where: { category }, include: { model: Users, attributes: ["loginId"], }, }); res.status(200).json({ ok: true, result: datas.ma..

coding/Node.js 2022.08.23

TIL 220822

오늘은 백앤드에서는 주요 기능들은 거의 완성해서 다른 분들의 코드를 같이 봐주고, 나 혼자 공부하는 시간을 가졌다. 오늘은 무한 스크롤 기능을 구현하기 위해서 페이지 네이션을 공부하고 코드로 작성해 보았다. 오늘 하면서 알게 된 부분은 페이지 네이션에서 오프셋 방법과 커서 방법이 있고, 오프셋은 내가 평소에 보는 페이지 이동이 있는 그런 일반적인 방법을 말하고, 주로 무한 스크롤은 커서 기반 페이지 네이션을 사용한다고 한다. 그 이유는 오프셋은 새로운 요청을 보배는 사이 데이터의 변화가 생기면 중복 / 누락되는 데이터가 생기는데 커서 기반은 마지막 데이터의 다음 꺼를 콕 집어 가져오기 때문에 중복되는 데이터가 없기 때문이다. 그래서 그와 관련한 블로그들을 많이 찾아보고 적용할 만한 코드를 기반으로 활용해..

일지/TIL 2022.08.23