전체 글

일단 맨땅에 헤딩한 뒤에 배우는 타입입니다
JAVA

JAVA Socket 프로그래밍 : 로컬에서 웹서버 간단히 만들어보기

1. Socket에 관한 초초초초 간단 설명 TCP 통신을 위해 자바에선 Socket 클래스를 제공한다. TCP는 연결 지향형 전송 프로토콜이며, 신뢰성 있는 연결을 보장한다. 여기서 신뢰성 있는 연결이란, 송신측의 데이터가 수신측에게 도달하는 것을 보장하며, 그렇게 보낸 데이터에 손실이나 순서 뒤바뀜이 없음을 의미한다. Socket에도 두 가지가 있는데 데이터의 송수신, 즉 양방향 통신에 이용되는 Socket, 서버에서 클라이언트의 요청을 받기 위한 ServerSocket 클래스가 존재한다. 클라이언트 측에서 소켓을 이용해 요청을 날리려면 직접 Socket 객체에 서버의 포트번호와 IP를 지정해 stream 형식의 데이터를 넣어 보내줘야한다. 서버 측에서 특정 포트 번호를 생성자로 넣어 ServerSo..

공부!/Network

OSI 7계층

# 기본 지식 네트워크란 전세계의 기기들이 리소스나 데이터를 주고받기 위해 연결한 유무선의 통신 체계이다. 메일을 보낸다거나 SNS를 이용하는 등으로 네트워크 참여자들 간에 통신을 한다고 하면, 사용자들은 정상적인 네트워크 통신을 기대할 것이다. 정상적으로 이뤄진 네트워크 통신이란 무엇일까? 데이터를 교환하는 어플리케이션의 목적에 맞는 통신을 해야한다. 메일을 보낼거라면 메일에 맞는 형식의 통신을, 파일을 교환할거라면 파일 교환에 맞는 형식으로 통신이 이뤄져야 할 것이다. 데이터의 교환이 신뢰성있게 이뤄져야 한다. 여기서 신뢰성이라는 말은, 내가 보내고자 하는 내용이 순서대로, 오류 없이 전송된다는 의미이다. 내가 보내고자 하는 상대방에게 데이터가 잘 도착해야 할 것이다. A에게 보낸 데이터가 엉뚱한 B..

공부!/OS

Sync / Async / Blocking / Non-Blocking

머리로 이해하고 마음으로 느껴야하는 토픽인 것 같다--! 내 나름대로 이해한 것을 이해의 과정에 따라 정리해보겠다. 1. 개념적 차이 1) Blocking vs Non-Blocking : 호출하는 쪽에서 "블락(막힘)" 당하는가? 블로킹은 보통 "막히다"라는 뜻으로 쓰인다. 배구에서 스파이크를 치려는데 블락 당하거나, 특정 사이트의 접근이 블락 당하거나.. 이런 의미에서 Blocking / Non-Blocking은 호출하는 쪽에서 일을 할 수 있냐의 여부에 초점이 맞춰져 있다. Blocking이라면 블락당해서 결과가 전해질 때까지 호출하는 쪽은 아무것도 하지 못한 채 대기하고, Non-Blocking이라면 결과의 여부와 상관 없이 호출하는 쪽에선 무언가를 할 수 있다. 여기서 무언가를 한다는 것은 "제어..

프로젝트/부추 농장(spring boot + mySQL)

6. Notification 기능 추가

# 계획 누군가가 회원이 작성한 일기에 좋아요를 누르거나 누군가가 회원을 팔로우하거나 누군가가 회원을 일기 안에서 태그할 때(태그는 "@" 뒤에 아이디를 추가하는 것으로 하자) 해당 회원에게 알림, 즉 Notification이 가는 기능을 추가하고 싶었다. 1. Notification Entity 설정 알림을 DB에 저장되는 하나의 객체로 만들었다. 알림에 필요해보이는 field들을 생각해보았다. @Builder @AllArgsConstructor @NoArgsConstructor @Getter @Entity @EntityListeners(AuditingEntityListener.class) public class Notification extends BaseEntity { @Id @GeneratedVa..

김부추
두들두들