Skip to content

dnjs0/Lighting

 
 

Repository files navigation

오늘어때? - 번개모임 플랫폼

날씨·시간·관심사 기반으로 번개모임을 추천하고 실시간 채팅까지 가능한 JSP 기반 웹 프로젝트입니다.
본 저장소는 팀 프로젝트 중 제가 직접 구현한 기능과 학습 내용을 정리한 개인 포트폴리오입니다.


⚡ 목차


⚡ 프로젝트 개요

  • 즉석에서 참여 가능한 번개모임 플랫폼
  • 날씨, 시간대, 검색 이력 기반 모임 추천
  • 사용자간 1:1 WebSocket 채팅 구현
  • 관리자 기능 및 후기/문의 관리 지원
  • JSP + Servlet 기반 MVC2 구조 구현

⚡ 맡은 기능

기능 영역 상세 내용
메인 모임 추천 최고 관심 카테고리 기반 추천 알고리즘 + 날씨 API 연동
날씨 API 연동 기상청 openAPI + 위경도 → 격자좌표 변환 로직 직접 구현
검색 필터링 카테고리/키워드 정렬 및 Ajax로 동적 반응
실시간 채팅 WebSocket 기반 ChatEndpoint + 채팅방 생성 및 DB 저장 처리
리팩토링 DAO → Service 계층 분리, 관심사 기반 추천 로직 정비

⚡ 기술적 도전 & 문제 해결

  • 날씨 API 데이터 수신 실패
    기상청 API 호출 시 빈 JSON이 반환되는 문제를 겪었고,
    공식 문서와 커뮤니티 자료를 참고해 예보 발표 시각 기준으로 한 시간 전 데이터를 요청하는 방식으로 해결했습니다.

  • 격자 좌표 변환 로직 적용
    기상청 API에서 요구하는 격자 좌표(nx, ny)를 사용하기 위해
    위도·경도를 변환하는 외부 공식을 참고하고 프로젝트에 맞게 적용했습니다.

  • WebSocket 구조 적용 경험
    실시간 채팅 기능이 처음이었기에 기본 구조와 흐름을 여러 예제를 통해 이해하고,
    우리 프로젝트에 맞게 세션 정보 처리 및 메시지 전송 흐름을 구현했습니다.

  • 비즈니스 로직 정비를 위한 계층 분리
    초기에 DAO에 몰려 있던 로직을 Service 계층으로 분리하며,
    구조적인 유지보수성과 확장성의 중요성을 실감했습니다.


⚡ 사용 기술

  • Backend: Java Servlet, JSP (Model2), JSTL, Oracle JDBC
  • Frontend: HTML5, CSS3, JavaScript (AJAX)
  • WebSocket: Java WebSocket API
  • API: 기상청 날씨 API, Google SMTP
  • WAS: Apache Tomcat 9
  • 형상관리: GitHub, Discord, Draw.io

⚡ 구현 화면 & 흐름도

전체 흐름도, 화면 UI, API 구조 등은 아래 PDF 포트폴리오 문서에서 자세히 확인하실 수 있습니다.


⚡ 느낀 점

이번 프로젝트를 통해 구조적인 설계, API 연동, 실시간 통신 시스템 구현 등
웹 애플리케이션 개발의 다양한 기술 요소를 경험할 수 있었습니다.

처음에는 모든 로직이 DAO에 몰려 구조가 복잡했지만,
MVC 패턴에 따라 Service 계층을 분리하면서 각 계층의 역할과 흐름을 더 명확하게 이해할 수 있었습니다.

특히 실시간 채팅 기능은 생소한 영역이었지만,
WebSocket 구조를 하나하나 참고하고 적용하면서 세션 관리, 메시지 흐름, 사용자 간 통신 처리에 대한 감각을 쌓을 수 있었고,
실시간 시스템에서의 기본적인 개념과 처리 방식에 대해 실무 감각을 익히는 계기가 되었습니다.

개발 중 발생한 문제들을 해결하면서 기술적인 자신감뿐만 아니라, 협업과 설계의 중요성도 함께 느낄 수 있었고,
이 과정을 통해 더 나은 개발자로 나아갈 수 있는 기반을 다질 수 있었습니다.


⚡ 포트폴리오 PDF

📎 오늘어때_포트폴리오.pdf


⚡ 실행 방법

로컬 환경에서만 실행 가능한 학습용 프로젝트입니다.

  1. Oracle DB 설치 및 테이블 구성 (DDL 제공 예정)
  2. 이 프로젝트를 Eclipse에서 Import
  3. Apache Tomcat 9에 배포 후 실행
  4. http://localhost:8090/main.do 접속

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 97.2%
  • PLSQL 2.5%
  • CSS 0.3%