전체 글

전체 글

    [ Python ] 유용한 라이브러리 정리

    itertools 반복되는 형태의 데이터 처리에 유용 특히 순열과 조합 라이브러리가 유용함. 순열 서로 다른 n개에서 서로 다른 r개를 뽑아 순서대로 나열 from itertools import permutations data = ['A', 'B', 'C'] result = list(permutations(data, 3)) print(result) #[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), # ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')] 중복 순열 from itertools import product data = ['A', 'B', 'C'] result = list(product(data, repeat=2)..

    [ Study ] 코드 리뷰를 하는 이유가 무엇일까?

    이번 스터디를 진행하면서 처음으로 코드 리뷰라는 것을 경험할 수 있었다. 학부시절에 내가 가지고 있던 마인드는 다음과 같았다. 내가 한게 잘 동작하고 있고, 각자 자기가 맡은 부분에 대해서 잘 알고 있으면 되는 거 아닌가? 그리고 리뷰를 한다고해서 얻는 이점은 무엇이 있을까? 하면 좋은건 알겠는데.. 어떤 방식으로 진행하는지 알 수 있는 방법은?? 하지만 이는 너무나도 잘못된 생각이라는 것을 첫 인턴생활을 하면서 금세 알아버렸다. 각자 맡은 업무를 하느라 팀 동료의 코드를 보는 활동이 일절 없었으며 이러한 활동 자체를 하질 않았다. 해봤자 매주 오전에 모여 각자 본인이 차주에 진행했던 업무에 대한 내용과 이번 주의 계획에 관해 얘기를 하는 것이 끝이었다. 결국 다른 동료가 작성한 부분에 대해서 궁금증이 ..

    [ NestJS ] CSR, SSR MVC 패턴에 대해서 알아보자

    들어가면서 .. 프로그래밍을 하다보면 한 번 쯤은 MVC 패턴에 대하여 들어보거나 접해보았을 것이다. 더 나아가 MVVM, MVP 등등 다양한 것이 존재한다고 하는데 가장 기본이되는 MVC에 대해서 알아보려고 한다. 그리고 CSR과 SSR에 대해 정리를 해보려고 한다. 많은 회사들이 다양한 디자인 패턴에 대한 이해를 필요로 하여 나도 나름대로 정리하면 좋겠다 해서 정리를 해보려고 한다. CSR과 SSR? 우선 MVC에 알아보기 전에 간략하게 Client Side Rendering과 Server Side Rendering에 대해서 알아보자. SSR : Server측에서 html 파일을 렌더링하여 브라우저에게 전송 CSR : Client측에서 html 파일을 렌더링하여 브라우저에게 전송 즉, 쉽게 말해서 브..

    [ Study ] 실무와 가까워지는 백엔드 개발 스터디.세션_#2

    이번 포스팅은 두 번째 세션에 대한 내용을 복기하면서 어떤 내용이 담겼는지 정리해보려고 포스팅을 하려고 한다! 이번에는 실제로 api를 구현해보는 시간을 가졌었다. 보통 서버에게 HTTP 요청을 보내면 하는 일은 아래 3단계와 같다. 받은 데이터에 대한 Validation 데이터 추가 / 조회 / 변경 / 삭제 결과 반환 한 줄로, 올바른 데이터가 왔는지 확인한 후 그 데이터에 대한 CURD 연산을 수행한 뒤 응답을 반환한다. 만약 올바른 데이터가 들어오지 않았다면 바로 결과를 반환해준다. Next.js Routing 이전에 Next 프로젝트의 라우팅 처리 방식에 대해서 알아보려고 한다. 우선 이전 시간에 살짝 언급했었는데 페이지 개념을 기반으로 한 파일 시스템 기반 라우터가 존재한다. 이게 무슨 말이냐..

    [ Study ] 실무와 가까워지는 백엔드 개발 스터디.세션_#1

    이번에 프로그래머스에서 스터디를 참여하게 되었다! https://programmers.co.kr/learn/courses/13562#introduction [스터디/4기] 실무와 가까워지는 Node.js 백엔드 개발(feat.TypeScript) ⏰아쉽지만 4기는 마감되었습니다. 이번 기수 일정이 맞지 않다면 오픈 알림 신청하고 최저가에 수강하세요! 오픈 알림 신청 🚨스터디 참여 비용 전액 지원 받자! 임팩트캠퍼스 지원 조건(미취 programmers.co.kr 위의 스터디 4기로 참여하게 되었다. 프로그래머스를 자주 드나들던 나는, 당시 위의 모집글을 우연히 보게 되었고 스터디 비용을 전액 지원받을 수 있는 임팩트 캠퍼스 지원 조건을 살펴보던 중 본인 소득 기준, 기준 중위 소득 130% 이하인 청년에..

    [ NestJS ] Interceptor와 AOP 패턴에 대해서 알아보자

    이번 포스팅에서는 Nest에서 Interceptor에 대해서 알아보려고 한다. 그전에 AOP와도 연관이 있으니 먼저 AOP 패턴에 대해서 알아보려고 한다. 왜냐하면 Nest에서 Intercepto가 AOP(Aspect-oriented programming)에서 영감을 받았기 때문이다. AOP(Aspect-oriented programming) 란? 우리말로 관점(측면) 지향 프로그래밍이라고 한다. 목적으로는 모듈성을 높이는 것을 목표로 하는 프로그래밍 패러다임이다. 여기서 말하는 관점은 교차 관심사 혹은 수평적 관심사라고 하는데 말이 너무 어렵다. 아래의 그림을 보면서 추가적인 설명을 해보려고 한다. 위의 그림을 보면 핵심기능 3가지가 있고 이 핵심 기능이 애플리케이션의 각각의 컨트롤러라고 생각해보자. ..

    [ 회고록 ] IPP 일학습 병행 자격을 마치며..

    이번 포스팅은 내가 참여했던 일학습 병행 과정이 마무리되어 정리를 해보려고 한다. 2021년 3월부터 2022년 2월까지 1년간의 과정이었다. 이 1년동안의 내가 경험했던 것들과 배웠던 것 그리고 느꼈던 것들을 한번 회고해 보려고 한다. 회고록의 양식은 엄청 많은데 그중에서 이번 회고에 가장 잘 어울리는 5F라는 방법을 한번 이용해 보려고 한다. 내가 참고한 회고록에 대한 내용은 인프런 커뮤니티에 있는 글이며 좋은 글이어서 한번 읽어보는 것을 추천한다. https://www.inflearn.com/pages/weekly-inflearn-41-20220215 [주간 인프런 #41] 개발자의 공유 문화 이모저모 (2) 회고 문화 - 인프런 | 스토리 기록도 점검도 셀프! 개발자는 왜 회고를 할까요? #오픈소..

    [ NestJS ] 파이프 디자인 패턴에 대해서 알아보자

    이번 포스팅에서는 지난번에 간략하게 파이프 패턴에 대해서 알아보았었는데 좀 더 자세하게 알아보려고 한다. 우선 NestJS에서 정의하고 있는 파이프에 대해한 내용은 다음과 같다. 파이프의 정의? NestJS에서의 파이프는 클라이언트 요청에서 들어오는 데이터를 유효성 검사 및 변환을 수행하여 서버가 원하는 데이터를 얻을 수 있도록 도와주는 역할을 합니다. 그렇다면 여기서 드는 의문점이 있다. 바로 파이프라는 이름에 대한 의문점이다. 아니, 클라이언트의 요청에 대한 데이터를 유효성 검사와 변환을 하기 위한 것인데.. Data Transform 또는 Data Validation이라고 이름을 짓지 않은 이유가 뭘까?? 우선, 왜 이름이 파이프인지 생각하기 이전에 상상을 해보자. 클라이언트의 요청이 데이터와 함께..

    [ C++ ] 프로그래머스 Level 2: H-Index

    안녕하세요? 수구리입니다. 이번 포스팅은 H-Index에 대한 문제입니다. 아래에 문제 링크입니다. [ 문제 ] 코딩테스트 연습 Level 2: H-Index https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr H-Index란 ? H-Index는 과학자의 생산성과 영향력을 나타내는 지표이다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 한다. H-Index 계산방법 ..

    [ C++ ] 프로그래머스 Level2: 다음 큰 숫자

    안녕하세요? 수구리입니다. 이번 문제는 프로그래머스의 Level 2 문제를 풀어보려고 합니다. Level 2이지만 단순 구현 문제라서 어렵지는 않았습니다. 아래는 문제를 링크해두도록 하겠습니다. [ 문제 ] https://programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr [ 풀이 ] #include #include #include using namespace std; int countOne(s..