반응형

전체 글 116

[프로그래머스] 약수의 합_Python

🔒 문제 약수의 합 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. 🔓 풀이 🔑 문제 해결 / 코드 def solution(n): # 방법 1 # 시간복잡도 4n + 3 = O(n) # answer = 0 # 대입연산 1 # for i in range(1, n+1): # 반복문 n + 2 # if n % i == 0: # 조건문 2n # answer += i # 덧..

알고리즘 2022.07.18

[10~14일차] 3번째 기업과제 AWS EC2, Docker 배포 담당하기

[프리 온보딩 일기] 3번째 기업과제가 시작되었다. 게임 회사에서 내준 기업과제인데 이번에는 배포를 담당하게 되었다. 여기서는 서비스 아키텍처를 구성한 이유와 발생한 이슈들에 대해 간단히 기록하고 자세한 배포 과정과 트러블 슈팅은 다른 카테고리에서 기록해야겠다. 🎨 서비스 아키텍처 배포에 사용한 기술 AWS EC2 리눅스 Docker Nginx uWSGI Django(DRF) Mysql redis 아키텍처 설명 배포 서버는 프리티어로 사용 가능한 AWS EC2의 우분투 t2 서버를 사용했다. 그리고 Docker compose를 이용해 4개의 컨테이너를 띄우고 각각 컨테이너 포트를 연결했다. 먼저 클라이언트가 request 요청을 보내면 web server인 nginx에서 받아 service로 데이터를 넘..

[5~9일차] 2번째 기업과제

🎃 과제 story 두번째 기업과제는 페이히어의 과제였다. 간단한 가계부를 만드는 과제에서 모델링과 가계부 API 설계를 담당했다. 가계부 API 설계는 팀원과 공동으로 작업을 했는데 서로의 작업 현황을 파악하고 원활한 코드 리뷰와 의견 공유를 위해 설계할 URL과 메서드를 나열해놓고 하나씩 작업한 후 내용을 공유해서 레포지토리에 push하는 식으로 진행했다. 작은 단위의 서비스를 만드는 과정이었지만 RESTful하게 그리고 확장성을 고려하니 생각보다 고민해야할 부분이 많았다. 🌄 확장성 단순하게 수입, 지출내역의 log만 저장하는게 아닌 사업장별 가계부를 만들고 관계 테이블로 log연결해서 사업장별 가계부 관리가 가능하게 만들었다. 가계부별 로그를 확인할 때 시리얼라이저에서 시작 시점부터 현재 로그까지..

[프로그래머스] 이상한 문자 만들기

🔒 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아..

알고리즘 2022.07.10

API는 뭐고, REST API는 뭘까?

원티드 프리온보딩 과정에서 멘토님이 설명해주신 내용을 정리하고 이해하기 위해 이 글을 포스팅합니다. 명확이 이해하고 알고 있는 내용을 전달하기 위함이 아닌 스스로 개념을 정리하고 이해하고자 쓴 글임을 감안하고 읽어주세요. 조언과 피드백은 감사히 받겠습니다. 🧱 API REST API를 이해하기에 앞서 API에 대해 알아보자. 나에게 api는 약속에 가까운 이미지다. 처음 api를 설계할 때 자주 들었던 말은 클라이언트(프론트 개발자)와 서버(백엔드개발자)간 협의를 통해 정해지는 규칙이라는 말이었다. 백엔드 개발자인 나의 입장에서는 api를 개발할 때 사용할 url, method, 논리적 & 물리적인 이름, permission(허가,권한), request 요청인자, response 정보 등을 사전에 협의하..

코딩/기타 2022.07.02

[4일차] 첫 기업과제 프로젝트를 마치며..

금요일 23시 59분까지 마감이었던 프로젝트가 끝났다. 원티드 첫 프로젝트를 돌아보며 간단히 KPT회고를 해보자. 📌 Keep (현재 만족하고 계속 이어갔으면 하는 부분) 컨벤션 코드, 커밋, PR 컨벤션, 브렌치 전략을 사용한 첫 프로젝트이다. 이전에 간단한 커밋 컨벤션, 코드 컨벤션은 정해놓고 작업한 경험이 있지만 이 정도 규모의 룰을 정하고 그 안에서 작업한 건 색다른 경험이었고 앞으로도 원활한 협업을 위해서는 지켜져야 할 규칙이라고 생각한다. 문서화 우리 팀에 대해서 가장 만족하고 있는 부분이다. 자신의 업무가 끝났다고 손을 놓고 있는게 아니라 ReadMe or Notion의 문서화를 꼼꼼하게 진행해서 시간이 지난 후 다시 이 프로젝트를 돌아봐도 쉽게 구조를 이해하고 코드 리펙토링이 가능하다고 생..

[1~3일차] 5주간 함께할 팀원 그리고 첫 과제

🎈 시작!! 드디어 기다리던 원티드 프리온보딩 백엔드 과정이 시작되었다. 실무 과제를 수행하며 경험을 쌓아 8월에는 취업 문턱을 넘어보자. 🎨 OT 첫 세션에서는 간단하게 OT를 진행했다. 총 36명의 인원이 코스를 진행하게 되었는데 생각보다 적은 인원에 놀랐다. 멘토님을 통해 실무 경험과 주니어 개발자에게 바라는 점 등 현장의 소리를 들을 수 있을 거 같아 기대가 되는 출발이다. 최소한 협업툴, 일정관리는 할 수 있는 주니어 개발자가 되자. 🎭 팀 파이썬 장고를 사용하는 5명의 인원이 모여 팀을 이루게 되었다. 자바와 노드 js인원이 A부터 F까지 6개 팀이고 파이썬 장고가 G, H 2개의 팀이 되었다. 팀원들에 대한 첫인상은 다들 좋았다. 적극적으로 의견을 제시하며 피드백을 수용하고 자료 공유가 활발..

[TIL] 22.06.11

👀 오늘 한 일 django annotate, F, values_list 활용해보기 django 역참조 복습 😄 오늘의 TMI 웬만하면 M2M 필드를 사용하자,, ForeignKey로 관계 테이블을 만들어서 같은 결과를 만들려고 코드를 작성해봤는데 삽질을 엄청 했다. 1번 코드는 ForeignKey를 가지고 직접 M2M 관계를 만든 모델을 사용했고, 2번 코드는 ManyToManyField 필드를 사용한 모델을 사용했다. [1번 코드] # ★★ 역참조 Test ★★ user = UserModel.objects.get(id=1) # result: 오브젝트 # print(dir(user)) dev_languages = user.userprofile.userprofiledevlanguage_set.all() ..

TIL & WIL 2022.06.11

[Python] Mutable, Immutable한 자료구조에 대해 공부해보자

📚 파이썬의 Mutable, Immutable 📒 Mutable Mutable Definition Mutable is when something is changeable or has the ability to change. In Python, ‘mutable’ is the ability of objects to change their values. These are often the objects that store a collection of data. Mutable은 무언가가 변경 가능하거나 변경할 수 있는 경우입니다. Python에서 '변경 가능'은 객체가 값을 변경할 수 있는 능력입니다. 이들은 종종 데이터 컬렉션을 저장하는 개체입니다. 📑 Mutable 객체 목록 list dictionary s..

코딩/Python 2022.06.09

[TIL] 22.06.06

👀 오늘 한 일 프로그래머스 알고리즘 풀기 python lv 1 📚 오늘 배운 것 isdigit() : 문자열이 숫자인지 아닌지 판별하는 함수 a = "123" b = "a123" print(a.isdigit()) print(b.isdigit()) 😄 오늘의 TMI [두 정수 사이의 합] https://programmers.co.kr/learn/courses/30/lessons/12912 def solution(a, b): answer = 0 for i in range(min(a,b),max(a,b)+1): answer += i return answer [문자열 내 마음대로 정렬하기] https://programmers.co.kr/learn/courses/30/lessons/12915 def soluti..

TIL & WIL 2022.06.06
반응형