분류 전체보기 215

[강서구, 양천구, 구로구, 영등포구 일대] 빠르게 움직여야 많이 번다, 배민커넥트!

오늘은 2021년, 코로나로 인해 배달수요가 많아진 시점에 배달 아르바이트를 했던 썰을 풀어보려고 한다. 아무래도 대부분의 요식업 자영업자분들께서 이 시기에 홀보다는 배달 위주로 업을 이어나가신 걸로 기억한다. 자연스럽게 나도 배달이라는 것을 해보게 됐다. 지금이야 많은 배달업체들이 있지만, 저 때는 한창 배민커넥트에 대해 많은 사람들이 관심을 가졌었던 때였다. '배달의 민족'이 그래도 가장 대중성있는 배달어플이기도 하고 우아한 형제들에서 선보인 "누구나 배달을 할 수 있다!"라는 메시지에 눈이 갔기에, 나도 "한 번 해보자" 라고 마음을 먹었던 것 같다. 한창 이 시기에 카공을 많이 했었다. 카페가서 커피를 사는 것이 거의 고정지출이였는데, 뭔가 지금 생각해보면 돈이 정말 필요했던 시기였던 것 같다. ..

[리트코드/leetcode/python] 560. Subarray Sum Equals K

오늘은 누적합과 관련한 SubArray의 수를 구하는 문제를 가져와봤습니다. 문제는 짧지만 구현하기는 쉽지 않습니다. 문제 이해부터 해보겠습니다. 주어진 정수 배열 'nums'와 정수 'k'가 있을 때, 합이 'k'와 같은 연속된 부분 배열의 개수를 찾는 것이 이 문제의 목표입니다. 예를 들어, num = [1,2,-1,3] 이고 , k = 2 인 경우에는 두 개의 부분 배열 [1,2,-1] 과 [2] 가 목표 합을 만족합니다. 즉 답은 2가 됩니다. 이 문제를 봤을 때 뭔가 누적합을 이용한 풀이를 생각할 수 있습니다. 하지만, 제한 조건을 봤을 때 시간복잡도도 고려해야 문제를 통과할 수 있을 것 같습니다. 또, 주어진 배열에서 연속된 부분 배열 중 합이 k인 경우의 수를 찾는 것이 핵심인데, 여기서 배..

[Github/깃허브] push한 commit message 수정

자바 스프링 공부를 하다가...커밋 컨벤션을 안지키고 커밋하고 그냥 푸시를 해버렸다. 이렇게 [Test] 로 컨벤션을 지키면서 커밋작성을 하고 싶었는데, 그냥 "Checking beans in various types and situation' 이라고 올려버렸다. 아직 push 하지 않은 커밋메시지는 아래와 같이 amend 를 이용해서 가장 마지막에 commit 한 내용을 수정할 수 있다. git commit --amend git commit --amend 를 사용하고 커밋을 수정할 수 있는 창이 뜨면, 수정을 완료한 후 esc -> :wq(저장 + 창 닫기) 를 해주면 된다. 그럼, 이미 push한 커밋에 대해서 커밋메시지를 수정하고 싶을 때는 어떻게 해야 할까? 1. 터미널에서 rebase를 사용해서..

[리트코드/leetcode/python] 380. Insert Delete GetRandom O(1)

오늘은 자료구조 설계에 대한 흥미로운 문제를 가져왔습니다. 겉으로 봤을 때는 해당 문제가 쉽게 풀릴 것입니다. 즉, O(1)이 아니고서는 문제 구현이 쉬울 것 입니다. 하지만, 이 문제에서는 O(1)의 시간 복잡도로 요소를 삽입, 삭제 및 무작위로 가져오는 자료 구조를 구현하는 것이 핵심입니다. 저는 이 문제를 처음 시도했을 때, 파이썬의 'set'자료구조를 사용했습니다. 'set'을 사용하면 삽입과 삭제는 평균적으로 O(1)의 시간 복잡도를 가지기 때문이죠.(자세한 이유는 이 링크를 참조하세요) 하지만, 문제는 getRandom() 메소드에 있었습니다. rand()와 같은 함수는 해시 집합에서 사용할 수 없기 때문에, 'set'을 'list'로 변환하는 과정이 필요합니다. 이 때, O(n) 시간이 걸리..

[데이터베이스] 12장 - stored procedure를 백엔드 실무에서 쓰기에 조심스러운 이유!

✅ 3-tier architecture 에서 stored procedure의 의미 : 오늘날의 IT회사들은 일반적으로 client-server architecture 의 한 종류인 three-tier architecture 모델로 서비스를 개발한다. 그럼, 비즈니스 로직이란 무엇일까? 당근마켓을 예로 들어보자. 이런 비즈니스 로직들을 통해 파생되는 데이터들이 있을 텐데, 그러한 데이터들이 데이터 티어에 저장된다. 10장에서 Stored Procedure 는 RDBMS에 저장되고 사용된다고 했는데, 주된 사용 목적은 비즈니스 로직 구현이라고 했다. 즉, stored procedure을 사용한다는 것은 data tier에 비즈니스 로직이 존재할 수 있다는 의미이다! 즉, 비즈니스 로직이 Logice 티어에도..

[데이터베이스] 11장 - stored procedure + 프로시저의 동작 방식과 특징, stored function과의 차이

✅ stored procedure 의 뜻과 예제 : 사용자가 정의한 프로시저 : RDBMS에 저장되고 사용되는 프로시저 : 구체적인 하나의 task(태스크)를 수행한다. stored procedure를 만들 때도, delimiter 라는 키워드를 사용한다. delimiter 는 구분자를 의미하는데, 기본적으로 SQL 에서 사용되는 delimiter는 (;)세미콜론이다. 하지만, stored program의 정의를 서버로 보내기 위해서는 delimiter를 일시적으로 재정의 해주어야만 한다. 이 때, 주의해야 할 점은 DELIMITER를 재정의하고 stored program을 정의한 후에 delimiter를 기존의 세미콜론(;)으로 바꿔주는 것이 좋다. (계속해서 DELIMITER를 사용자가 재정의한 것으..

[목동/신정] 재수학원 메가스터디 러셀 썸머스쿨, 윈터스쿨 알바

코로나 시절 재수학원의 썸머스쿨과 윈터스쿨 알바를 했던 경험을 얘기해보려 한다. 2020년 코로나 시절, 여름방학에 할만한 알바를 구하고 있었다. 대부분의 요식업들이 배달 주력으로 바꾼 시점이기도 했고 알바구하기가 그 전보다는 어려웠었던 걸로 기억한다. 하지만, 때마침 메가스터디 러셀 학원 알바를 하고 있던 친구 원준이의 제안으로 감사하게도 재수학원 알바를 시작할 수 있었다. 집과 불과 도보 15분 내외인 곳이라 너무 좋았고, 재수학원을 다녀봤던 나로서도 익숙한 장소여서 마다하지 않을 수 없었다. 더구나, 학생시절에는 친구랑 같이 일할 수 있는 것이 큰 메리트로 다가왔다. 첫 날, 본관 7층에 있는 데스크에 올라가서 면접을 간략하게 보자마자 파트장님께서 우선 어떤 일을 하는지에 대해 배우라고 하셨다. 우..

[코테] 코딩 테스트 합격자 되기 2주차 - 스택

스택의 어원은 '쌓는다' 입니다. 어원에서 짐작할 수 있듯이, 먼저 입력한 데이터를 제일 나중에 꺼낼 수 있는 자료구조입니다. 이렇게 먼저 들어간 것이 마지막에 나오는 규칙을 후입선출 혹인 LIFO(Last IN First Out)이라고 합니다. 이 때, 스택에 삽입하는 연산을 push, 꺼내는 연산을 pop 이라고 합니다. 📖 스택의 동작 원리 이해하기 빈 통(빈 스택)에 사탕을 넣는다고 하면, 아래와 같이 나타낼 수 있습니다. 📖 스택의 ADT ADT는 우리말로 추상 자료형(abstract data type)인데요, 추상 자료형이란 인터페이스만 있고 실제로 구현은 되지 않은 자료형입니다. 일종의 자료형의 설계도라고 생각하면 됩니다. 그렇다면 스택은 어떤 정의가 필요한 자료구조일까요? 우선 스택에는 ..

[코테] 코딩 테스트 합격자 되기 2주차 - 배열

배열은 인덱스와 값을 일대일 대응에 관리하는 자료구조입니다. 데이터를 저장할 수 있는 모든 공간은 인덱스와 일대일 대응하므로 어떤 위치에 있는 데이터든 한 번에 접근할 수 있습니다. 데이터에 한 번에 접근할 수 있으니 어디에 있는지만 알면 빠르게 탐색할 수 있는 것이죠. 이런 접근 방식을 임의 접근(random access)라고 합니다. 📖 배열 선언 배열을 선언하는 방법은 다음과 같습니다. 이름이 arr 이고 길이가 8인 정수형 배열을 리스트를 활용해서 선언하는 3가지 방법을 예제를 통해서 알아보겠습니다. 1) 일반적인 방법 arr = [0,0,0,0,0,0,0,0] arr = [0] * 8 # 결과는 둘 다 동일합니다. 2) 리스트 생성자를 사용하는 방법 arr = list(range(8)) # [0..

[데이터베이스] 10장 - SQL 에서 stored function 이란? + 언제 사용하면 좋을지에 대해

✅ stored function 의 뜻과 예제 : 사용자가 정의한 함수 : DBMS에 저장되고 사용되는 함수 : SQL의 select, insert, update, delete statement에서 사용할 수 있다. stored function을 만들 때, delimiter 라는 키워드를 사용한다. delimiter 는 구분자를 의미하는데, 기본적으로 SQL 에서 사용되는 delimiter는 (;)세미콜론이다. 하지만, stored program의 정의를 서버로 보내기 위해서는 delimiter를 일시적으로 재정의 해주어야만 한다. 이 때, 주의해야 할 점은 DELIMITER를 재정의하고 stored program을 정의한 후에 delimiter를 기존의 세미콜론(;)으로 바꿔주는 것이 좋다. (계속해서..

반응형