전체 글
-
ktlint와 Github Action을 활용한 CI프로젝트/미디어 스트리밍 서버 프로젝트 2022. 8. 17. 21:57
ktlint란? Kotlin 언어의 공식 사이트에서는 코딩 컨벤션 가이드를 제공합니다. ktlint는 공식 가이드의 규칙을 포함하여 코드 스타일을 검사하고 맞춰주는 도구입니다. ktlint를 통해 팀원들과 정해진 포맷팅을 맞추어 개발할 수 있게 되고 코드 가독성이 향상되는 효과를 볼 수 있습니다. ktlint gradle 설정하기 plugins { id("org.jlleitschuh.gradle.ktlint") version "" } .editorconfig 설정하기 코드 포맷에 대한 문서의 역할을 수행하는 파일입니다. ktlint가 버전이 올라가면서 규칙의 디폴트 값이 변경될 경우를 대비할 수 있습니다. Kotlin 공식 코딩 컨벤션에 명시되지 않은 규칙까지 일치시킬 수 있습니다. .editorconf..
-
[NHN]Spring Security 5 Oauth 총정리:클라부터 서버까지세미나, 영상 요약정리 2022. 8. 17. 03:08
https://www.youtube.com/watch?v=-YbqW-pqt3w Spring Security란? Spring Framework 기반 인증, 인가를 담당하는 프레임워크 Spring 기반 애플리케이션에서는 사실상 표준(de-facto standard) Spring Security 5 버전은 Spring Boot 2.0부터 Spring Framework 5.0 기반입니다. 새로운 기능으로는 Oauth 2.0 Login입니다. 위의 빨간 박스가 새로운 기능입니다. 위의 기능이 대단하다고 하는데 왜 그런지에 대해서 알아보기 위해서는 Spring Security 5 이전에 Oauth가 어떻게 동작했는지 알아보겠습니다. Spring Security 5 이전의 Oauth Spring Security 4 ..
-
스트리밍 서버란?프로젝트/미디어 스트리밍 서버 프로젝트 2022. 8. 16. 21:21
스트리밍이란? 스트리밍이란 인터넷(네트워크)을 바탕으로 사용자에게 각종 비디오, 오디오등의 멀티미디어 디지털 정보를 제공하는 기술로 인터넷에서 영상 및 음향 등의 파일을 다운로드 없이 실시간으로 재생해 주는 기법입니다. 전송되는 데이터가 마치 물이 흐르는 것처럼 처리된다고 하여 "streaming"이라 표현합니다. 파일이 모두 전송되기 전이라도 클라이언트 브라우저 또는 플러그인이 데이터를 표현하기 시작합니다. 스트리밍의 원리 큰 용량의 오디오나 동영상 파일을 다운로드 완료될 때까지 기다리지 않고 일정량의 데이터를 특수한 압축기술로 압축한 다음 파일을 잘게 쪼개서 전송합니다. 스트리밍 서비스에서는 인터넷 속도가 가장 중요합니다. 만약 인터넷 환경이 좋지 않은 경우에 일반적인 다운로드는 다운 속도가 느려지기..
-
Confluence란?카테고리 없음 2022. 8. 16. 13:23
컨플루언스란? 아틀라시안에서 개발한 자바 기반의 소프트웨어 사용하는 이유? 다른 팀원들과 협업하기 위해서 사용합니다. 프로젝트 참여자들이 한 공간을 만들고 그 공간에 올라온 글을 공유 편집하며 서로 간의 소통이 가능합니다. 만약 노션을 써보셨다면 노션을 떠올리면 좋을 것 같습니다. 또한 일정, 목표 그리고 그 주에 해야할일들을 한눈에 볼 수 있습니다. 공간과 페이지 하나의 공간은 페이지들로 구성이 됩니다. 페이지는 폴더의 역할과 동시에 게시글 역할을 수행합니다. 이때 한 공간 내에서 동일 이름의 페이지는 만들 수 없습니다. 출처 https://struggle-yun.tistory.com/2 00. 협업 소프트웨어 컨플루언스(Confluence)란? 입사한지 어느덧 1년... 팀내에서 컨플루언스로 프로젝트..
-
OSIV란?JPA 2022. 8. 16. 00:01
미리 알고 있어야 하는 개념 - 영속성 콘텍스트 - 지연 로딩 - DB Connection OSIV란? Open Session In View의 약자로 하이버네이트에서 사용하는 단어입니다. JPA에서는 Open EntityManager In View가 정식 명칭이지만 관례상 OSIV라고 합니다. OSIV는 영속성 콘텍스트의 생존 범위를 지정하는 것입니다. 위의 설정을 하면 커넥션 시작부터 API 응답이 끝날 때까지 영속성 콘텍스트가 유지됩니다. 이때 Controller에서도 지연 로딩을 사용할 수 있습니다. 하지만 DB Connection을 오랫동안 사용하기 때문에 실시간 트래픽이 몰리면 커넥션이 부족해질 수 있습니다. (DB Connection Pool 에는 커넥션의 수가 정해져 있기 때문에 오래 쓸수록..
-
스트림 소개Java/모던자바인액션요약 2022. 8. 15. 00:01
스트림 이전의 세상 자바에서는 Collection을 만들고 처리하는 과정을 포함합니다. 대부분의 데이터베이스들은 다음과 같은 명령어를 통해 해결합니다. SELECT name FROM dishes WHERE calorie < 400 하지만 자바 컬렉션은 위와 같이 처리하지 못하고 컬렉션의 각 요소를 반복하면서 모든 컬렉션의 값을 비교하는 방식으로 사용해야 합니다. List result = new ArrayList(); for(Dish cur : dishes){ if(cur.calorie < 400){ result.add(cur.name); } } 또한 성능을 높이기 위해 멀티코어 아키텍처를 활용하려면 병렬로 컬렉션 요소를 처리해야 합니다. 이때 코드는 복잡해지고 디버깅도 어려워집니다. 스트림의 등장 스트림..
-
[백준] 2533번 : 사회망서비스(SNS) - 자바(JAVA)알고리즘/백준 2022. 8. 14. 00:01
https://www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 첫 번째 줄에는 친구 관계 트리의 정점 개수 N이 주어진다. 단, 2 ≤ N ≤ 1,000,000이며, 각 정점은 1부터 N까지 일련번호로 표현된다. 두 번째 줄부터 N-1개의 줄에는 각 줄마다 친구 관계 트리의 에 www.acmicpc.net 문제 해석 얼리 어답터는 어떤 소식을 가장 먼저 알게 됩니다. 주변에 연결되어 있는 친구들끼리만 해당 소식을 전파할 수 있습니다. 모든 정점 사이에 이들을 잇는 경로가 존재하고 사이클이 존재하지 않는다고 고려합니다. 모든 개인이 새로운 소식을 받기 위한 최소 얼리 어답터의 수를 구하세요 N은 최대 백만 개입니다. 문제 풀이 전 설계 이분 탐색을 활용한 파라미터 서..
-
[백준] 21939번 : 문제 추천 시스템 Version 1 - 자바(JAVA)알고리즘/백준 2022. 8. 13. 00:01
https://www.acmicpc.net/problem/21939 21939번: 문제 추천 시스템 Version 1 tony9402는 최근 깃헙에 코딩테스트 대비 문제를 직접 뽑아서 "문제 번호, 난이도"로 정리해놨다. 깃헙을 이용하여 공부하시는 분들을 위해 새로운 기능을 추가해보려고 한다. 만들려고 하는 명령 www.acmicpc.net 문제 해석 문제 번호, 난이도로 정리되어 있습니다. 명령어는 총 3가지가 존재합니다. recommend x x가 1인 경우 추천 문제 리스트에서 가장 어려운 문제의 번호를 출력합니다. 가장 어려운 문제가 어려 개라면 문제 번호가 큰 것을 출력합니다. x가 -1인 경우 가장 쉬운 문제의 번호를 출력합니다. 만약 쉬운 문제가 여러 개라면 문제 번호가 작은 것으로 출력합니..