WIL 11

WIL

이번 주에는 클라이언트와 서버 간의 실시간 통신을 구현하는 데 집중했다. 웹소켓을 사용하여 양방향 통신을 가능하게 했고, 이를 통해 실시간 데이터 전송을 구현했다.  주 초반에는 웹소켓의 기본 개념과 사용법을 학습했다. 웹소켓은 클라이언트와 서버 간의 지속적인 연결을 유지하여 실시간으로 데이터를 주고받을 수 있는 기술이다. 이를 통해 HTTP 통신의 한계를 극복할 수 있었다.  프로젝트에서는 카드 생성 이벤트를 웹소켓을 통해 처리했다. 서버에서 카드가 생성되면 card.created 이벤트를 발생시켰고, 이를 eventEmitter2와 @OnEvent 데코레이터를 사용하여 처리했다. 처리된 이벤트는 웹소켓을 통해 클라이언트로 전달되었다.  클라이언트에서는 cardCreated 이벤트를 수신하여 데이터를 ..

WIL 2025.02.07

WIL

1. 프로젝트 초기화@nestjs/cli를 사용해 프로젝트를 생성한 후, 필요 패키지(class-validator, TypeORM, SQLite 등)를 설치하였습니다.설정 파일 작성: app.module.ts에서 모듈과 DB 연결 설정.디렉토리 구조 설계: 모듈별로 파일을 구분해 코드의 유지보수성을 강화.2. 게시판 모듈 생성nest generate module posts로 게시판 모듈을 생성하고 컨트롤러와 서비스 추가.DTO 생성: CreatePostDto, UpdatePostDto를 만들어 유효성 검사를 구현(class-validator 사용).엔티티 설계: Post 엔티티 정의 및 TypeORM 데코레이터로 DB 매핑.3. CRUD 기능 구현생성(Create): 사용자의 요청 데이터를 받아 새로운 ..

WIL 2025.01.24

WIL

Node.js 프로젝트 3-Layer Architecture 적용기  📌 들어가며  이번 프로젝트에서 코드의 구조를 개선하기 위해 3-Layer Architecture를 도입했다. 기존의 모든 로직이 한 파일에 있던 구조에서, Controller, Service, Repository 계층으로 나누어 각각의 역할과 책임을 분리했다.  🎯 도입 배경  코드의 유지보수가 어려웠다   비즈니스 로직과 데이터 접근 로직이 섞여 있었다   테스트 작성이 어려웠다   코드 재사용이 어려웠다   💡 구현 내용 1. Controller 계층 구현     class ReviewController {  createReview = async (req, res, next) => {    try {      const { ..

WIL 2025.01.10

WIL

이번 주, 우리는 뉴스피드 과제를 통해 도전과 성장을 경험하는 의미 있는 시간을 보냈다. 주어진 요구사항을 분석하고 방향을 설정하며, 팀원들과 협력해 목표를 향해 나아갔다.1. 프론트엔드 개발에서의 문제 해결API 데이터를 활용해 동적으로 뉴스피드를 구성하는 과정에서 예상치 못한 오류들이 발생했다.렌더링 문제: 데이터가 화면에 제대로 표시되지 않거나 비정상적으로 작동했다.특정 필드 누락, 비동기 처리 타이밍 문제로 인해 데이터가 불완전하게 나타남.팀원들과 디버깅하며 문제를 분석하고, 상태 관리 라이브러리를 도입해 안정적인 데이터 흐름을 구현했다.UI/UX 디자인 개선: API 데이터를 기반으로 동적 콘텐츠를 생성하면서 레이아웃이 깨지고 디자인이 어긋나는 문제가 발생했다.독립적인 컴포넌트 개발과 반복적인 ..

WIL 2025.01.03

WIL

WIL (What I Learned)이번 주는 팀원들과 함께 과제를 위해 정말 열심히 노력한 한 주였습니다. 우리 팀은 과제를 보다 깊이 있게 이해하기 위해 모든 세부사항을 철저히 파고들었고, 튜터님들의 피드백도 꼼꼼히 듣고 이를 행동으로 옮겼습니다. 각자의 역할에 책임감을 가지고 임하며, 끊임없이 아이디어를 공유하고 개선점을 찾기 위해 노력했던 시간이었습니다.특히 이번 주는 개인적으로 중요한 일이 있었는데, 하루는 무릎 수술 때문에 팀 활동에 참여하지 못하는 상황이 있었습니다. 그 날 팀원들이 제 공백을 채우기 위해 정말 멋지게 역할을 해주셨고, 심지어 제가 예상했던 것보다 더 많은 기능을 추가하며 과제를 완성도 높게 발전시켜 주셨습니다.이러한 모습을 통해 팀워크의 중요성과 협업의 진정한 의미를 느낄 ..

WIL 2024.12.27

WIL

1. 문제 해결과 디버깅 과정이번 주는 여러 오류와 디버깅 과정을 통해 많은 것을 배운 시간이었습니다. 특히, 코드에서 발생하는 예외 처리와 데이터 구조의 중요성을 다시금 실감했습니다. 아래는 이번 주 주요 작업과 학습 내용입니다.주요 작업:TypeError와 ReferenceError 해결 과정:객체가 초기화되지 않거나 undefined 상태에서 발생하는 오류를 확인하고, Array.isArray나 기본값 설정을 통해 안전한 접근 방식을 적용했습니다.특히, filter와 map과 같은 배열 메서드에서 조건 검증의 중요성을 깨달았습니다.클래스와 메서드 구조화:클래스 생성자에서 기본값을 설정하여 undefined 문제를 방지하고, this 바인딩 문제를 해결하기 위해 bind나 화살표 함수의 활용을 학습했..

WIL 2024.12.20

WIL

이번 주는 팀이 바뀌고 새로운 강의를 듣느라 정말 정신이 없었던 한 주였습니다. 여러 가지 변화가 동시에 일어나면서, 적응하기가 쉽지 않았습니다. 특히 OSI 7계층 중 네트워크 계층에 대해 공부하면서, 그 개념을 이해하는 데 어려움을 겪었습니다. 이론적인 부분이 많다 보니, 강의를 따라가는 것이 쉽지 않았고, 기본적인 지식이 부족하다는 것을 다시 한 번 느꼈습니다.더욱이, 개인 과제로 다이노 게임을 만드는 작업도 병행해야 했습니다. 이 과제는 재미있으면서도 도전적인 부분이 많아, 시간 관리가 필요했습니다. 다이노 게임을 만들면서 프로그래밍에 대한 이해도를 높일 수 있었지만, 동시에 여러 가지 과제를 동시에 진행하다 보니 압박감이 점점 커지는 것 같았습니다.또한, 다음 주에 예정된 모의 면접 준비도 신경..

WIL 2024.12.13

WIL

주제 : 풋살 온라인 게임 개발 기간 : 2024-12-08일 까지 제출팀 이름 : 오똑하조 팀원 : 송원빈[팀장], 조용필, 이이삭, 강나연, 오혜성  과제 개요:이번 주차에 피파온라인을 모방한 풋살 온라인 게임을 개발했다. 각 팀마다 3명의 선수를 꾸려서 상대팀과 매치를 진행하는 방식으로 게임을 설계했다.내 역할:나는 캐쉬 충전, 캐쉬 조회, 캐릭터 강화, 캐릭터 승급 기능을 맡았다. 축구 선수에 대한 지식이 부족해서 롤의 캐릭터를 빌려와서 포지션을 전사, 탱커, 마법사로 변형해서 사용했다.도전 과제:처음 만들어보는 기능을 개발해야 해서 많은 어려움이 있었다. 뇌정지가 올 정도로 막막한 순간이 많았지만, 인터넷 검색을 통해 필요한 정보를 찾아서 기능을 구현했다. 그래도 오류는 피할 수 없었고, 터미널..

WIL 2024.12.06

5주차 WIL

이번 주는 Express.js로 웹 서버를 구축하며 다음과 같은 주요 사항을 진행했다.주요 진행 사항Express 서버 설정:express와 dotenv를 사용하여 서버를 설정하고 환경 변수를 관리했다.기본 포트를 3000으로 설정하고 서버를 실행했다.const app = express();const PORT = process.env.PORT || 3000;app.listen(PORT, () => { console.log(`서버가 ${PORT} 포트에서 열렸습니다.`);});라우터 연결:여러 라우터(signup_router, item_router, character_router)를 /api 경로에 연결하여 기능을 모듈화 했다.app.use("/api", [goodsRouter, ItemRouter, c..

WIL 2024.11.29

3주차 WIL

이번 주에는 로그라이크 관련 게임을 새로운 기능을 집어넣고 하느라 시간이 굉장히 금방 갔다.또한 베이직 단계 수업을 진행했는데 여기선 기초적인 자바스크립트 교육을 다시 진행하고 알고리즘 문제도 풀어볼수도 있어서 되게 유익하다. 물론 문제만 푸는 것 이 아니라 직접 계산기를 만드는 과제도 진행하기도 한다.우선순위였던 로그라이크 과제를 이번엔 완료했다.이번 과제에서 제일 중요한 필수 기능으로는 공격하기, 도망치기, 플레이어 체력 및 공격력, 몬스터 체력 및 공격력, 플레이어가 공격하면 몬스터도 플레이어를 공격하는 기능, 스테이지를 올라갈때마다 체력이 증가하는 기능 이렇게 있다. 거기서 이제 추가적인 요소를 적용하면 된다.뭔가 정신없이 지나간 주였던 것 같다.앞으로는 뭔가 더 바빠질 것 같은 느낌을 받는다....

WIL 2024.11.15