분류 전체보기 512

2일차

2일차 강의의 앞부분이 짤려있어서 중간부터 들어야하는 상황이다. 오프라인에 비해 온라인을 신경써주지 못하는 것 같아 좀 그렇긴 하지만 별 수 없지뭐.. 앞부분은 Docker Hub에 push하는 과정을 수업한 것 같음? 아마? Dockerfile 작성 Dockerfile은 각 줄이 명령어와 인자로 이뤄지며 명령어는 모두 대문자로 써주는 것이 관례라고 한다. 수업에서 만든 Dockerfile에서 사용된 명령어들을 살펴보자. FROM 하나의 Docker 이미지는 base 이미지부터 시작해서 기존 이미지위에 새로운 이미지를 중첩해서 여러 단계의 이미지 layer를 쌓아가며 만들어진다. base 이미지를 지정해주는 것이 바로 FROM 명령어이다. # 우분투 최신 버전 사용 FROM ubuntu:latest # ..

1일차

빗썸 테크 아카데미에 합격하여 서버 백엔드 교육생으로 약 2달동안 교육을 받게되었다. 어느 정도의 기반이 있다고 생각하여 합격자를 선출했다고하니 매우 빡빡한 과정이 될 것이라고 예상하고있다. 커리큘럼 1주. MSA 패턴과 클라우드 Docker 설치 및 MSA 개발환경 설정 Spring Boot 와 TDD 개발 Modern Java(Java 8)기반의 함수형 프로그래밍 Lambda와 Stream 2주. WebFlux와 Security Design Pattern Asynch와 Non-Blocking RESTful API Spring Security 3주. Apache Kafka REDIS를 활용한 Cache Kafka 기반의 Message Queue Zookeeper, Brocker Producer, Con..

파일 업로드

일반적으로 HTML Form을 통해 파일 업로드 기능을 구현한다. 먼저 HTML Form 전송 방식 두 가지를 알아보자. - application/x-www-form-urlencoded - multipart/form-data application/x-www-form-urlencoded 이 방식은 HTML Form을 서버로 전송하는 가장 기본적인 방법이다. 별도의 "enctype"옵션이 없으면 웹 브라우저는 요청 HTTP 헤더에 아래와 같이 추가한다. Content-Type : application/x-www-form-urlencoded Form에 입력한 데이터를 HTTP Body에 문자로 &로 구분하여 전송하게된다. 파일 업로드를 위해서는 파일은 문자가 아니라 바이너리 데이터를 전송해야하는데 문자를 전송..

Spring/Spring MVC 2021.08.12

2021 상반기 회고

공부나하지 갑자기 뭔 회고냐? 회고란 지나간 일을 돌이켜보며 생각하는 것을 말한다. 이 과정은 공부 외적으로 굉장히 큰 의미가 있다고 생각한다. 나는 평소에 자기전에 스스로를 되돌아보며 내가 뭘 해야할지 무엇을 했는지에 대한 생각을 자주 하곤한다. 이러한 과정을 통해 많은 것을 생각하고 반성하며 앞으로에 대한 동기부여를 얻게된다. 회고를 통해 길다면 길고 짧다면 짧은 2021년 상반기를 되돌아보며 지금 이 순간의 생각을 글로 남겨두고 싶었다.또한, 정형화된 틀로 작성해야하는 자기소개서에 담을 수 없던 나의 일대기와 앞으로의 방향성을 기록해 더 괜찮은 사람 더 괜찮은 개발자가 되기 위해 이 글을 작성한다. 내 일대기부터 시작할 예정이기에 서론이 좀 길어질 것 같다. 나는 운이 좋다. 시작부터 운이 좋다니 ..

잡담/회고 2021.08.10

Spring Type Converter

문자를 숫자로 변환하거나 숫자를 문자로 변환해야하는 것과 같은 타입을 변환하는 경우가 많다. 예를 들면 아래와 같다. 위와 같이 쿼리스트링으로 넘어온 파라미터를 받고 싶다. 이를 위해 "/hello-v1?data=5"라는 요청을 보내면 getParameter를 통해 값을 받을 수 있다. 하지만 이는 숫자타입가 아니라 문자타입이다(String). 따라서 직접 Integer타입으로 변환하는 과정을 거쳐야한다. 하지만 무의식 중에 우리가 아무렇지 않게 사용하던 @RequestParam을 떠올려보자. @RequestParam Integer data 이와 같이 별도의 타입 변환과정 없이 손쉽게 개발자가 원하는 타입으로 변환된다. 이는 스프링이 중간에서 타입을 변환해주기 때문이다! 이러한 역할을 하는 것이 바로 T..

Spring/Spring MVC 2021.08.03

모두의 네트워크

내용이 쉽게 구성되어 있어서 2~3일만에 빠르게 훑고 강의로 깊은 내용을 공부하려한다. 1. 네트워크의 구조 컴퓨터 네트워크 : 컴퓨터 간의 네트워크를 연결한 것 웹 브라우저에는 사진과 문자를 보여주기 위해 필요한 규칙이 있음 ==> 패킷을 사용 패킷 : 네트워크를 통해 전송되는 데이터의 작은 조각 (데이터가 커도 패킷으로 작게 나누어 전송) 왜 굳이 작게? 데이터를 크게 보내면 해당 데이터가 네트워크의 대역폭을 많이 점유해 다른 패킷의 흐름을 막을 수 있기 때문 패킷이 목적지에 도달하면 목적지에서는 패킷을 원래 상태로 되돌리는 작업을 해야한다. 패킷이 전송한 순서대로 도착하지 않을 수도, 네트워크가 지연되어 늦게 도착할 수도, 패킷이 누락될 수도 있음. 송신 측에서 수신 측으로 패킷을 보낼 때 패킷에 ..

Book 2021.07.29

API 예외 처리

HTML 페이지의 경우에는 4xx, 5xx.html과 같은 오류 페이지만 있으면 대부분의 문제를 해결할 수 있지만, API의 경우에는 각 오류 상황에 맞는 오류 응답 스펙을 정하고, JSON으로 데이터를 내려주어야한다. 어떻게 이를 처리할 수 있을까? 먼저 처음으로 돌아가 Servlet 오류 페이지 방식을 사용해보자. api를 처리하는 컨트롤러를 만들고 내부에 static 클래스로 memberDto를 만들어 진행하겠다.(실제 작업시에는 별도로 생성해야함) @RestController이기 때문에 id가 ex가 아니라면 json형식으로 응답이 반환될 것이고 ex라면 RuntimeException이 발생해 오류 페이지를 내부적으로 호출해 반환될 것이다. 먼저 정상 요청이다. 다음으로 런타임에러를 발생시켜본다...

Spring/Spring MVC 2021.07.28

응용 계층

인터넷 5계층에서는 Application Layer, Presentation Layer, Session Layer를 묶어 응용계층이라고 지칭한다. 응용 계층에는 어떤 것이 있을까? ==> 카카오톡, 게임, 인터넷 브라우저 상의 응용(구글 검색, 네이버 웹툰 등), 메일 등 네트워크 응용의 구조 Client - Server 구조 응용을 서비스하는 Server를 따로두는 구조. 웹 검색 또한 클라이언트 - 서버의 대표적인 예이다.(HTTP 통신) 항상 서비스를 제공하는 Server를 두고 Client의 요청에 의해서 서비스를 제공 서버가 모든 서비스를 관여해야하므로서비스가 많아질수록 서버에 부하가 급격히 증가한다. (대신 안정적임) P2P(Peer-To-Peer) 구조 토렌트, 각 클라이언트들이 서버가 되는..

CS/네트워크 2021.07.27

예외 처리, 오류 페이지

Servlet 예외 처리 최종적으로 알고 싶은 것은 스프링의 예외처리이지만, 서블릿 컨테이너위에서 스프링이 돌아가기 때문에 서블릿이 어떻게 예외처리를 하는지부터 알고가자. 스프링이 아닌 순수 Servlet 컨테이너는 예외를 어떻게 처리할까?? Serlet은 2가지 방식으로 예외 처리를 지원한다. - Exception(예외) - response.sendError(HTTP 상태 코드, 오류 메시지) 🔧 Exception 자바의 메인 메서드를 직접 실행하는 경우 main이라는 이름의 쓰레드가 실행되는데, 이 때 예외를 catch하지 못하고 main메서드를 넘어 예외가 throw되면 예외 정보를 남기고 해당 쓰레드는 종료된다. 웹 애플리케이션은 사용자 요청 별로 쓰레드가 할당되고, Servlet 컨테이너 안에서..

Spring/Spring MVC 2021.07.24

JVM Garbage Collector

JVM의 Garbage Collector 10분 테코톡 - 던님의 "JVM의 Garbage Collector"를 시청하고 작성한 글입니다. 영상링크 JVM이란 Java Virtual Machine으로 운영체제의 메모리 영역에 접근하여 메모리 관리하는 프로그램이다. 메모리 관리, Garbage Collector 역할을 수행한다. Garbage Collector 동적으로 할당한 메모리 영역 중 사용하지 않는 영역을 탐지하여 해제하는 기능을 담당한다. 여기서 말하는 동적으로 할당한 메모리 영역은, Heap을 뜻한다. Heap에는 모든 Object 타입의 데이터가 할당되고 Heap영역의 Object를 가리키는 참조 변수가 Stack에 할당된다. Stack은 정적으로 할당한 메모리 영역으로, Stack에는 원시 ..

테코톡 스터디 2021.07.24
반응형