본문 바로가기

Web Sever 개발과 CS 기초

(87)
테스트 결과를 ELK 사용하여 기록 남기기(Logstash Json parsing) 개요 목적 무식한 영어 프로젝트는 영어 식 통 문장 암기를 도와주는 서비스이다. 테스트 페이지를 통해서 번역본을 보고 영어식 표현을 만들 수 있는 지 확인 가능하다. 테스트 페이지 버튼(맞음 틀림 힘트 정답)을 누르면 해당 유저와 해당 문장의 테스트 결과를 ElasticSearch로 모아서 유의미한 데이터를 수집하려 한다. 각 버튼을 눌렀을 때 테스트 결과 데이터를 어떻게 ElasticSearch에 저장을 하고 Kibana 검색을 통해서 유의미한 정보를 화면에 출력할 수 있는 지 알아보자. ElasticSearch로 Json 직렬화 하여 보낼 데이터는 아래와 같다. public class TestResultDto { private Long userId; private Long sentenceId; pri..
백엔드 서버 API doc 작성과 Springdoc 자동 구성하기 관련 내용 해당 프로젝트 깃 허브 개요 목적 API doc은 서비스 기능을 사용할 수 있게 도와주는 설명서 역할을 한다. 내가 만든 영어 통문장 암기 서비스의 관리자 문장 관리 테스트 처리 API doc을 직접 표를 통해 만들어보고, spring-doc 라이브러리의 도움을 받아 자동으로 API doc을 생성하는 방법을 알아보자. API doc 구성 양식은 https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide REST API 문서를 참고 했다. 관리자 문장 관리 & 테스트 처리 API doc 1. 관리자 문장을 추가 POST /api/admin/sentence/add MessageBody Name Type Description korean S..
HTTP 서버를 편리하게 만들 수 있는 HttpServlet 이해와 사용법 개요 목적 Java로 직접 구현하는 HTTP Sever 해당 프로젝트에서는 http 관련 클래스 없이 java 코드만으로 HTTP 프로토콜 서버를 구현했다. 그러다보니 Client Request Message를 일일이 분석해서 비지니스 코드에 적용해야 하고 그 결과를 Response 형식에 맞춰서 보내줘야 하는 동작을 반복해야 했다. 이러한 HTTP 서버를 만들 때 반복되는 동작들을 일관적으로 대신 처리해주는 것이 WAS에서 사용하는 서블릿이다. 자바는 HttpServlet 인터페이스를 사용하여 HTTP 서버를 비지니스 로직에만 집중하며 만들 수 있다. 이번 시간에는 Spring에서도 사용하는 서블릿에 대한 이해와 HttpServlet의 기본 사용법을 알아보겠다. 서블릿이란 서블릿은 개발자가 HTTP 스..
Java로 직접 구현하는 HTTP Server 관련 내용 [백엔드/네트워크 지식] - 리퀘스트 메소드와 HTTP 상태 코드 [백엔드/네트워크 지식] - HTTP 프로토콜 이해와 HTTP 버전 별 특징 개요 목적 이번 시간의 목표는 자바에서 제공하는 httpserver 클래스 사용 없이 HTTP 프로토콜을 사용하는 웹서버를 ServerSocket만 사용하여 구현하는 것이다. 그러기 위해서는 client가 보내오는 Request Message 구조를 이해하고 분석하여 원하는 동작을 얻어야 하며 Response Message 구조에 맞춰서 그에 맞는 데이터를 보내줘야 한다. HttpServer 클래스를 사용하는 것보다 불편하지만 HTTP 프로토콜을 직접 구현하면서 해당 프로토콜에 대한 이해를 높이는 좋은 시간이었다. ServerSocket으로 HTTP W..
Security-JWT 토큰을 이용한 OAuth2(Google) 인가 서비스 구현 개요 목적 이전 글에서는 Security와 JWT 토큰을 사용한 인증, 인가 서비스를 구현해보았다. [백엔드/스프링] - Spring Security와 JWT 토큰을 이용하여 REST API 인증,인가 구현하기 이번 시간에는 OAuth2-Google를 기존의 Security와 연결하여 Google 계정으로 인가 서비스를 제공해보려 한다. 기존의 Security와 JWT 토큰을 사용한 인증, 인가 프론트 - 백엔드 흐름은 아래와 같다. 이번 시간에 추가될 OAuth2-Google 흐름은, 구글 계정으로 로그인 한 후 해당 정보를 DB에 저장 JWT 토큰을 발급 전달하는 과정이다. 이 과정이 끝나고 UI에서 똑같이 JWT 토큰을 획득하면 기존 Security 인가 서비스를 그대로 이용할 수 있게 된다. 하나..
스프링 알림 기능 - Spring Data JPA DB 구현 개요 목적 스프링으로 구현한 서비스에서 알림 기능을 추가하기 위한 데이터 베이스(Spring Data Jpa) 설정 방법에 대해 알아본다. 알림 서비스에서 사용할 예시는, 황대영이라는 유저가 관리하는 유저 문장 그룹이 있고, 해당 문장 그룹을 구독하는 김민우 유저가 존재한다. 문장 그룹을 구독하거나, 구독한 문장 그룹이 입데이트(문장 추가,삭제)되면 각 관련 유저에게 알림이 가는 시스템이다. 실제 사용 동작 예시 확인 1. 구독자 추가 알림 - 문장 그룹 주인 황대영에게 구독자가 늘었다고 알림이 간다. 2. 문장 추가 알림 - 황대영 문장 그룹에 문장이 추가되면 구독한 김민우 유저에게 문장 그룹이 업데이트 되었다고 알림이 간다. 3. 문장 삭제 알림 - 문장 그룹에 문장이 삭제되면 구독한 김민우에게 문장..
웹 브라우저 이해와 데이터 저장소 개요 목적 이번 시간에는 HTTP 프로토콜을 사용하고 다양한 웹 검색을 가능하게 해주는 웹 브라우저에 대해서 알아본다. 먼저 웹 브라우저에 대한 이해와 웹 브라우저가 어떻게 웹페이지를 보여주는 과정에 대해 알아본다. 그리고 브라우저에 데이터를 저장하는 Local Storage, Session, Cookie 데이터 저장소 종류와 특징에 대해서 알아본다. 웹브라우저 이해와 브라우저 렌더링 과정 이해 웹브라우저는 다양한 웹 서버(누구의 블로그, 네이버 웹툰 서버)의 다양한 정보들을 검색하고 조회할 수 있도록 도와주는 프로그램을 뜻한다. 대표적 브라우저는 크롬, 웨일, 마이크로엣지가 있다. 브라우저는 유저가 선택한 자원을 서버로 부터 받아와서 유저에게 보여준다. 이 자원은 페이지 외에도 이미지, 비디오 등의 컨..
Well known Port 개요 목적 네트워크 통신에서 주소 역할을 하는 IP 주소는 컴퓨터와 서버 자체를 나타낸다. port 번호는 한 컴퓨터와 서버 안의 다양한 프로세스를 구분지어 주는 역할 을 한다. 그 중에서 대중적인 프로세스를 1~1023번 안에 숫자로 지정했는데, 그것이 Well known Port이다. 대표적으로 웹(HTTP), 메일(SMTP) 등이 있다. well known port각 포트 번호에 어떤 프로세스가 지정되어 있는 지 알아보자. 많이 쓰이는 Well known Port 포트번호 TCP/UDP 통신설명 7 TCP/UDP ECHO(두 장비 간의 연결을 확인하는 용도) 9 TCP/UDP DISCARD(테스트를 하기 위한 용도, 서버는 수신된 데이터를 버린다.) 13 TCP/UDP DAYTIME(서버의 현재 시..

반응형