본문 바로가기

분류 전체보기

(177)
[1번][연습문제][Lv.1] 2016년 문제 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 나의 답 이거 정말 짜증났던게, 아래 days 배열의 시작 요일을 금요일로 하고, return 할때, days 배열의 인덱스값에 -1을 해줬는데, 프로그래머스에서 채점을 하면 테스트..
[20221118] JavaScript 특성과 자료구조 JavaScript의 특성 자바스크립트는 느슨한 타입(loose typed)의 동적 언어이다. JS에서 변수는 어떤 특정 타입과 연결되지 않으며, 모든 타입의 값으로 할당 (및 재할당) 가능하다. 예를 들면, 상수 변수인 const도 값 자체는 재할당이 불가능하지만, 형변환이 가능하다. const a = 1; console.log(a, typeof a); // 1 number b = "string" + a; console.log(b, typeof b); // string1 string JavaScript의 이러한 특성은 C나 JAVA와 같은 언와는 달리, 변수를 선언할 때부터 타입을 할당하지 않아도 되어 편하다는 장점이 존재한다. 하지만, 변수의 타입이 언어 엔진에 의해 자동 지정되기 때문에, 코드 작성..
[20221117] 1주차 풀스택 미니 프로젝트 회고 오늘은 지난 4일간 진행해오던 풀스택 미니 프로젝트의 배포와 회고 발표를 했다. 솔직히, 팀원들의 에러를 같이 해결하고 깃 브랜치 머지하면서 충돌 나는거 해결하고, 배포까지 하는데 문제가 연쇄적으로 터져서 너무 힘들었다. 식사도 제대로 못하고 계속 에러 잡느라 동분서주 했다. 브랜치를 머지 하기 전에는 분명 제대로 작동하는 html 파일이었는데, 머지 후에 갑자기 html body 부분에 아무것도 안들어와서 너무나 당황했다. 결국, 회고 발표때까지 원인을 찾지 못했다. 발표 이후에 한줄한줄 수작업으로 옮겨붙이고 나니 작동을 했었고, 알고보니 담당자의 IDE에서 주석처리 한 부분이 이상함 문자열로 들어와서 그랬다. 해당 부분을 싹 날리고 나니까 잘 작동했다. (해당 주석처리 문자를 JS 리터럴로 주석처리 ..
[20221116] .env로 민감정보 감추기 (language : python) 오늘 배운 것 dotenv 모듈 .gitignore 풀스택 미니 프로젝트를 진행하면서, mongodb 클라이언트 주소 값을 깃헙 public 레포에 올리면 깃헙에서 위험하다는 알림 메일이 온다. 이를 해결하기 위해 폭풍 검색을 통해 환경변수 설정이라는 개념이 있다는 것을 알게 되었다. 즉, 프로그램을 사용할때, 필요한 환경변수들을 설정할 수 있는 별도의 파일이다. 통칭 닷엔브(dotenv) 파일... 프로젝트 루트 디렉토리에 ".env" 파일을 생성하고, 만약 해당 프로젝트를 깃헙 퍼블릭 레포에 올려야 한다면, ".gitignore" 파일도 함께 생성한다. .env 파일 리터럴 리터럴이랄 것이 없다 사실. .env 파일에는 "key = value" 쌍으로 저장만 하면 된다. # .env 파일 MONGOD..
[20221115] onclick 함수에 매개변수 사용, dynamic routing 오늘 배운 것 & 짧은 소감 오늘은 풀스택 미니프로젝트를 진행하면서 html onclick 함수를 이용할때, 매개변수를 통해 다른 함수 스코프에서 받은 데이터를 넣어 주었다. 이 부분은 항해99를 시작 전 사전스터디에서 진행했던 토이프로젝트에서 해결하지 못했던 같은 문제인데, 기술 매니저님이 매개변수 힌트를 주셨다... 왜 이걸 스스로 생각 못했을까...?ㅠㅠ 계속 유저가 클릭한 html tag의 상세 값을 가져오려고만 했지만, ${this}.attr()을 하면 this는 항상 window를 가리켰다..ㅋㅋㅋㅋ $.ajax({ type: "GET", url: "api/postings", data: {}, success: function (response) { let rows = response["post..
[20221114] 회원가입 및 로그인 - 해시함수와 JWT / REST API 오늘 배운 것 회원가입 및 로그인에 가장 많이 사용되는 해시함수와 JWT 해시함수는 어떤 값을 입력하던 항상 고정된 길이의 임의의 값으로 변환해주는 알고리즘임. 보통 많이 쓰이는 것은 sha256 -> 어떤 값을 넣어도 256바이트의 결과값을 반환해줌 (요즘은 512바이트도 많이 사용한다고 함) 회원가입시, 유저가 입력한 암호 값을 해쉬함수 값으로 변환하여 db에 저장하고, 로그인 할때, 다시 유저가 입력한 암호값을 sha256으로 반환하여 db에 저장된 sh256값과 검증을 하여 로그인 해 줌 Jason Web Token의 약자인 (JWT)는 인증에 필요한 정보를 암호화시킨 토큰을 의미함 JWT에는 header, payload, verify signater 세가지 정보가 들어감 Header : 위 3가..
[연습문제][Lv.1] 정수 내림차순으로 배치하기 문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이상 8000000000 이하인 자연수입니다. 나의 답 이 문제를 풀기 위해 알고리즘 강의에서 배운 selection sort 방법을 사용했다. selection sort 방식은 첫번째 요소에 포인터를 고정시킨 상태에서 다른 포인터를 이동시키며 가장 큰 값을 찾은 후 첫번째 포인터와 위치를 변경해주는 것이다. 즉, 문제에서 요구한것과 같이 가장 큰 순서대로 정렬하는 것이다. 이 후, 배열의 각각의 요소값을 reduce()를 사용하여 문자열로 변환시킨 후 하나씩 더해 주었다. 그리고 r..
[연습문제][Lv.1] 하샤드 수 문제 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 설명 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모든 자릿수의 합은 2입니다. 11은 2로 나누어 떨어지지 않으므로 11는 하샤드 수가 아닙니다. 입출력 예 #4..