전체 글
-
Stream vs for loopJava & Spring 2024. 5. 19. 16:06
Java 8부터 사용이 가능한 Stream은 배열과 Collection의 데이터 처리에 초점을 둔 기능이다.평소에 나는 업무 시 코드량을 줄이고 가독성을 높이려고 Stream을 사용하곤 했다. 알고리즘을 풀때면 for 문을 줄줄이 쓰기보단 단 몇줄의 Stream을 좀 더 선호했었다. 그러다가 Stream을 사용하다 제한시간을 통과하지 못한 케이스가 있어, Stream과 전통적인 loop을 비교해 알아봤다.결론부터 말하자면, Stream은 일단 테스트 데이터가 매우 많아야 효율적이다. 또는 각 원소마다 컴퓨팅 연산이 오래 걸릴 수록 Stream 사용이 적합하다. 그렇다고 for loop이 나쁘냐? 그것도 아니다. for loop이 일반적으로 Stream보다 빠르다.내가 파악하기로 Stream보다 for l..
-
소셜 로그인 회고 (Spring Security)Java & Spring 2024. 2. 4. 22:24
사이드 프로젝트로 개발 중인 애플리케이션에 소셜 로그인을 도입하게 되었다. 일단은 구글 로그인을 개발해야 하는데, 일반적으로 쓰는 방법인 1. oauth2Login()을 사용한 서버에서 구글 로그인 페이지로 요청 2. 토큰 받고 다시 구글에서 내 서버로 redirect 하는 것이 아닌, 앱에서 일련의 과정을 처리 후 서버로 토큰만 보내주는 구조를 채택했다. 이유는?? 이라 묻는다면 트래픽과 처리량을 띵킹해본다...대규모 서비스가 될거라 상상하며 ㅋㅋ 로그인 과정에 있어 최대한 우리 서버에 부담을 덜고 싶었다. 앱에서 구글을 바로 찔러 토큰을 받아낸다면, 굳이 우리 서버에서 구글로 토큰 요청을 할 필요가 없을 것 같았다. 이런 요소 하나하나가 모이면... 적은 돈으로 가성비 좋게 만들 수 있지 않을까..?..
-
S3와 CloudFront로 동영상 서비스 제공하기AWS 2022. 1. 23. 17:32
1. 구조 프로젝트 요구사항으로 동영상 관리, 재생 서비스가 있었다. 앱으로 등록되는 상품의 상태를 영상에 담아 올리는데, 모두 AWS S3로 업로드가 된다. (S3는 파일 저장소) S3에 영상이 업로드 되면 Lambda가 실행되고 AWS MediaConvert를 통해 HLS의 m3u8, ts 파일로 변환된다. 원본과 변환된 파일은 S3에 저장되고, 사용자가 영상을 원할 때는 Cloudfront를 통해 변환된 URL을 반환한다. AWS S3 call마다 비용이 발생하기 때문에 처음 Cloudfront로 반환된 URL 정보를 DB에 저장해놓고 사용한다. 추가적으로, HLS는 크롬에서 재생이 안된다. 때문에 구글에서는 Video.js, Google Shaka Player, hls.js를 사용하라고 한다. 나..
-
Oz Enterprise Manager 사용해보기Infra 2021. 8. 26. 21:50
Oz 엔터프라이즈 매니저를 사용하면 리눅스 환경으로 모니터링 하는것 보다 훨씬 직관적이고 쉽습니다. 특히 로그를 보거나 Oz 서버 중지, 재시작을 하기 간편합니다. 좌측 콘솔 목록의 서버 목록을 우클릭 후, 서버 추가를 해줍니다. URL을 입력하거나, IP와 포트를 이용해 등록할 수 있습니다. 스케줄러 서버는 IP와 포트만 가능합니다. 콘솔 메뉴를 이용해 주로 사용되는 기능은 - 서버 정지 - 서버 재시작 - 메모리 상태 - 서버 라이센스 - 로그 보기 리눅스 환경보다 쉬운 GUI 환경을 제공하기 때문에 모니터링이 간편합니다.특히 로그를 보거나 Oz 서버 중지, 재시작을 하기 간편합니다.
-
videoJS를 이용한 서버 영상 재생현생살며 토이플젝 2021. 7. 11. 22:42
AWS S3 영상을 재생하는 기능의 요구사항이 생겼다. JSP의 태그에 videoJS를 써서 버킷에 있는 파일을 불러올 수 있다. 또 다양한 옵션을 제공한다. 공식 레퍼런스 : https://docs.videojs.com/module-videojs-videojs.html Namespace: videojs | Video.js Documentation A safe getComputedStyle. This is needed because in Firefox, if the player is loaded in an iframe with display:none, then getComputedStyle returns null, so, we do a null-check to make sure that the playe..
-
AWS EC2 인스턴스 생성 (Feat. Ubuntu)AWS 2021. 2. 11. 21:44
1. AWS 프리티어를 이용해보자. https://aws.amazon.com/ko/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc AWS 프리 티어 12개월 무료: 이 프리 티어 오퍼는 AWS 신규 고객에게만 제공되며 AWS 가입일로부터 12개월 동안 유효합니다. 12개월의 무료 사용 기간이 만료되거나 애플리케이션 사용량이 프리 티어 범위를 초과 aws.amazon.com 2. 프리티어에서 제공하는 무료 서비스 중 EC2라는 IaaS를 사용한다. IaaS는 기존의 물리적 장비들과 미들웨어를 포함해 제공하는 서비스다. 가상머신, 스토리지, 운영체제, 네트워크 등 인프라를 잠시 빌려주는 개념이다. 처..
-
AWS Practitioner 자격증AWS 2021. 2. 9. 01:42
2020년 8월부터 보려했던 AWS 자격증 공부를 시작했다. 원래는 Solution Architecture를 보려했는데 그냥 기초부터 다져서 나쁠 것 없다는 생각으로 시작했다. 2020년 8월 쯤에 문제의 유형이 바뀐대서 1년간 덤프가 쌓이길 기다렸는데 더 기다리기도 아쉽고 내가 준비가 되어있다면 유형이 어떻든 합격을 할 수 있다고 생각했다. 또 지금 하는 토이 프로젝트에 EC2를 쓰는데 배경지식이 될 것 같다. 공부의 방향은 다른 모든 사람들이 그렇듯, AWS 백서를 정독하고 그 부분에서 채워야 할 부분을 공식 강의로 보충할 계획이다. 그 뒤에 덤프를 풀면서 유형을 익힐 예정이다. 뭔가 일기같은 글이 되버렸는데 빠른 시일안에 따겠다는 스스로에 대한 약속이다.
-
[MySQL] Workbench로 ERD 그리기DB 2021. 1. 21. 11:17
Mysql을 사용하는 프로젝트를 할 경우 ERD 설계를 쉽게 도와주는 툴이 workbench 입니다. 새로운 ERD를 그리기 위해 File -> New Model를 선택하면 다음 화면을 볼 수 있습니다. 위의 Add Diagram을 선택하면 ERD를 그릴 수 있고, 밑의 Table, View 설계를 해도 스키마 생성 쿼리를 얻을 수 있어요. 개인적으로 사용해보니 직접 ERD를 그리면서 관계를 명시하는게 생각을 구체화 하기 좋았습니다. 쇼핑몰 개발에 필요한 가장 기본적인 ERD를 설계했습니다. 이 때 1:N 관계를 표현하는 선을 그을 때 어느 테이블을 먼저 클릭해야 하는지 어리둥절 할 수 있는데요. 먼저 클릭하는 테이블이 삼발이가 됩니다. 즉, N이 되고, 나중에 누르는 테이블이 1이 됩니다. 다 그린 E..