본문 바로가기

Web Sever 개발과 CS 기초

(87)
백엔드 개발을 위한 네트워크 기본 용어 네트워크 기본 용어 (네트워크, 처리량, 트래픽, 대역폭, RTT, 유니캐스트, 멀티캐스트, 브로드캐스트) 네트워크 네트워크란 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미한다. 노드 : 서버, 라우터, 스위치 등 네트워크 장치 링크(엣지) : 유선 또는 무선과 같은 연결매체 (와이파이나 LAN) 트래픽(Traffic), 처리량(Throughput), 대역 폭(Bandwidth) 트래픽 트래픽은 특정 시점에 링크 내의 흐르는 데이터의 양이다. 단위 : bps(bits per second) 예를 들어 100KB 이미지를 1000명이 다운로드하면 누적 트래픽은 100.000KB(100MB)이다. 처리량 처리량(throughput)은 링크 내에서 성공적으로 전달된 데이..
Java Chatiing Server 만들기 관련 내용 JSON 개념과 특징 이해 Enum의 개념과 활용 방법 이해 개요 목적 Runnable Thread와 Java ServerSocket 클래스를 사용해서, 여러명이 접속할 수 있는 채팅 서버를 만들어보자. Thread, ThreadLocal, ReentrantLock을 사용해서 하나의 Server 프로세스에 여러 Client 동작이 동시에 진행되어도 동시성 문제 없이 잘 돌아가는 채팅 서비스를 만드는 것이 목적이다. Server에서 구현할 동작들을 소개한다. 여러 Client가 접속할 수 있는 채팅 서버 생성 Client 입장 시 이름을 먼저 등록해야 채팅 메세지 작성 가능하도록 설정 프로토콜([Header : [길이][패킷종류]] - [Body])을 사용하여 Client 데이터 구분하기 (이름..
라우팅과 IP주소 체계 이해 관련 내용 개요 목적 이번 시간에는 네트워크를 연결하는 라우팅 기술과 라우팅 기술이 목적지를 결정하는데 사용하는 IP 주소에 대해서 알아본다. 라우팅 라우팅은 네트워크에서 데이터를 보낼 때 최적의 경로를 선택하는 과정이다. 데이터는 출발지에서 목적지로 가는 동안 굉장히 많은 라우터를 거치게 된다. (초당 수백만번의 라우팅이 일어난다.) 라우터가 이 기능을 수행하는 장치이다. 라우팅 테이블을 기반으로 데이터를 다음 목적지로 전달한다. 라우팅 테이블이란 라우팅 테이블은 IP 주소를 기반으로 라우터의 위치를 저장한 테이블 또는 데이터베이스 이다. 다양한 네트워크에 대한 정보와 해당 네트워크에 연결하는 방법이 포함되어 있습니다. 그림을 보면서 라우팅 테이블 구성 요소와 어떻게 다음 목적지를 찾는 지 알아보자. ..
Java Runnable Thread 구현과 sysnchronized - 동시성 문제 해결 개요 목적 하나의 프로세스에서 여러가지 일을 처리해주는 Thread를 자바 Runnable 인터페이스로 구현하는 방법에 대해서 알아본다. Thread에 대한 자세한 이해는 아래 블로그 글에서 확인할 수 있다. Thread와 Process Fork 차이 그리고 하나의 공유 자원을 여러 쓰레드에서 동시에 접근하여 생기는 동기화 문제를 방지하는 Synchronized 메소드에 대해서도 알아본다. Runnable으로 Thread 구현하기 Runnable 인터페이스를 구현하여 Thread 동작을 하는 class를 만들 수 있다. //Runnable 인터페이스를 상속받아서 //Thread 구현 동작을 run() 메소드 안에 작성한다. public class RunnableThread implements Runnab..
Javascript Axios 사용 방법 관련 내용 해당 프로젝트 깃허브 개요 목적 Spring Rest API 백엔드 서버를 테스트하는 두 가지 방법이 있다. 첫 번째는 서버가 단순할 때 Postman으로 테스트한다. 그러나, 복잡한 백엔드 서버일 때는 Postman으로 일일이 테스트하는 것은 너무 번거롭다. 두 번째 방법인 UI 웹페이지를 만들고 Axios를 사용해 RestAPI 서버를 테스트 한다. Axios 특징 Axios는 브라우저, Node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리 운영 환경에 따라 브라우저의 XMLHttpRequest 객체 또는 Node.js의 http api 사용 Promise(ES6) API 사용 HTTP 요청과 응답을 JSON 형태로 자동 변경 Axios 사용하여 백엔드 서버..
Spring - MySQL과 Querydsl 통계 쿼리 처리(group by, Expressions) 관련 내용 Querydsl 이해와 사용법 Querydsl 이해와 사용법 Querydsl JOIN((INNER, LEFT, RIGHT, THETA, FETCH) 사용법 Querydsl 의 JOIN (INNER, LEFT, RIGHT, THETA, FETCH) 사용법 개요 목적 이번 시간에는 Mysql과 Querydsl을 사용한 통계 쿼리 처리 방법에 대해서 알아본다. 통계 처리할 작업은 두 가지이다. 하루 단위 가게 전체 매출 구하기 배달 서비스에 등록된 모든 음식점이 하루 판매 금액을 알 수 있다. 하루 단위 가게 별(company_member_id) 매출 구하기 각 음식점이 오늘 판매한 금액을 알 수 있다. 먼저 MySQL 쿼리를 직접 작성하는 방식으로 통계 처리 하는 법을 알아보고, 해당 동작을 Qu..
Querydsl를 사용한 동적 쿼리 만들기 관련 내용 SpringDataJPA 이해와 사용법 Spring Data JPA 이해와 사용법 Querydsl 이해와 사용법 Querydsl 이해와 사용법 Querydsl JOIN((INNER, LEFT, RIGHT, THETA, FETCH) 사용법 Querydsl 의 JOIN (INNER, LEFT, RIGHT, THETA, FETCH) 사용법 개요 목적 이번 시간에는 동적 쿼리 최적화된 Querydsl를 사용해서, 세가지 연관된 테이블 데이터를 가져오는 방법에 대해서 알아보자. Querydsl를 사용할 상황 알아보기 해당 웹페이지에서 adminTestListCondition{”userId”: , “grammar”: , “situation”: , “check”: } 정보가 넘어오면 백엔드 페이지 에서는 ..
HTML 슬라이드 페이지 만들기 개요 목적 이번 시간에 만들 프론트 웹페이지는 슬라이더이다. 옆으로 넓게 펼쳐진 페이지를 특정 영역만 보이게 하고, 버튼을 통해 옆으로 움직여서 마치 카드를 넘기는 것 같은 효과를 낼 수 있다. 아래 그림 예시는 영어 통문장을 암기할 수 있게 도와주는 테스트 페이지 이다. 아래 테스트 페이지 같은 슬라이더를 만드는 구체적인 방법에 대해서 알아보자. 테스트 페이지 틀 잡기 먼저 테스트 페이지 틀이 되는 element 요소들을 작성하고, 데이터 수에 맞게 만들어 놓은 틀을 복사하여 옆으로 나열한다. 틀이 되는 테스트 페이지 코드가 어떻게 되는 지 알아보자. 자세한 테스트 페이지 틀 html, css 소스 코드는 https://github.com/dae0hwang/IgnorantEnglish IgnorantE..

반응형