전체 글 48

Node.js 관심사 분리 View, Controller

코드는 확장한다현실의 '문제'를 발견하고 해결하기위해 기획, 설계 , 구현을 통해 하나의 서비스를 만들어낸다.컴퓨터공학과 학생으로써 졸업작품을 위해서 개발을 진행하다보면 문제가 있었다. 문제가 뭐였는지?app.js라는 파일 하나에 수많은 api를 두다보니깐 코드의 가독성이 떨어지고 코드를 병합하는 과정에서어떤 코드가 수정이 되었는지 확인하다보니깐 수많은 api들을 하나하나 찾아서 수정해야했고오류가 생기면 해당 api들을 하나하나씩 검토하다보니깐 몇천줄의 코드를 읽고 분석하고 수정하는데 머리가 어지러워질 뻔 했다. 개발자로써 현업, 정석에 가까운 방법대로 개발을 진행해야한다는 마인드를 언제나 가지고있다. 현업에서는 , 정석적으로 개발자로써는 어떤식으로 파일구조를 설계하는가? 이러한 문제에 대해 깊이 고민해..

node.js 2025.03.17

React + Node.js 맛집정보웹애플리케이션 리뷰 기능 구현하기

왜 구현했는지학교 졸업작품으로 맛집 정보 웹 애플리케이션을 만들고 있다.기존에는 사용자인증(로그인)을 구현하지않은 상태에서 단순히 리뷰를 작성하거나 리뷰를 확인할 수 있게 했었다.즉 누구나 해당 리뷰 페이지에서 리뷰를 작성하거나 리뷰를 확인할 수 있게 끔 되있었다.그러나 기존의 리뷰플랫폼(네이버 지도리뷰)를 보면 사용자가 로그인을 해야만 리뷰를 작성할수 있게끔 되있다.아주 간단하게 그려본 사용자 유저플로우인데 이용방법은 아주간단하다.1. 사용자가 리뷰페이지를 접속한다.2. 리뷰페이지에서 등록된 여러 리뷰내용들을 확인 가능하다.3. 로그인을하였는지 상태파악(true or false)4. 로그인 하였다면 리뷰를 작성할수있는 리뷰작성페이지에 접근 AND 작성한 리뷰내용을 수정하거나 삭제 할 수 있어야함.5. ..

학교 팀프로젝트 상황보고2

근황약 5달간의 시간이있었는데 학기중 약 3개월동안은 졸업작품과 교수님의과제를 수행하는기간이였다.교수님의과제물같은경우는 다음과같은 TikTok AR필터 메이커톤 대회의 참가신청 웹페이지를 만드는일이였다.2명의 디자이너가 figma를통해 제작해둔 ui프로토타입을 그대로 퍼블리싱하는 간단한 일이였지만 여러가지의착오가있었고반응형웹중심의 설계에 대한 기초적인 토대를 지키지않는 바람에 많은 어려움을 느꼈고 이 과정에서ui를 설계하면서 최소한의 mvp를 개발하는것에 집중하지않고 단순히 ui를 설계하는데만 집중해왔다라는 사실을 깨닫게되었다. 그 후 약 방학기간(2024.07.08 ~ 08.30) 동안은 교수님의 제안으로 하계인턴쉽 프로그램을통해 회사에 두달간 다니게되었다.이곳에서 했던 업무는 기존의 세종시 교육청 o..

2장 개인프로젝트 :날씨에맞는 음식추천해주는 웹앱만들어보기

1장에서의 문제점 발견 이전 코드에서는 현재 온도정보를 저장해둘 전역변수를 선언해둔뒤 // 현재 온도 상태를 저장해둘 변수 now_temp let now_temp = 0; function callWeather() { ~~~ now_temp = Math.round(data.main.temp - 273.15); } openweather Api를 통해 날씨정보를 받아올때 변수에 온도를 저장해두고 온도에대한 정수데이터를 담고있는 now_temp 변수를 활용 현재 온도를 숫자 범위별로 다른 식당정보를 보여주도록 처리해놓았음. // 온도가 10도미만일때 if (now_temp < 10) { $food_image.src = data.food[0].image; $food_name.textContent = data.fo..

javascript 2024.04.13

1장개인프로젝트 :날씨에맞는 음식추천해주는 웹앱만들어보기.

시작한 계기 지난해인 23년 6월부터 현재까지 javascript를 꾸준히공부하고 방학때는 node.js를 통해 DB를구축하고 그에맞는 api를 만드는 일까지해보았는데도 개인적으로 프로젝트 하나 만들어본적이없는것이 큰 문제였다. 교육과정을통해 강사님께서 말씀해주신 개발에 대한 철학으로는 적게배우고 많이만들어보라는 말씀을 하셨고 지금 당장 부족한 지식이 많다고생각하더라도 일단 아는대로 만들어보고 모르는것들을 찾아가면서 새롭게 배워야한다는 생각이 들었다. 해당 주제를 선택하게된이유 처음 시작하게 된 계기는 학교 졸업작품의 주제와 유사한 개인프로젝트를 경험하면서 팀프로젝트에 도움이될만한 기술들을 미리 갖춰두고 이러한 기술적지식을 반영함으로써 팀프로젝트의 퀄리티를 올리고싶다는 취지가있었다. 이번학기에오면서 팀 ..

javascript 2024.04.11

학교 팀프로젝트 상황보고1

팀프로젝트 : 맛집정보제공웹앱 프로젝트개요: 수많은 맛집정보제공 서비스가 존재하지만(블루리본,식신,다이닝코드 등) 정말 개인의 입맛취향(ooo는 매운맛을싫어하고 ooo는 짠맛을좋아한다)까지 고려해서 맛집정보를 제공하는 서비스를 만들어보면 좋지않을까? 라는 취지에서 시작되었고. 컴공 졸업작품으로 지난 3학년2학기부터(2023-09~Now) 진행중인 프로젝트이다. 맡은역할: Full stack (팀원 역할을 분리할때 프론트/백엔드를 나누지않았고 필요한기능을 하나찾으면 그냥 무작정 시도해보는방식으로 개발 진행중이다 - 코리안에자일방법) 프로젝트에서 스스로 구현완료/구현중인 아이디어 기능 : 1) 맛조절기능모드 2)로그인기능 구현 1) 맛 조절 기능모드 사용자가 좋아하는 입맛을 고려한 식당을 추천하기위해 어떤방..

내 컴퓨터에서 자바스크립트를 실행하는 방법 - node JS

공부하면 좋은 이유 1월,2월동안 node js 런타임 환경에서 express 프레임워크를 통해 간단한 crud 웹앱을 만들어보았었다. 한참전에 유데미에 결제해둔 max의 node.js강의가있는데 해당 강의 내용을 정리해두면서 이론적인 부분에 대한 이해도를 높이고 관련 지식을 미리 쌓아두기위해 메모용으로 정리해두려고한다. 학교 졸업작품으로 웹개발을 진행하는데있어서 node.js 런타임환경을 이용해 백엔드 영역에서 api를 개발하는데 의의를 두고있다. 런타임환경 간단하게 프로그래밍 언어가 실행되는 환경이다. 우리가 이미 사용해온 자바스크립트는 브라우저에 이미 탑재되어 있음을 알수있다. 크롬에서 개발자도구를 키고 콘솔창에 자바스크립트 코드를 작성하면 실행이되는것을 통해 확인 할 수 있다. 그래서 일반적으로 ..

node.js 2024.03.12

2-2 빅오표기법 - 공간복잡도

시간복잡도가아니다 입력값에따라 코드의 실행시간의 증가율을 본 시간복잡도와 다르게 사용되는 공간 즉 메모리를 얼마나 사용하는지를 확인할 수 있다. 공간복잡도 = 보조 공간 복잡도 불변공간 : (booleans , numbers , undefined, null) -> 입력의 크기와는 상관없이 숫자가 1이든 1000이든 모두 불변 공간 booleans이 true이든 false이든 똑같은 공간을차지한다. 번외가 존재함 문자열은 o(n) 공간이 필요하다. ex) n의 문자열의 길이고 50이 입력으로들어온다면 문자열의 길이가 1인 문자열보다 50배 더많은 공간을 차지한다. 그외에도 레퍼런스타입,배열,객체 또한 o(n)공간이 필요하다. ex) 배열의 길이 객체의 키 갯수. 코드를보자 function sum(arr) ..

2. 빅오 표기법 - 시간복잡도

왜 공부하지? 지금껏 간단한 CRUD 웹앱을 만들어본게 다인 현재의 입장에서 아직 자료구조와 알고리즘이 실무에서 직접적으로 중요성으로 다가올 기회가 없기 때문에. 아직 큰 중요성을 솔직히 못느끼고있다. 그럼에도 불구하고 취업이라는 관문의 크기를 좁히고싶지않다면 개발자로써 맞서 부딪혀야하는 벽들을 넘기 위해서 자료구조와 알고리즘은 중요하기때문에 공부해야한다. 교육자료는 학교교육사업을 통해 듣는 프로그래머스 온라인 교육과 온라인교육플랫폼인 유데미에서 결제해서 듣는 자료구조알고리즘 강의 Colt Steele의 자료구조 알고리즘 강의를 참조 더나은 코드는 무엇일까? function addUpTo(n) { let total = 0; for (let i = 1; i

일기장2

정보처리기사 필기 탈락 후기 진짜다.. 전공자 타이틀을 달고 정보처리기사 시험에 떨어졌다. 아주 충격적인 소식이지만 정작 시험에 떨어진 나는 굉장히 덤덤한 상태이다. 지난학기 다른 친구들이 시나공 책을 붙잡고 힘겨운 시간을 보내고 있을 때 난 웹개발공부에 집중한다는 핑계로 공부를 전혀 하지 않았으니 준비 되지 않은 자에게 벌이 내려졌다고 생각하고싶다. 이유는 뭐였을까 준비기간 겨우 2일이였다.. 최근 동안 교내에서 일학습병행을 하니 마니를 고민하며 나혼자 미래진로에 대한 걱정으로 아픈 머리를 부여잡고 죽쓰다가 시간만 지나가게되었고 그 문제로 정보처리기사 준비를 제대로 하지 못한채 들이닥친 시험날짜에 맞춰 약 2일정도를 바쁘게 공부해서 시험을 보러갔다. 내게는 꾸준함이 필요하다. 약 두달간의 겨울방학동안 ..