본문 바로가기

전체 글

(115)
Spring으로 비디오 스트리밍 만들어보기 공부를 하다 집중력이 떨어지면 유튜브 보는 것이 요즘 삶의 낙이다. 갑자기 번뜩 생각이 났다. Spring boot로 스트리밍을 만들어 볼까? 첫번째로 생각한 방법은 video 태그에 spring boot statics 경로를 넣는 것이다. 다들 알다 시피, spring boot static은 정적으로 파일을 들을 넣는곳이다. 이런식으로 넣게 되면 포트 설정을 8080 으로 한다고 가정하에 localhost:8080/Dynamite.mp4 를 url에 치게 되면 이런형식으로 동영상이 나오게 된다. 우리가 원하는 건 원하는 위치에 동영상에 띄우게 하는 것이기 때문에 컨트롤러에 url를 넣고 video 태그에서 불러오는 방식으로 진행을 하였다. 컨트롤러를 위처럼 지정해주고 video 태그에서 요청해준다. 그..
제로베이스 스쿨 백엔드 부트캠프 3달 후기 제로베이스 스쿨 백엔드 부트캠프 과정을 다니기 시작한지 이제 3개월이 지나갔다. 이제 Part1이 끝이 났고, Part2에 들어가게 되었다. Part1를 잠깐 종합적으로 요약을 하자면, 백엔드의 기초가 되는 Java나 자료구조, 코딩테스트를 중점적으로 봤었다. 1주일에 한번(목요일)에 프로그래머스 스쿨을 이용하여 문제를 풀어봤다. 코딩테스트는 정확성 즉, 정답이 맞아야 점수를 획득하지만 문제를 내주신 멘토님의 효율성과 비슷하게 수행이 완료되어야 효율성 점수가 얻어지는 방식으로 되어 있어, 방법이나 속도에서도 생각해야 할것이 되게 많았었다. 매주 코딩테스트 점수는 공지사항으로 알려줘 현재 내 점수가 어느 수준인지 알수 있게 할 수 있다. 생각보다 많은 분들이 탈락을 되고 진심으로 취업을 하고 싶은 분들만 ..
[나는 리뷰어다] 기업의 성공을 이끄는 Developer Relations "한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 우리가 어떤 프로젝트를 시작할때 기대치나 목표하는 바를 정하고 그 지표를 성공하기 위해서 팀들은 움직이기 시작한다. 만약 내가 쇼핑몰이라는 사이트를 제작을 했을때, 사용하는 사람은 어느정도 이고, 주요 고객층은 어디에 벤치 마킹을 할 것인지도 여기에 포함되는 일이기도 한다. 목표를 이루기 위해서 사람을 모으는 일도 중요하지만 많이 모였을 경우 기술적으로 해결이 가능한가도 중요한 일이다. 그래서 다른 기업들은 어떻게 하고 있고 특히, 팀원을 모으는 역활도 하여 커뮤니티 활동은 중요하다 보고 있다. 해외 기업의 사례를 보면 애플의 WWDC 같은 개발자 컨퍼런스도 열면서 역량 및 앞으로의 방향성을 나타내는 역활을 한다. 국내 기업의 사례를 봐도 네..
HTTP Method 간단 정리 Rest 란?? Rest는 굉장히 난해한 개념입니다. 정리를 하자면 아래와 같습니다. HTTP URI를 통해 자원을 표시하고 HTTP Method를 통해 자원에 대한 처리를 표현합니다. 사람이 읽을 수 있는 API라는 것이 특징입니다. HTTP를 사용하기 때문에 HTTP의 특성을 그대로 반영합니다. 또한, 별도의 인프라 구축도 필요없습니다. 단점으로 명확한 표준이 존재하지 않는다 점, Restful을 완전히 만족하는 API를 만들기는 매우 까다롭다는 점. Rest API 가 분산환경에 적합하지 않다는 점이 있습니다.(멱등성을 보장하기 힘들기 때문) 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 멱등성(idempotence) 이라 한다. Rest 특징 1. Server-Client 구조 Serv..
TCP와 UDP는 무엇인가? TCP ( Transmission Control Protocol ) 연결형 서비스를 지원하는 전송 계층 프로토콜로써, 인터넷 환경에서 기본으로 사용합니다. 호스트간 신뢰성 있는 데이터 전달과 흐름제어를 합니다. 인터넷상에서 데이터를 메시지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜입니다. 일반적으로 TC와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP의 패킷을 추적 및 관리하게 됩니다. 3way Handshake 방식으로 연결을 설정하고 , 4 Way Handshake를 통해 연결을 해제합니다. UDP ( User Datagram Protocol ) 비 연결형 서비스를 지원하는 전송계층 프로토콜로써, 인터넷상에서 서로 주고받을 정보를 보낸다는 신호나 받는다는 신호 절차를 거치지..
[코딩테스트] 백준 - N번째 큰 수 N번째 큰 수 문제 N×N의 표에 수 N2개 채워져 있다. 채워진 수에는 한 가지 특징이 있는데, 모든 수는 자신의 한 칸 위에 있는 수보다 크다는 것이다. N=5일 때의 예를 보자. 이러한 표가 주어졌을 때, N번째 큰 수를 찾는 프로그램을 작성하시오. 표에 채워진 수는 모두 다르다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. 출력 첫째 줄에 N번째 큰 수를 출력한다. -> 배열에서 정렬로 풀기 처음에는 쉽게 배열로 넣어서 정렬을 하면 되겠다고 생각을 하였다. import java.io.*; import java.util.*; class Main { publ..
[코딩테스트] 프로그래머스 - 스킬트리 프로그래머스의 스킬트리 문제를 풀어볼려고 한다. 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 s..
[Spring] 스프링 IoC, Bean, DI 정리 IoC (Inverrsion of Control) 일반적인 (의존성에 대한) 제어권: "내가 사용할 의존성은 내가 만든다." 일반적으로 우리가 아는 자바 사용법에서는 객체를 생성하여 사용하는 것이 일반적이다. IoC: "내가 사용할 의존성을 누군가 알아서 주겠지" 스프링에서는 객체를 생성하여 하기 보다는 생성자로 service의 의존성을 받게 된다. 즉, Controller 단에서 객체를 주는게 아닌 Controller의 밖에서 주는 것으로 제어가 역전 되었다라고 표현이 된다. 즉, 의존성을 주는 것이 자신 class가 아닌 다른 곳에서 의존성을 주기 때문에 제어의 역전이라고도 한다. Bean Spring IoC 컨테이너가 관리하는 자바 객체를 빈(Bean)이라는 용어로 부른다. new 로 새로운 객체를..