'어제의 나보다 나은 것이야 말로 진정으로 고귀한 것이다'
해밍웨이의 명언을 가치관삼아 개발자로서 한 단계씩 나아가고 있습니다.
빠르게 성장하는 개발자입니다.
2020년에 개발을 시작하여 프로젝트를 진행하였습니다.
프로젝트마다 새로운 기술스택을 사용하였고 모두 짧은 기간 내에 공부하여 사용하였습니다.
어떤 기술이라도 끝까지 물고 늘어져서 배울 수 있는 책임감이 있습니다.
부족한 점이 많고 보완해야할 부분들이 많지만 개발을 좋아하기 때문에 빠르게 극복할 수 있을 것이라고 생각합니다.
이미지 CRUD API 입니다. 허용되는 확장자는 jpg, gif, png 이며 GET, POST, PUT, DELETE, OPTIONS, HEAD 요청을 지원합니다.
GET, PUT, DELETE 요청의 경우 /images/:no의 URL로 요청을 보냅니다. POST 요청의 경우 /images의 URL로 요청을 보냅니다. POST, PUT 요청의 경우 요청의 바디에 BASE64로 인코딩된 IMAGE를 포함해야 합니다.
요청 예시
PUT('/images/:no', send_params) send_params={image:base64로 인코딩된 이미지}
POST('/images', send_params) send_params={no:업로드할 숫자, image:base64로 인코딩된 이미지}
적용 사항
- 모든 도메인에 대하여 허용하도록 CORS 적용
- 요청을 보내볼 수 있도록 index.html 제공
- 가능한 한 JavaScript의 Web API를 사용하여 사용하여 코딩(index.html)
- 테스트하는 서버의 환경에 맞게 PORT 변경이 가능하도록 .env 추가
개선해야할 사항
- HTTP의 응답코드에 해당하는 에러메시지들을 구조화하여 분기문 간소화
- USER별 소유한 이미지만 접근할 수 있도록 인증기능 적용
팀 구성 : 4명
코로나 바이러스를 대비한 영상회의 웹 프로젝트
사용자는 회의방을 생성 및 참여할 수 있고 회의방에서는 영상회의, 채팅, 드래그 앤 드롭 파일 업로드 및 다운로드를 할 수 있습니다.
적용 사항
- WebRTC 프레임워크를 이용하여 실시간 영상 통화 구현
- Socket.io를 이용하여 User의 입퇴장 시 이벤트 관리
- 파일 업/다운로드 기능 구현
개선해야할 사항
- WebRTC의 peerconnection을 사용자의 입장 시 마다 생성
- 서버의 Room 객체를 DB Table로 구성(Stateless)
- MOA Client를 Build하여 정적 파일로 구성
사용 기술
- Node.js, ReactJS, WebRTC, Sequelize.js, Mongoose, Socket.IO
팀 구성 : 4명
Blockchain과 Fido를 활용한 DID 생체인증 API
Fido2를 기반으로 개인의 지문을 등록합니다. 사용자가 로컬기기에서 생체인증을 완료하면 로컬기기에서 RSA key쌍을 생성합니다. 사용자의 지문에 대응되는 RSA key 중 공개키, 사용자의 핸드폰번호가 블록체인에 저장됩니다.
사용자 인증을 위한 POST 요청 URL을 제공합니다. 웹에서 서버에 POST요청을 보낸 뒤(Pending) 핸드폰(Fido기기)으로 인증을 완료하면 서버는 웹 요청에 대하여 응답합니다.
요청 예시
/auth/registersignin 의 URL로 POST 요청 {phoneNumber:유저의 핸드폰 번호}
Architecture
전체 구조
FIDO + DID
적용 사항
- Docker Container로 구성된 Hyperledger Network 구축
- API 서버 구축
- 사용자 등록 시 인증번호를 전송하여 핸드폰 번호 검증
- Fido API를 사용하기 위하여 도메인 및 SSL 구성(Fido API는 HTTPS에서만 동작)
- 인증번호 입력 시 Brute Force 공격 방지
- 타 웹에서 인증 요청 시 Pending, 사용자의 로컬기기에서 인증을 완료하면 응답
개선해야할 사항
- Pending 구현 시 사용자의 인증 상태를 서버의 변수에 저장하지 않고 DB에 저장
사용 기술
- Fido, JavaScript(ChainCode), Node.js, ExpressJS, HTML, Hyperledger, Docker
시연 영상
팀 구성 : 4명
사용되지 않는 원룸의 주차장을 공유하여 거래하는 플랫폼입니다. 현재 주차장들은 Dummy Data로 구성하여 배포까지 완료된 어플리케이션입니다.
적용 사항
- 어플리케이션 개발
- 사용자가 같은 주차장을 동시 예약 시 DB에 Block 처리(Firebase Transaction)
개선해야할 사항
- 휴대폰 크기에 맞게 반응형 UI제작
사용 기술
- KakaoPay API, Google Maps API, Firebase, Java, Android
시연 영상
- Node.js, JavaScript, React.js, Vue.js, RDBMS, NoSQL
- 네트워크, 웹 보안, 시큐어 코딩
- Linux, Docker, Hyperledger
- Oracle, JDBC, DB모델링
- Servlet, JSP, React
- MVC Model, Spring