Tech Blog of Pinomaker
[Spotify Play] 스포티파이 이야기
Life Log/독서 2022. 9. 7. 14:51

저자 : 스벤 칼손, 요나스 레이욘휘부드 [읽기 전] 책을 읽는 습관을 들이자라고 생각을 할 때 어떤 책을 읽을까 고민을 했다. 나는 기업에 대한 이야기를 좋아하기에 어떤 특정한 기법이나 에세이보다는 어떤 기업의 이야기가 담긴 책을 매우 좋아한다. 그래서 전에 음악 스트리밍 서비스를 만들고 싶다는 생각으로 기획을 하고 외주도 맡긴 경험이 떠올라, 해당 업계에서 1위를 달리고 있는 음악 스트리밍 서비스 Spotify에 대해서 알아보고 싶다는 생각을 하여, Spotity에 대해 적은 책이 있나 찾아 보았는 데, 아쉽게도 도서관에 없었기에, 신권 신청을 해서 빠르게 받아 읽어볼 수 있게 되었다. Spotity는 전세계에서 가장 많이 사용하는 음악 스트리밍 서비스다. 우리나라에서만 유독 인지도가 없는 편이 없잖..

[JavaScript] Hoisting
F.E/JavaScript 2022. 9. 1. 14:31

Hoisting Hoisting이란 변수의 선언만을 해당 스코프의 맨 위로 끌어올리는 것을 의미한다. 아래의 예시를 보고 이해해보자. 아래의 1번을 보면, x는 console.log아래에서 선언과 초기화가 이루어져있는 데도, Error가 아닌 undefiend가 나오고 있다. 이것이 Hoistring의 예시라고 생각하면 된다. 1번처럼 작성한 코드가 Hoistring으로 2번처럼 아래에서 선언된 변수가 선언만은 위에서 되어 undefined가 나오는 것이다. // 1번 console.log(x) // undefiend var x = 1 // 2번 var x console.log(x) x = 1 그렇다면 Hoisting이 안 된다면 어떻게 될까 아래의 예시를 보면 Hoisting이 되지 않는다면 Refer..

[JavaScript] Event Loop
F.E/JavaScript 2022. 9. 1. 14:01

JavaScript에는 동시성 모델인 Event Loop, Call Stack, Callback Queue가 있다. Event Loop EventLoop는 여러개의 스레드를 사용하고, 그 중 우리가 작성한 JavaScript가 실행되는 스레드를 메인 스레드라한다. 이 메인 스레드는 Node JS 프로세스에서는 하나만 존재하며, 한 순간에 한 줄씩 실행된다. 하지만 그 이외의 일을 하는 워커 스레드는 여러개가 존재할 수 있다. Call Stack Call Stack이란 지금 시점까지 호출된 함수들의 Stack이다. 여기서 Stack은 자료 구조 중 하나며, 아래에서 위로 차곡 차곡 쌓이지만, 위에서부터 빼내는 자료 구조다. 즉 함수가 호출 될 때 마다 하나 씩 쌓이고, 리턴 할 때 빠지게 된다. 이벤트 루..

[No Rules Rules] 넷플릭스 이야기
Life Log/독서 2022. 8. 30. 12:20

저자 : 리드 헤이스팅스, 에린 마이어 [읽기 전] 하루에 버스, 지하철 등 이동 시간이 평균 2시간 정도이며, 나는 부족한 잠을 보충하거나, 핸드폰을 하며 시간을 보낸다. 고등학생 때는 등하교 시간 때 책을 읽었는 데 다시 시작해보자라는 생각에 학교 도서관에 가서 책을 골랐다. 넷플릭스는 급성장한 공룡 스타트업 중 하나로, 개인적으로 전에 관심을 가지고 있던 기업이였고, 다시 책을 읽기에 어려움이 없어 보여 이 책을 선택 하였다. [읽는 중] 2022.08.26( ~ 83P) 중, 고등학생 때 여러 기업에 관한 책을 읽으면서 나는 플랫폼 사업에 있어서는 물론이고, 일반 사업에서도 신규 모집 고객이 아닌 충성 고객을 만드는 것에 집중 하라는 이야기를 많이 보았고, 그 이유에 대해서 책을 통해 알게 되면서..

[Spring] 싱글톤 패턴
B.E/Spring 2022. 8. 29. 23:34

해당 글은 김영한님의 스프링 핵심 원리 강좌를 정리한 글 입니다. Spring은 기업용 온라인 서비스 기술을 지원하기 위해서 만들어졌고, 대부분의 스프링 어플리케이션은 웹이다. 웹은 주로 여러 개의 클라이언트로부터의 요청이 동시에 발생하게 되고, 요청이 올 때 마다 객체를 생성하게 되는 데 고객 트래픽이 1초에 100이라면 1초에 100개의 객체가 생성 되는 심각한 메모리 낭비가 발생하게 되었다. 해당 문제를 해결 하기 위해서 하나의 객체를 생성하고, 이 객체를 공유하도록 설계를 하여 효율적인 개발을 하게 되는 데 이를 싱글톤 패턴이라고 한다. 싱글톤 패턴 싱글톤 패턴은 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 그러기에 객체 인스턴스를 2개 이상 생성하지 못 하도록 막아야하..

[백준 - 1712] 손익 분기점
CS/알고리즘 문제 2022. 8. 29. 09:57

[문제] 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만원이 든다.노트북 가격이 C만원으로 책정되었다고 한다. 일반적으로 생산 대수를 늘려 가다 보면 어느 순간 총 수입(판매비용)이 총 비용(=고정비용+가변비용)보다 많아지게 된다. 최초로 총 수입이 총 비용보다 많아져 이익이 발생하는 지점을 손익분기점(BREAK-EVEN POINT)이라고 한다.A, B, C가 주어졌..

[백준 - 13458] 시험 감독
CS/알고리즘 문제 2022. 8. 28. 17:43

[문제] 총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다. 감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 C명이다. 각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다.각 시험장마다 응시생들을 모두 감시해야 한다. 이때, 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성하시오. [입력] 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다.셋째 줄에는 B와 C가 주어진다. ..

[백준 - 4344] 평균은 넘겠지(배열 응용)
CS/알고리즘 문제 2022. 8. 26. 16:27

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. [입력] 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. [출력] 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 해당 문제는 크게 어렵지 않게 풀 수 있는 것 같다. 먼저 메인 메서드에서 스캐너를 활용하여 학생 숫자를 정수로 입력을 받는다. 정수가 1 ~ 1000이라는 조건이 있기에, 1보다 작거나 1000보다 크면 ERROR라는 메세지를 출력 ..

[백준 - 1110] 새로운 수 찾기
CS/알고리즘 문제 2022. 8. 26. 15:51

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 해당 문제를 봤을..

[백준 - 2480] 3개의 주사위 게임
CS/알고리즘 문제 2022. 8. 26. 12:52

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. - 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. - 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. - 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로..