일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 문자열 중복
- sql like연산자
- ubuntu타임존
- 코딩 어?
- 우분투 시간 변경
- @Moditying @Query
- 중첩배열평탄화
- 중복 문자열
- 스프링 데이타 JPA
- 깃 토큰 만료
- ...점점점문법
- js 문자열을 문자배열로
- 문자열순서바꾸기
- 중첩배열
- 객체의키값만 찾기
- sql 문자열 패턴 검색
- 5.3.8 Modifying Queries
- 객체의 밸류값만 찾기
- 중복단어제거
- 시퀄 문법
- indexOf()
- lastIndexOf()
- 배엘에서 스왑
- 제로베이스
- 단어 제거
- 재귀스왑
- 레디스 확인
- 중복문자제거
- 중복된 단어
- 프론트엔드 스쿨
- Today
- Total
목록전체 글 (245)
코딩기록
1. 객체안에 객체 넣는 방법은 생각보다 쉽다. user.point = point; user- 객체 point- 키 = point - 값 2. socketIo에서 같은방 안에 사람들에게만 쳇을 보낼때는 //game방 채팅 socket.on("chat", (chat) => { const data = {name:socket.nickname, chat}; gameRoom.to(thisgameNum).emit("chat", data); }); gameRoom -> 내가 네임스페이스를 설정하면서 정한 변수명을 적어야한다. 네임스페이스/game 을 따로 정하지 않았다면 connect이벤트의 인자인 socket을 적어 socket.to(thisgameNum).emit("chat", data); 코드를 만든다. con..
코딩 표기법 : 명명법 1. 카멜 케이스 표기법 (camelCase) 첫 문자는 소문자로 표기하고 그 이후에 연결되는 문자들의 첫자는 대문자로 표기. camelCase androidStudio 2. 케밥 케이스 표기법 (kebab-case) 모든 문자의 첫 자는 소문자로 표기하고 문자들 사이는 -(하이픈)로 연결. kebab-case android-studio 3. 스네이크 케이스 표기법 (snake_case) 모든 문자의 첫 자는 소문자로 표기하고 문자들 사이는 _(언더바)로 연결 snake_case android_studio 4. 파스칼 케이스 표기법 (PascalCase) 모든 문자의 첫 자를 대문자로 표기. PascalCase AndroidStudio

답안 스택 자료구조 문제 count = int(input()) # 스택 리스트 안의 총 개수 list = [] #스택 리스트 for i in range(count): # for in range로 count 만큼의 수를 만듬 num = int(input()) if num == 0: # num이 0이면 pop으로 삭제 list.pop() else: list.append(num) # 0이 아니면 append (push) print(sum(list)) #sum함수를 이용해 모든 수를 더한다 입력 값이 0이면 pop, 아니면 push하고 리트스 총합을 구한다. 리스트를 생성하고 for문을 돌려 입력을 받는다. 입력받은 숫자가 0이라면 pop으로 삭제하고 아니라면 리스트에 추가한다. 마지막으로 sum을 이용해 모두..

베르트랑 공준 자연수 n에 대해 n < x < 2n 을 만족하는 소수 x의 수를 구하는 문제. 파이썬으로 소수를 찾는 효율적인 방법. 에라토스테네스의 체 에라토스테네스의 체 : 범위에서 합성수를 지우는 방식으로 소수를 찾는 방법. 1. 1은 제거 2. 지워지지 않은 수 중 제일 작은 2를 소수로 채택하고, 나머지 2의 배수를 모두 지운다. 3. 지워지지 않은 수 중 제일 작은 3을 소수로 채택하고, 나머지 3의 배수를 모두 지운다. 4. 지워지지 않은 수 중 제일 작은 5를 소수로 채택하고, 나머지 5의 배수를 모두 지운다. 5. 지워지지 않은 수 중 제일 작은 7를 소수로 채택하고, 나머지 7의 배수를 모두 지운다. (반복) 에라토스테네스의 체를 파이썬 코드로 표현하면 다음과 같다. def prime_..
이번 프로젝트의 중점은 socket.io이다. 소켓으로 채팅 연습을 하고 이게 실시간 사용자 정보 띄우기, 접속자 수 등 다른 예제를 찾아보고 소켓을 다양하게 사용한다. 전 기수들의 프로젝트를 보며 코드를 분석해 봐야겠다. 오늘의 할 일 1. 소켓 사용한 프로젝트 분석 2. 백엔드 API 파트 나누기 뭐가 어려운지 쉬운지 할 수 있을지 어쩔지 전혀 감이 오지 않아서 복불복으로 파트를 정했다. 어쩜 이러는지 저번에도 메인 걸리더니 이번에도 오목 게임 구현이 걸렸다. 결국 다 같이 할거 같긴 한데 내가 감당할 수 있는 파트였으면 좋겠다는 바람이 큰 거였나 보다. 서버 지킴이를 이번에 하고 로그인이랑 회원가입을 해볼까 싶었는데 괜히 걱정돼서 그냥 복불복에 맡겼더니 이렇게 됐다. 계속 다른 프로젝트를 찾아서 코..

API상세부터 어려워서 헤매고 알고리즘 문제 풀듯이 노드 8명 다 같이 api 구현을 위해 머리를 맞대던 클론 프로젝트였다. 같이 시작해도 배움의 속도가 다르다는 걸 많이 알게 되었고 api 기능 구현 시에는 좀 더 api 상세를 분석하고 인지된 상태여야 코드 작성이 수월하다는 걸 경험으로 익힌 주간이었다. 아, 그리고 중요한 것! 듣는 사람이 이해가게 설명하는 것이 협업의 전부라는 것도 경험을 통해 알게 되었다. 프로젝트 유툽영상 https://www.youtube.com/watch?v=IyRvRpz98kQ 항해 5기 클론 갤러리 https://hanghae99.spartacodingclub.kr/exhibitions/clone/5/A 백엔드 깃헙 주소 https://github.com/WhatTheC..
어제의 아이디어를 기반으로 API 상세와 와이어프레임을 작성하는 날이다. 어떻게 작성될지 감도 안 와서 조금은 걱정이다. 오늘의 할 일 1. API 작성하기 1차 작성을 하고 와이어프레임 회의 후 2차 작성을 하는 중에 소켓에 대해 알고 나면 API가 변경될 거 같아서 소켓을 추가로 공부한 뒤 마무리하기로 했다. 우선 회의 때 프론트와 백이 서로 의견이 조율이 되고 이해가 된다는 게 참 감사하다. 2. 와이어프레임 만들기 대략적으로 만들고 오후에 디자이너 2분이 합류해서 구체적으로 작성이 되었다. 한 분은 확실이 일을 하시는 분이셔서 그런지 굉장히 짧은 시간 안에 본인의 아이디어를 추가로 적고 설명을 곁들여 정리가 더 빨리 끝났다. 두 시간이면 굉장히 알차게 회의를 했다고 생각한다. 중간에 내가 물어본 ..

1. 먼저는 몽고 디비 공식홈피로 가서 내 컴퓨터 설정에 맞는 database-tool을 다운로드한다 Download MongoDB Command Line Database Tools | MongoDB 2. 경로를 선택할 때 내 컴퓨터에 mongo.exe가 있는 폴더에 같이 넣어야 한다. 3. 아래처럼 파일에 필요한 database-tool들이 설치된다. /(안되면 복사 붙여 넣기 하셔도 됩니다) 분명 가이드엔 mongoDB 설치 시에 같이 설치된다고 했지만 아무리 찾아봐도 없다! 찾아보니 버전마다 다르지만, 최근 버전에는 포함되어있지 않아서 별도로 다운로드를 해야 했다. Database-tool을 다운로드하면 mongoimport는 물론이고, bsondump, mongodump, mongoexport 등..
이번 주에 실전 프로젝트 들어가기 전 미니 프로젝트를 마무리했고 클론 코딩을 시작했다. api설계는 역시 어렵고 어렵다. 프론트와 백이 서로 같은 걸 다른 단어로 표현으로 하니 같은 말인 듯 다른 말인 듯 굉장히 헷갈린다. 배운 것 / 느낀 것 / 내게 아쉬웠던 것 배운 것 프로젝트는 협업 즉, 소통과 배려가 우선이고 그 다음이 실력이다. 느낀 것 소통이라는 건 결국 상대방의 입장에서 생각하고 말하는 지혜이다. 서로 다른 수준의 사람들이 모여서 하나의 무언가를 하려면 각자의 수준을 파악하고 제일 못하는 사람 기준으로 해야지 모든 인원이 끝까지 갈 수 있다. 진짜 어렵다. 그리고 오해가 생기고 쌓이지 않게 솔직하게 말하는 것이 중요하다. 어떤 파트 담당의 독단적인 생각과 행보는 팀을 위한 것이었다 해도 우..
이제 수면은 포기다. 어제를 기준으로 5,6시간만 자는 날들이 시작된것 같다. 수면시간은 둘째 치고 프론트랑 백이랑 합치는데 나는 오류들이 문제다 왜 그런 오류가 나는지 알기 어렵다. 또 하나 확인하려면 서버 켜는 백인원, 프론트 연결해서 데이터 입력하는 프론트인원 백 코드 작성자 최소 2,3은 있어야 한다. multer를 이용해서 파일 업로드 코드를 짜야하는데 같이 보는 중이라서 당장 만들기가 어렵다. 오늘의 할일 1. 백,프론트 배포후 테스트 현재 프론트와 같이 기능 확인 중 인데 게시글 생성, 삭제는 가능하다 다행이다 2. multer 파일업로드 기능 구현 중간에 댓글 갯수 구현하느라 또 미뤄졌다. 내일 꼭 해야지 오늘의 스케줄 09:10 - 기상 11:00 - CS스터디 02-16 05:10 - ..

Thunder client에서 jwt토큰을 입력해 게시글 생성,수정,삭제등 본인 확인(authMiddleware)이 필요한 작업을 했다. 혼자서 로그인하는 게시판을 만들때는 프로트에서 값을 입력받아 게시판 생성,수정,삭제 등을 했기때문에 Thunder client를 자주 사용하지 않았다. 프론트 없이 jwt토큰이 입력 됐다 치고 게시판 생성, 수정, 삭제 하는 방법이 생각보다 오래 걸려 다음번에는 좀 더 시간을 절약 하고자 기록한다. 폴더구조 middlewares 폴더 auth-middleware.js const jwt = require('jsonwebtoken'); const User = require('../schemas/user'); module.exports = (req, res, next) =>..
어제 저녁에 백엔드 머지를 끝내려고 했는데 생성부터 막혔다. 오늘 가장 먼저 할일이 바로 머지다. 오늘의 할일 1. 백엔드 머지 끝내기 머지를 다하고 authMiddleware를 연결하고 데이터를 확인 해야 하는데 thunder client에서 token을 입력해야했다. 처음엔 Thunder client로 jwt토큰 입력하는 방법을 몰라서 지난 프로젝트에서 파일을 가져와서 프론트를 연결해야 하나 고민했는데 연결하는것도 일이라서 Thunder client로 api 데이터를 확인하는 방법을 하기로 하고 검색하던 중 2,3시간 씨름한 끝에 찾았다. 그리고 블로거에 정리했다. 2. 파일업로드 api 21:32분 multer로 파일 업로드를 한다는걸 알고 검색하던중 ftp, ftps, sftp, multer, m..

SOP(Same Origin Policy) 다른 출처의 리소스를 사용하는 것에 제한하는 보안 방식 URL의 Protocol, Host, Port를 통해 같은 출처인지 다른 출처인지 판단한다. CORS가 나온 이유 SOP 보안 정책에 따르면 다른 origin에는 접근이 불가능하다. 하지만, frontend와 backend의 상호작용을 위해서는 다른 orgin에 접근해야할 필요가 있다. 이를 해결하는 답이 바로 CORS(Cross-Origin Resource Sharing)이다. CORS(Cross-Origin Resource Sharing) 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다. 웹..
어제 각자 맡은 백api를 깃으로 commit 하려고 했는데 이래저래 시간이 흘러 결국 각자의 파일만 공유하고 각자 합해서 기능 추가 구현 해보는 것으로 이야기가 끝났다. 오늘 좀 쉬고 WIL작성하고 나니 벌써 밤이다. 그래도 CORS 문제 해결까지는 WIL에 추가하고 api를 합쳐봐야 겠다. 오늘의 할일 1. WIL 작성 2. 블로그 정리 3. api 합치기 오늘의 스케줄 10:30 - 기상 15:30 - 공부 시작 오늘 배운 것 cors는 백과 프론트를 합치기 위해 꼭 알아야 하는 개념이다. 프론트의 요청을 백에서 처리 하기 위해 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제이다. 만약 cors를 사용하지 않으면 해킹에 취약해지고 서버의 정보가 노출되거나 변경되는 위험이 있다. CORS ..

아날로그 처리 방법 아날로그 아날로그는 외부적인 원인에 의해 연속적으로 변하는 것들을 '연속된 물리량'으로 나타내는 방법이다. 아날로그 신호(Analog Signal)라 하면, 연속적인 값(아날로그 데이터)들이 전기적 신호로 변환된 형태를 의미한다. 예시) 더보기 디지털 아날로그와 반대되는 말으로, 자료를 연속적인 실수가 아닌, 특정한 최소 단위를 갖는 이산적(離散的)인 수치를 이용하여 처리하는 방법을 말한다. 연속적이지 않고, 뚝뚝 끊어져 있다는 말이다. 예시) 더보기 디지털을 아날로그로 변환 DA 변환기(digital-to-analog converter, D/A, DAC) 디지털을 아날로그로 바꾸는 변환기 이며 DA 변환기(DAC)는 전압을 만들어 낸다. DAC를 사용해 아날로그 파형을 만들 수 있다..

깃 코드올리기 먼저 하기!! > Node.js기초반강의 4-5 (10:40-gitignore) 에 깃설치, 로컬, 레파지토리, 커밋등 기본개념 설명 노드 터미널에서 .gitignore 파일 먼저 만들기!! node_modules 라는 파일은 변경사항으로 취급하지 않음 절대 배포하면 안되는 파일!! .gitignore node_modules 깃헙 repository 만들기 new repository 클릭 create a new repository → repository name 적고 public 선택, initialize this repository with: 아래 체크박스는 아무것도 체크하지 않는다. 만들고 나면 레파지토리페이지로 자동으로 이동됨 Quick setup - ~~ 에서 HTTPS 선택 후 주..

index.spec.js 에 테스트 코드 메시지를 주고 index.js에 메소드를 작성해 테스트 코드 메시지가 통과되게 하는 게 이번 주차 과제이다. 코드자체가 이해가 안되서 계속 js기초 강의를 봤었다. class, constructor, 상속 등을 봤는데 보다보니 얼추, 알것도 같다 주어진 코드 index.spec.js 더보기 // const { Site, Board, Article, Comment } = require('.'); const { Site } = require('.'); describe('Site 요구사항 테스트', () => { test('Site는 n개 이상 생성 할 수 있다.', () => { expect(() => { //new가 붙으면 객체 생성자(constructor) 함수 ..