전체 글 18

[java] 람다식

[ 람다식(Lambda Expression) 이란? ] 람다식(Lambda Expression)이란 함수를 하나의 식(expression)으로 표현한 것이다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수(Anonymous Function)의 한 종류라고 볼 수 있습니다. 람다식은 자바 버전 8부터 추가된 기능입니다. 람다식은 함수형 프로그래밍을 자바에서 구현하기 위해서 추가된 기능입니다. 람다식을 알기 전에 "함수형 프로그래밍이 무엇인가?"에 대해서 아는 것이 좋을 것 같으니 함수형 프로그래밍에 대한 링크는 밑의 링크 참조 바랍니다. 함수형 프로그래밍 - https://nut-alrnond.tistory.com/m/12 함수형 프로그래밍 선언형 프로그래밍 vs 함수형..

1년 간의 내돈내산 데스크 셋업

선은 없게! 안되면 안보이게! 색은 최대한 적은 갯수로! 공간은 넓게! 지금의 저의 데스크 셋업의 방향성 입니다 ㅎㅎ 불과 1년전만 해도 책상을 깨끗하게 쓰는 것, 책상을 꾸미는 것에 크게 관심이 없었어요ㅠㅠ. 처음으로 관심을 갖게 된 것은 모니터암을 사용 하는 사람들의 모습을 보고 21넌 생일날 모니터 암을 구입했어요. 처음으로 구매하는 모니터암이라 입문용으로 쓰기 좋다고 하는 모니터암으로 구매했어요. 밑의 사진이 모니터암을 설치한 이전의 책상의 모습이에요. 지금 보니 책상 정말 더럽게 썼네요 ㅠㅠ 그나마도 모니터암을 써서 공간이 어느정도 생긴거라니ㅠㅠㅠ 이 당시에 사용하던 모니터중에 하나가 10년이 넘은 27인치 티비 겸용 모니터였어서 요즘 32인치 모니터 뺨치는 무게를 갖고 있었어요ㅠㅠ 그래서 모니..

취미 2022.02.03

함수형 프로그래밍

선언형 프로그래밍 vs 함수형 프로그래밍 프로그래밍은 방식은 크게 명령형 프로그래밍, 선언형 프로그래밍으로 구분된다. - 명령형 프로그래밍(≒절차적 프로그래밍): 프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명하는 프로그래밍 패러다임의 일종이다. ("어떤" 동작을 할 것인지) ex) c, c++ -> 객체 지향 프로그래밍: 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. ex) java, c++ - 선언형 프로그래밍: 프로그램이 어떤 방법으로 해야 하는지를 나타내기보다 무엇과 같은지를 설명하는 경우에 "선언형"이라고 한다. ("무엇"이 계산될 것인지) -> 함수형 프로그래밍: 자료..

개발 인생/CS 2022.01.31

[백준]좌표 압축(18870) 파이썬

https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 해당 문제를 풀이하는데 가장 먼저 든 생각은 중복제거, 정렬, 인덱스 구하기 였다. 두가지의 기능은 모두 파이썬의 내장함수 set(), sorted(), index()의 내장함수로 구현이 되어있다. 그래서 처음에 구현한 방법은 아래와 같았다. number = int(input()) question = list(map(int, input().spli..

[nginx] bad gateway 502

장고 서버를 oracle cloud free tier에서 naver cloud platform 서버로 새로 옮기는 과정에서 문제가 생겼다. python manage.py runsslserver 0.0.0.0:8000 으로 실행하였을 땐 웹페이지가 정상적으로 나왔으나 nginx와 uwsgi xxx.ini 설정파일을 이용하여 서버를 구동했을 때 bad gateway 502가 나왔다. http 블럭 내의 타임아웃과 버퍼를 증가시켜보기도 하고 인증파일을 새로 해보고 site-available/default 파일 내부에 443 default server 부분의 주석도 지워보았지만 증상이 동일하였다. 결과만 말하면 문제는 nginx의 실행 user 설정의 문제였다. nginx.conf 파일의 첫번째 줄에 www-d..

개발 인생/CS 2021.09.04

[django] choice_set란

장고 튜토리얼을 공부 진행중이었다. 이전까지는 각 모듈, 클래스, 메소드를 이용해서 질의로 값을 주고 받는 db 형식임을 알 수 있었다. 그러나 진행 도중 choice_set이라는 것이 등장했다. 테이블도 아니고 하나의 쿼리 셋도 아니고 이게 뭔가 싶었다. q.choice_set.create(choice='Not much', votes=0) 나와 같은 문제를 본 사람이 존재하였다. 번역에 따르면 당신은 Choice에 관한 Foreign Key(secondary key)를 만들어 각각의 Choice를 하나의 Question에 관계시켰다. 따라서, 각각의 Choice는 명시적으로 (모델에서 당신이 선언한) 하나의 Question 필드를 가지고 있다. Django의 ORM은 Question에서 역방향으로 관계..

[프로그래머스] 해시-위장, 정렬-k번째 수

위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clo..

itertools

문제 풀이를 하다보면 조합, 순열 등의 반복되는 연산을 하는 경우가 많다. 파이썬에는 조합과 순열의 기능이 라이브러리로 구현이 되어있다. itertools라는 라이브러리에 정리가 되어있다. permutations: 순열 combinations: 조합 product: 중복 허용 순열 combinations_with_replacement: 중복 허용 조합 모두 리스트와 같은 iterable 객체에서 r개의 데이터를 뽑아 순서를 고려하여(or 고려하지 않고) 중복을 허용하여(or 허용하지 않고) 나열하는 모든 경우를 계산한다. 데이터 목록과 뽑을 데이터의 개수를 인자로 넘겨준다 모두 클래스이므로 객체 초기화 이후에는 리스트 자료형으로 변환하여 사용한다. (까먹기 좋을 듯 하다.) 소스코드 from iterto..