기존 객체를 변경시키는 것은 sort 이고

정렬된 새로운 객체를 반환하는 것은 sorted 이다.

따라서 sorted 를 사용하는 경우 

    answer = sorted(sorted(strings), key=lambda x : x[n]) 와 같이 사용해야함.

'Python' 카테고리의 다른 글

파이썬 combinations, permutations  (0) 2021.03.19

www.polymath.co.kr/contents/view/1330

 

수학동아 - 폴리매스

청소년 수학 공동연구 프로젝트

www.polymath.co.kr

순열과 조합의 차이를 설명하는 글

소수 찾기 문제에서 필요한 것은 순열이다. 

1, 7 두 문자가 있다고 가정했을 때 조합은 17 과 71 을 같다고 판단하여 하나의 문자만 뽑아낼 수 있지만

순열은 순서를 고려하기 때문에 17 71 을 두 가지의 문자열을 뽑아낼 수 있다. 

itertools.pemutaion 을 사용하면 

array = ['a', 'b', 'c']

print(list(map(''.join, itertools.pemutaions(array)))) # 3개의 원소로 수열 만들기

print(list(map(''.join, itertools, permutations(array,2)))) #2개의 원소로 수열 만들기

'Python' 카테고리의 다른 글

파이썬 sort, sorted 차이  (0) 2021.03.19

postman 으로 test 용 access token을 발급 받을 것이다.

백엔드 단만 구축할 것이기 때문이다.

1. 카카오 디벨로퍼에 앱등록 (redirect uri, domain 등록)

2. 추출된 client key 삽입.

3. response 받음

참고 블로그

alkhwa-113.tistory.com/41

 

인증) OAuth 2.0 - 카카오인증 실습(feat. postMan)

oAuth 2.0의 인증과정을 전 글에서 보았으니 실제로 포스트맨으로 실습을 해보자. 카카오 디벨로퍼 사이트에 가입한다. developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을

alkhwa-113.tistory.com

 

 

'Backend Issue' 카테고리의 다른 글

node-sass error  (0) 2020.10.14
정규표현식 정리  (0) 2020.08.17
nginx node js 설정  (0) 2020.08.09
nginx nodejs mongodb mongoose  (0) 2020.08.09
키 파일 없이 ssh 접속  (0) 2020.08.01

예전에도 구현해 본 경험이 있지만 이번 학교 프로젝트에서도 비슷한 로직을 구현하게 되었다.

저번 프로젝트는 to do 앱을 만드느라 매일 달성 여부를 체크하여 그에 따른 보상을 발급하는 로직을 만들었는데

이번에도 비슷하다. 챌린지를 참여하고 그 챌린지에 매일 참여하였는지, 챌린지 기준에 부합하는지 체크하는 로직을 만들 예정이다. 

다음은 인터넷에서 참조하여 작성했던 쿼리다.

아래 로직은 특정 기간동안 체크하는 것이 아니라 결과값의 연속성만 체크하는 것이었다. 

SELECT EXISTS(SELECT * FROM (SELECT curr.goalNo
, curr.createdAt
, 1 + DATEDIFF(curr.createdAt, MAX(streak.createdAt)) AS consecutive
, curr.isDeleted
FROM GoalCheck curr
LEFT OUTER
JOIN (SELECT *
, CASE
WHEN DATEDIFF(createdAt, prev) = 1 THEN 1
ELSE 0
END AS diff
FROM (SELECT *
, (SELECT MAX(createdAt)
FROM GoalCheck
WHERE goalNo = top.goalNo and GoalCheck.isDeleted = 'N'
AND createdAt < top.createdAt) AS Prev
FROM GoalCheck top
) withPrev
) streak
ON streak.goalNo = curr.goalNo
AND streak.createdAt <= curr.createdAt
AND streak.diff = 0
WHERE curr.isDeleted = 'N' and streak.isDeleted = 'N'
and curr.userId = ? and streak.userId = curr.userId
and curr.goalNo = ? and streak.goalNo = curr.goalNo
GROUP BY curr.goalNo, curr.createdAt
ORDER BY curr.goalNo, curr.createdAt) checkDate
WHERE consecutive = 3 AND DATE_FORMAT(createdAt, '%Y-%m-%d') = CURDATE()
AND isDeleted = 'N'
ORDER BY createdAt limit 1) as exist;

'Mysql' 카테고리의 다른 글

rds 사용기  (0) 2020.04.30

web-admin 을 서버에 올리는 중에 node-sass 에러가 발생하였다. 

결국 node_modules 파일을 통째로 올려서 에러를 해결했다. 

근데 이전에는 노드모듈 파일 없이도 여차저차 해결하긴 했다. 

그때 정리를 제대로 안해놓았더니 똑같은 문제에 봉착했다. 

stackoverflow.com/questions/49679808/error-eacces-permission-denied-mkdir-usr-local-lib-node-modules-node-sass-b

 

Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/node-sass/build'

I am trying to run angular application and execute ng serve command then show Error: Cannot find module 'node-sass'.

stackoverflow.com

디렉토리 퍼미션 문제를 해결해주었다. 

sudo chmod -R 775 /usr/local/lib/node_modules/

sudo chmod -R 775 /내루트디렉토리

sudo npm install --unsafe-perm -g node-sass@4.14.1

로 버전을 맞추어 설치해주었다.

그냥 설치했을 때 버전이 달라서 의존성 에러가 나는듯 했다. 

 

저번 설치와 달리 이번에는 노드 모듈 자체에 node-sass 가 추가되질 않았다

node-sass -v 로 치면 잘 설치되었다고 나오는데..

그래서 결국 노드모듈을 통채로 올린 것이다. ㅠㅠ

 

21.03.03 추가

프로젝트가 끝난 한참 후에야 올린다. 일단.. 내가 서버에 올린 채로 npm install 한 것 자체가 말도 안되는 짓이었다.

프리티어는 감당 못해서 인스턴스는 자꾸 터지고 진짜 멘붕왔었다.

뭔가 치명적인 오류가 있는 걸까? 했는데 npm isntall 자체 부하를 못 견딘 것이었다.

 

결과적으로 나는 서버에 build 파일만 올려주면 됐었다. 일종의 exe, dmg 파일 같은 것이다. 하하

이걸 알았으면 아주 손쉽게 끝났을 문제인데 별에별 삽질을 다했다.

이걸로 얻은 교훈이 있다면

1. 어떤 프로젝트에 참여했다면 기술스택의 최소한의 조사를 하자. 구현에 급급해서 아무거나 건들이는 것 정말 치명적인 프로세스이다. 물론 이러한 방식이 운이 좋으면 생산성을 높여주지만, 그 반대의 경우는 치명적이다.

2. 기존 프레임워크를 잘 사용하고 싶다면 기존의 모듈 version 을 업글하거나 하는 짓은 하지말자. 의존성이 깨져서 동작이 안될 수 있다. 

'Backend Issue' 카테고리의 다른 글

카카오로그인 스프링부트 구현  (0) 2021.03.05
정규표현식 정리  (0) 2020.08.17
nginx node js 설정  (0) 2020.08.09
nginx nodejs mongodb mongoose  (0) 2020.08.09
키 파일 없이 ssh 접속  (0) 2020.08.01

'Backend Issue' 카테고리의 다른 글

카카오로그인 스프링부트 구현  (0) 2021.03.05
node-sass error  (0) 2020.10.14
nginx node js 설정  (0) 2020.08.09
nginx nodejs mongodb mongoose  (0) 2020.08.09
키 파일 없이 ssh 접속  (0) 2020.08.01

https://stackoverflow.com/questions/29370360/nodejs-connect-failed-111-connection-refused-while-connecting-to-upstream

 

NodeJS connect() failed (111: Connection refused) while connecting to upstream

I am running into an issue today where all of a sudden my Elastic Beanstalk app is sending me to a 502 Bad Gateway page. Now I have run into this issue in the past and the reason why this was happe...

stackoverflow.com

 

 

NodeJS connect() failed (111: Connection refused) while connecting to upstream

I am running into an issue today where all of a sudden my Elastic Beanstalk app is sending me to a 502 Bad Gateway page. Now I have run into this issue in the past and the reason why this was happe...

stackoverflow.com

위는 502 bad gateway 해결 참고 링크이다.

코드를 바꾼후 반영이 안돼서 pm2 를 여러번 stop, start 하다보니 문제가 발생했다. 갑자기 잘 접속되던 모든 url 이 에러를 뱉었다. 

구글링을 하다 포트 번호를 바꾸어주니 잘 접속됐다. 원인이 무엇일지 아직 잘 모르겠다. node에 대해서 더 공부해야겠다..

2. nginx 설정 파일 세팅 

https://stackoverflow.com/questions/29370360/nodejs-connect-failed-111-connection-refused-while-connecting-to-upstream

 

NodeJS connect() failed (111: Connection refused) while connecting to upstream

I am running into an issue today where all of a sudden my Elastic Beanstalk app is sending me to a 502 Bad Gateway page. Now I have run into this issue in the past and the reason why this was happe...

stackoverflow.com

위의 답글을 참고하여 설정했다. 

'Backend Issue' 카테고리의 다른 글

node-sass error  (0) 2020.10.14
정규표현식 정리  (0) 2020.08.17
nginx nodejs mongodb mongoose  (0) 2020.08.09
키 파일 없이 ssh 접속  (0) 2020.08.01
비밀번호 암호화  (0) 2020.05.15

'Backend Issue' 카테고리의 다른 글

정규표현식 정리  (0) 2020.08.17
nginx node js 설정  (0) 2020.08.09
키 파일 없이 ssh 접속  (0) 2020.08.01
비밀번호 암호화  (0) 2020.05.15
letsencrypt https 적용  (0) 2020.05.14

https://ithub.tistory.com/215

 

.pem파일 없이 AWS EC2 접속하는 방법

안녕하세요. 오늘은 AWS EC2를 사용할때 .pem파일을 사용하지 않고 접속하는 방법에 대해서 알아보겠습니다. .pem 파일은 잘 관리되어야 합니다. 분실하거나 타인이 취득할 경우 EC2에 접속을 못하게

ithub.tistory.com

위 블로그를 참조 했다.

ami 계정은 처음 사용해보아서 좀 헤맸다. 

우선 내가 설정한 프로세스는 이렇다.

1. ami 계정을 새로 파준다. 그 계정에는 제한된 권한을 부여한다. 보안그룹을 따로 설정할 수 있다.

2. 위 블로그를 참조하여 새로운 사용자에 대한 보안그룹을 그 서브 계정이 설정하여 접속할 수 있도록 한다.

나도 root 계정을 사용하는 것보단 ami 계정을 사용하는게 좋다고 한다. 그러나 루트 권한으로 하는게 쉽고 빠르니까 터미널에서도 루트로 작업한다.. ㅎㅎ 별로 좋지 못한 습관이라는 생각이 들었다. 

'Backend Issue' 카테고리의 다른 글

nginx node js 설정  (0) 2020.08.09
nginx nodejs mongodb mongoose  (0) 2020.08.09
비밀번호 암호화  (0) 2020.05.15
letsencrypt https 적용  (0) 2020.05.14
nginx 가상호스트 설정  (0) 2020.05.10

password varify 함수를 적용해서 비밀번호 암호화를 시도하였다.

문법이나 로직은 오류가 없어 보이는데 해결되지 않았다.

password 필드 값의 길이를 varchar(45) 로 놓아서 암호화된 값이 잘렸던 것이다..!

해시값의 길이를 고려하여 필드의 값을 지정해야 한다는 점을 잊지말자.

'Backend Issue' 카테고리의 다른 글

nginx nodejs mongodb mongoose  (0) 2020.08.09
키 파일 없이 ssh 접속  (0) 2020.08.01
letsencrypt https 적용  (0) 2020.05.14
nginx 가상호스트 설정  (0) 2020.05.10
git 경로 변경하기  (0) 2020.05.01

+ Recent posts