본문 바로가기

분류 전체보기

(122)
나의 개발일지 WIL(Weekly I learned) - node.js, express.js 게시판 API 서버 만들기 Weekly I learned node.js express.js 게시판 API 서버 만들기 회고록 FACTS 이번 일주일 동안 있었던 일, 내가 한 일 FEELINGS 나의 감정적인 반응, 느낌 FINDINGS 그 상황으로부터 내가 배운 것, 얻은 것 FUTURE 배운 것을 미래에는 어떻게 적용할지 FACTS 이번 일주일은 node.js의 입문을 학습했다 지금까지 배웠던 자바스크립트를 가지고 서버를 만들어 보는 시간을 가졌다 서버를 만들어 보면서 비동기 처리 프로미스와 async와 await를 사용해보았다 node.js를 가지고 서버를 쉽게 구성할 수 있게 express.js를 이용하기 위해서 express.js로 서버를 구성하고 여는 방법도 학습했다 그리고 기본적인 학습을 끝낸 후 게시판에 필요한 게시..
나의 개발일지 TIL(Today I learned) - iptables, 포트포워딩, pm2 Today I learned iptables 포트 포워딩 pm2 iptables iptables란? 패킷 필터링 기능을 사용해 패킷의 해더를 보고 그 전체 패킷을 제어할 수 있다 방화벽은 순차적 실행으로 등록 순서에 있어서 먼저 등록한 부분에 대해서 효력이 유효 하기 때문에 등록 시 순서가 매우 중요하다 설정 파일의 위치: /etc/sysconfig/iptables(명령어 대신 vim을 사용해서 수정 가능) 모든 입출력 패킷에 대해 거부하는 설정이 먼저 등록되면 그 이후 포트를 열어주는 설정을 해도 효과가 없다 특정 조건을 가지고 있는 패킷에 대해 허용(ACCEPT)과 차단(DROP)등을 지정할 수 있으며 특정 조건등을 통해 다양한 방식의 패킷 필터링과 처리 방식을 지원한다 리눅스의 패킷 필터링(Pack..
나의 개발일지 TIL(Today I learned) - express.js와 mongoDB를 이용해 게시판 api 만들고 aws에 배포 개인과제!! Today I learned 개인과제! 개인과제를 보고 코드를 바로 치는 것보다 간단하게 구상을 하는 습관을 만들기 위해서 S.A를 작성해 보았다 프로젝트 명: Board 간단 설명: 게시판을 만드는 프로젝트 👀요구 기능 게시글(CRUD): 게시글 목록, 게시글 작성, 게시글 조회, 게시글 수정, 게시글 삭제 게시글 목록: 제목, 작성자명, 작성 날짜 조회, 작성 날짜 기준으로 내림차순 게시글 작성: 제목, 작성자명, 비밀번호, 작성 내용 입력해서 저장 게시글 조회: 제목, 작성자명, 작성 날짜, 작성 내용 조회 게시글 수정: 비밀번호를 받아 확인 후 수정 게시글 삭제: 비밀번호를 받아 확인 후 삭제 댓글(CRUD): 댓글 목록, 댓글 작성, 댓글 수정, 댓글 삭제 댓글 목록: 조회하는 게시글에 작성된 ..
나의 개발일지 TIL(Today I learned) - 라우팅, 모듈, 리퀘스트, 리스폰스, 몽고디비 Today I learned 라우팅 모듈 리퀘스트, 리스폰스 몽고디비 라우팅 라우팅(routing)이란? 클라이언트의 요청 조건(메서드, 주소 등)에 대응해 응답하는 방식 express.js는 기본 기능으로 라우팅을 하게 해주는 Router을 지원한다 일반적인 Router의 기본 구조 router.METHOD(PATH, HANDLER); router: express의 라우터를 정의하기 위해 사용 METHOD: HTTP METHOD를 나타낸다 (get, post, put, deledte) PATH: 실제 서버에서 API를 사용하기 위한 경로 HANDLER: 라우트가 일치할 때 실행되는 함수 라우트를 사용하는 방식은 routes폴더를 만들고 api파일을 만들어 넣는다 해당 파일에 라우팅 기능을 하는 Rout..
나의 개발일지 TIL(Today I learned) - promise, async, await, 객체리터럴, 에러 핸들링, 클래스, express.js Today I learned promise async, await 객체리터럴 에러 핸들링 클래스 express.js promise promise는 비동기 처리를 위해 사용된다 왜 promise를 사용할까? 기존 비동기 처리는 콜백함수를 사용해서 처리하는데 콜백함수를 연달아 써야하는 경우 코드가 매우 깊어지고 가독성도 좋지 못한다 이를 콜백 지옥이라고 부른다 이러한 불편함을 개선하기 위해 개선된 비동기 처리 promise를 사용하여 비동기 작업의 개수가 많아져도 코드의 깊이가 깊어지지 않게 된다. promise는 비동기 작업이 완료된 후 다음 작업을 연결시켜 진행할 수 있다 작업 결과에 따라서 성공 또는 실패를 리턴하며 결과값을 전달 받을 수 있다 promise객체를 통해 미리 함수를 등록해두고 resol..
나의 개발일지 TIL(Today I learned) - 동기와 비동기, 블로킹과 논블로킹, event loop Today I learned 동기와 비동기 블로킹과 논블로킹 event loop node.js는 싱글스레드 논블로킹 모델 그리고 이벤트 루프 특성을 가지고 있다 동기와 비동기 동기로 실행된다 라고 하면 먼저 실행된 코드의 결과가 나올때까지 대기하는 것이다 놀이기구에서 줄을 기다리고 사람을 태우고 놀이기구가 5분 작동을하면 대가자는 5분동안 기다리고 놀이기구가 멈추고 탑승자가 다 나가면 놀이기구를 탈 수 있다 이런 식으로 어떤 작동이 끝나고 자리가 생기는 걸 기다리는게 동기라고 생각하자 비동기로 실행된다는 실행 순서와 관계 없이 결과가 나오는 것을 말한다 음식점에서 입장은 선서대로 지만 다 먹은 사람은 바로 나올 수 있다 다 먹은 사람이 나오면 자리가 생기니 기대리던 사람은 나온 사람만큼 입장할 수 있다 ..
나의 개발일지 WIL(Weekly I learned) - 미니프로젝트 Weekly I learned 미니프로젝트 회고록 FACTS 이번 일주일 동안 있었던 일, 내가 한 일 FEELINGS 나의 감정적인 반응, 느낌 FINDINGS 그 상황으로부터 내가 배운 것, 얻은 것 FUTURE 배운 것을 미래에는 어떻게 적용할지 FACTS 이번 일주일은 미니프로젝트를 진행하면서 정신없는 시간이었다 SNS의 뉴스피드의 기능을 만들어 보는 시간이었다 우리 조는 벨로그를 보고 뉴스피드를 만들어 보기로 했다 구현해야 하는 기능은 게시글 CRUD 프로필 이미지 파일 업로드 및 관리 MySQL을 사용한 데이터베이스 관리 로그인 회원가입 그리고 세션 관리의 기능을 구현하기로 하고 내가 한 일은 로그인과 세션 관리 그리고 팀원들을 도와서 새로운 게시물을 뿌려주고 페이지네이션을 하는 기능 이미지 ..
나의 개발일지 TIL(Today I learned) - 미니프로젝트 끝 Today I learned 예외 처리 프로젝트 회고록 예외 처리 로그인 시도를 할 때 데이터베이스에 없는 아이디를 입력하면 에러가 발생해서 예외 처리를 진행했다 아이디를 받아와서 데이터베이스에 해당 아이디를 데이터베이스에서 SELECT를 진행하고 빈 값을 가져오면 메세지를 보여주면서 check의 False를 반환해서 자바스크립트 부분에서 알림창을 보여주고 다시 로그인을 시도할 수 있게 해당 페이지를 새로고침 해주는 방식으로 예외 처리를 진행했다 user_id = request.form["id"] user_pw = request.form["pw"] sql = '''SELECT id, user_pw, user_name FROM `user` AS u WHERE u.user_id=%s; ''' curs.exe..