전체 글 99

3. 네트워크 성능

성능 네트워크 비교/평가 기준 빠른 네트워크란? 성능 (Performance) : 대역폭 대역폭 (Bandwidth) - 처리량/처리속도 (throughput) 단위 시간당 전송될 수 있는 데이터의 양 Ex. 10Mbps (bits-per-second) → 얼마나 보낼 수/받을 수 있는지에 대한 양 측정 지점 : 링크간 대 종단간 (end-point, end-to-end) 표기 방법 KB : 2^10 bytes Mbps = 10^6 bits per second 대역폭은 비트 폭 (bit width) 과 관련 있다. 속도가 높아지면 비트폭은 작아진다. (비트 사이가 좁아진다.) Ex. 속도를 두 배로 보내면 비트간 간격이 가까워진다 속도가 높아지면 비트폭이 작아져서 간섭/오류 가능성이 높고, 천재 지변시 ..

2. 네트워크 구조

프로토콜 (Protocol) 정의 통신에 사용되는 약속 (수신호, 언어 같은) 반드시 통신하는 양쪽이 대칭 관계여야 한다. 다양한 컴퓨터 통신 시스템/응용으로 인해 기능이 많아져서 프로토콜이 복잡해지고 불명확한 해석이 생기고 복잡한 시스템 때문에 변경 등 관리가 어렵고 새로운 프로토콜이 필요할 때마다 반복하게 된다 → 복잡성을 해결하는 구조적 기법이 필요하다 → protocol을 정하는 방법을 일반화/구조화 하자! 계층화 복잡한 문제는 한번에 풀 수 없다. 복잡한 내용/문제를 숨겨서 문제를 단순화 → 추상화한다 (abstractions) 추상화된 문제/내용 해결 → 추상화를 recursive하게 적용한다. 추상화는 자연스럽게 계층화를 유도하게 된다. 통신 프로토콜은 여러 계층으로 정의된다. 각 계층은 하..

1. 네트워크 기본 개념 - 요구사항

요구사항 네트워크가 제공해야 하는 것 결국, 네트워크에 대한 기능적 정의 연결 통신의 첫 단계는 통신 주체를 연결하는 것이다. 통신측 : 단말(기), terminal 컴퓨터 : 호스트(host) → 통신망이 해야 하는 제 1업무는 ‘연결’이다. 통신 주체 전화기 등 단말기 (엄밀히 말하면 기기가 아닌 응용이 주체가 된다.) 좀 더 일반적으로는 통신 응용이 있다. (카톡, 브라우저 …) 당분간은 단말기로 가정하고 생각한다. 연결 방법 선을 연결하거나 무선으로도 연결할 수 있다. 선 연결은 케이블로 가능하지만, 거리, 크기로 인해 어렵다. 통신망 구성 요소 (물리적 연결 제공을 위한) 노드 : 단말기, 범용 워크스테이션, 라우터, 공유기, 스위치 등 다른 주체와 연결되는 것을 노드라고 한다. 노드가 단말을 ..

카카오 서버가 다운되고 드디어 티스토리가 열린 날에

그냥 이런 날 쯤에 회고를 적어두면 나중에 기억나지 않을까 해서 적는 회고 날이 춥다 요즘 밖에 나가기가 싫어서 집에 있다고 말하고 싶지만 원래부터 집에 있던 사람... 이었음 오늘 오후 3시에 우아한테크코스 모집이 열린다. 쥐도새도 모르게 참가하려고 했는데 혹시나 떨어지더라도 좋은 경험이 될 것 같아서 미래의 내가 빼도박도 못하게 회고에 올려둔다. 이번에는 1차 코딩테스트를 안 본다고 한다. 그래서 왠지 경쟁률도 많이 올라갈 것 같은 느낌이다. 게다가 나는 지금 시험 기간 ^_ㅠ 자소서, 프리코스, 만약 합격한다고 해도 본 코스까지 전부 쉽지만은 않은 일정임에 틀림없다. 예전에는 시간이 없어서, 시험 기간이라, 해커톤에 나가고 있어서, 등등 많은 이유로 지원하지 못했던 것들이 있는데 지나고 보면 후회가..

[AWS] AWS 인바운드 규칙 설정하기 (feat.초보자)

AWS, Spring 관련 글에서 다뤘듯이 나는 백엔드 초보자다. 특히 AWS는 캡스톤 프로젝트를 하면서 처음 접했기에 아예 아는 게 전무한 수준이었다. 내가 가장 애를 먹었던 부분은 인바운드 규칙이었는데, 아는 게 없으니 당연히 인바운드 규칙도 어떻게 적어야 하는 지 몰랐다. 나같은 사람들을 위해 포스팅을 적는다. 외부에서 서버 접근하기 외부에서 서버를 접근하기 위해서는 해당 IP가 인바운드 규칙에서 허가되어야 한다. 먼저 puTTY 같이 SSH 연결을 하는 경우에는 유형을 SSH로 잡아야 한다. 소스 유형은 사용자 지정, Anywhere, 내 IP로 나뉜다. 사용자 지정은 내가 원하는 아이피를 소스에 넣을 수 있다. Anywhere는 말 그대로 어느 곳에서든 SSH로 접근할 수 있다는 뜻이다. (보안..

Personal Study/AWS 2022.09.24

[AWS] EC2가 너무 느려질 때 램 늘리기

spring boot 프로젝트 ./gradlew build를 하는데 너무 느렸다. 정말 말도 안 되게 느려서 타자도 안 쳐지고, 엔터 쳐지는 것도 1분 뒤에 콘솔에 반영될 정도였다. 혹시 저장소가 문제인가 싶어 마그네틱에서 범용 SSD로 바꿔봤지만 그대로였다. 정말 절망적이었는데 구세주 같은 글을 발견했다.. https://velog.io/@shawnhansh/AWS-EC2-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EC%8A%A4%EC%99%91 AWS EC2 램 늘리기(feat. 스왑) 이제 gradle이 멈추지 않습니다✨ velog.io 이 글은 위 글을 참고하여 작성되었습니다. (단순 아카이빙 목적입니다.) 나도 위 글을 보기 전까지는 인스턴스를 중지, 시작을 반복했다. (이렇게 하면 서..

Personal Study/AWS 2022.09.24

[Spring] [AWS] Spring boot + Mysql + docker-compose AWS에 배포하기

캡스톤으로 백엔드를 맡게 되었는데 아무것도 경험해보지 못한 것들 투성이라 정말 정말 정말 많은 오류들을 만났다... 팀플이다보니 포기할 수도 없고 그냥 죽기살기로 성공해야만 했는데 다행히 성공했다! 그 과정들을 기록 겸 블로그에 공유한다. docker-compose는 물론이고, Spring도 처음, AWS 배포도 처음입니다. 따라서 다음 글에는 오류가 있을 수 있으며 잘못된 부분은 지적해주시면 감사하겠습니다. Spring 프로젝트는 배포할 어떤 프로젝트도 좋다. 나는 캡스톤 프로젝트를 사용했다. Dockerfile 만들기 FROM openjdk:11-jdk EXPOSE 8080 CMD ["./mvnw", "clean", "package"] ARG JAR_FILE=./build/libs/*.jar COPY..

무엇을 하고 싶으신가요?

제목에 대한 답변을 쓰고 싶다. Android를 포기(?) 했다. 문제는 포기하고 나니 뭘 해야 할 지 모르겠다는 것이다. 그래서 일단.. Spring을 공부했다. Spring은 나름 재밌었다. 문제는 Android 공부도 처음엔 재밌었다는 것ㅋㅋㅋ 다시 새로운 분야에 던져지고 나니 이게 맞나 싶긴 하다. 할 것도 많다. 배울 것도 많다. 시간은... 모르겠다. 다시 맨 땅에 헤딩하러 간다. 이미 머리는 깨진 듯 하다 (...) 이 쪽이 원래 이런 줄은 알았지만 역시나 생각한 대로다. 생각대로 잘 풀리고 있는 것 같지는 않다. 다음 회고 때 이 글을 본다면 그 때는 어느 정도 자신감이 생겼으면 좋겠다.

[Spring] Thymeleaf TemplateInputException 해결

스프링 인 액션 책을 따라하면서 나타났던 오류이다. 다음과 같은 상태였다. package com.example.spring_in_action; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } Welcome to... 다음과 같은 오류가 발생했다. org.thymeleaf.exceptions.TemplateInputException: Error resolving template [ho..

오랜만에 회고

혹시나 내가 어떻게 살고 있는지 (?) 궁금해 하는 사람들을 위해서 방학 한 달간의 회고를 쓴다. 나는 이제 3학년 1학기를 마치고 여름방학을 지내고 있다. 3-2에는 캡스톤을 들을 예정이라 열심히 캡스톤 아이디어 회의를 했다. 아이디어가 다 있던 거나 누군가가 했던 거라서 진짜.. 정하기 너무 힘들었다. 캡스톤 만큼은 앱 말고 서버를 해보고 싶어서 (3년 만의 소원 성취) 서버를 하겠다고 했다. 이것도 새로운 도전인데... 생각보다 스프링이 많이 어려워서 조금 곤란하다. 3-2에는 캡스톤 뿐만 아니라 코딩 부트 캠프도 들어야 하는데 나는 알고리즘 공부를 처음부터 체계적으로 돌렸다기 보다는 그때그때 필요한 지식을 찾아서 코딩한 셈이라 알고리즘에 크게 자신이 있지는 않았다. 그래서 이제 발등에 불이 떨어졌..