본문 바로가기

전체 글

(51)
[C++] stack의 top과 pop의 차이 프로그래머스에서 알고리즘을 풀던중...스택을 사용해서 dfs를 구현했다. 아래 코드에서 요 부분이 오류가 발생했다.// 오류가 발생한 부분tuple tp = st.pop();tie(index, sum) = tp;// 변경해서 해결한 부분tuple tp = st.top();tie(index, sum) = tp;st.pop(); pop()을 사용해 빼낸 튜플로는 초기화가 안 되더라...근데 top()은 된다...파이썬을 쓸 때는 pop()을 사용해서 스택에서 제거함과 동시에 그 element를 반환받았다. https://cplusplus.com/reference/stack/stack/pop/  ⬅︎ 이 사이트를 보면 c++에서는 top은 알고 있던 것처럼 스택의 맨 위의 값을 반환하는 것이지만pop은 스택에..
API란? API는 Application Programming Interface의 약자로 애플리케이션은 고유한 기능을 가진 모든 소프트웨어를 나타낸다.인터페이스는 두 애플리케이션 간의 서비스 계약으로 요청과 응답을 사용하여 서로 통신하는 방법을 정의한다. 즉, API는 서버-클라이언트 혹은 서버-서버나 클라이언트-클라이언트 간의 소통 방법(어떤 프로토콜이 어떤 기능을 하고, 어떤 정보를 주고 받을 지)을 정의해놓은 인터페이스라고 할 수 있다.    API의 종류 - Partner APISOAP API : 단순 객체 프로토콜을 사용. XML을 사용하며 과거에 많이 사용되었으나 유연성이 떨어짐.RPC API : 원격 프로시저 호출. 클라이언트가 서버에서 함수 등을 완료하면 서버가 출력을 다시 전송.Websocket A..
나만무 : Sleighers 프로젝트 소개 및 정리 프로젝트 소개한 게임에 최대 5인이 참여할 수 있는 레이싱 게임직접 제작한 설산 맵에서 썰매 라이딩을 즐길 수 있습니다 작업 인원 : 서버 2인, 클라이언트 3인서버 : Node.js (TCP, WebSocket)     서버 개발을 맡았습니다클라이언트 : Unity빌드&배포 : GitHub Actions, AWS Codedeploy, EC2 등 아래 파일을 통해 플레이 가능합니다! 구글 로그인을 추천드립니다.     프로젝트 정리  서버 설계인게임/아웃게임으로 나누어 서버를 설계했습니다.인게임 서버는 보다 속도가 중요하기 때문에 TCP 프로토콜을 사용해 구축했으며,아웃게임 서버는 event 기반으로 간단히 구축하기 위해 WebSocket을 사용했습니다.    구현 기능 - OutGame 서버로그인 / ..
4주 간의 트러블 슈팅 모음 프로젝트를 진행하는 4주 동안 팀 노션 페이지에 팀원과 매일 작성한 트러블슈팅 + 개발 과정을 블로그에 옮겨 작성했습니다.다만, 노션에서 사용했던 코드블럭이 더 가독성이 좋은 것 같아 캡쳐한 이미지를 옮기는 방식으로 작성합니다.+ 모바일은 보기 불편하실 수 있습니다 ㅠㅠ   목차1주차 4.28 - 5.22주차 5.3 - 5.93주차 5.10 - 5.164주차 5.17 - 5.24   1주차  4.28 - 5.2  4.28   4.29   4.30byte[] → json 으로 패킷 형식 변경으로 대공사 진행Packet.js 로 class를 이용해 패킷 형식을 관리, json을 사용하기 용이하도록 변경  5.1   5.2 2주차 5.3 - 5.9   5.3   5.4 >> 이 방법은 발생한 에러를 해결하긴 ..
[GitHub Actions + EC2] 두 branch에서 서로 다른 서버 배포하기 작성하려는 내용이 제목으로 한 줄 요약하기가 힘드네욥   CD 과정git workflow를 통해 actions 실행빌드-배포에 필요한 파일을 zip으로 생성, S3에 적재S3에 있는 zip을 이용해 codeDeploy 실행 - appspec.yml으로 codeDeploy 동작after-deploy.sh로 파일 install 이후 해야하는 작업 명시아주 정확하진 않지만 내가 이해한 CD 과정.    기존 상황게임 서버를 InGame/OutGame으로 나누어 구현을 진행InGame 서버 구현을 먼저 끝냈고, main 브랜치에 push가 되면 github actions + codeDeploy + ec2를 통해 배포 자동화   추가하려는 것OutGame 개발 시작, InGame 서버와 하나의 repository..
[EC2 + RDS] EC2 터미널에서 node.js 서버 실행하기 EC2 서버와 RDS DB 연결하기 OutGameServer에 DB를 연결해 로그인 등을 구현하려고 한다. RDS 인스턴스는 생성했는데 로컬에서 개발할 수가 없었다.EC2는 public / RDS는 private 인스턴스로 생성했다. -> 보안 상의 이유단순히 EC2 터미널에 접속해서 mysql 서버를 여는 건 성공했다.mysql -u [계정] -p -h [DB엔드포인트] → 이 명령어 쓰면 연결됨인스턴스에 문제가 있는 것은 아니니...방법을 찾아야 했다.   문제 발생우리는 로컬에서 작업을 해야함. 이런 과정을 거침.1차 해결 : vs code에서 ssh 연결로 vs code에서 제공하는 UI로 테이블 작성 등이 가능해짐.    문제 발생const connection = mysql.createConn..
[Spring+React] Session으로 사용자 정보 관리하기 로그인 후 사용자 정보를 다른 페이지까지 유지해야 할 때, JWT, Cookie, Session 등의 방법이 있으며, 이번 포스팅에서는 Session에 대해 다루려고 한다. 저번 포스팅에서 UserContext를 이용해서 사용자 정보를 유지하는 방법에 대해 작성했다. UserProvider로 update한 변수가 한 페이지 이동은 연동이 되는데, 새로고침을 하거나 또 다른 페이지로 이동하면 변수가 초기화되었다... 다른 방법을 찾던 중 Session을 인증을 간단하게 하면 빠르게 구현 가능하다고 정글러분께서 추천해주셔서 세션으로 구현을 시작했다. 세션 인증 과정을 간단하게 설명하자면 아래와 같다. (F)로그인 요청 -> (B)가입 여부 확인 후, 세션 setting -> (F)SessionStorage ..
[React] 동기와 비동기 / async와 await 동기/비동기 기준이 헷갈려서 고생했다. axios.get()으로 데이터를 받아오고, 이 데이터를 기반으로 html 요소를 생성하는 중인데 동기식으로 처리하기 위해 async&await을 사용함에도 계속 변수에 null값 밖에 들어가지 않는 상태였다... 기존 코드는 아래와 같다. const getAllPost = async () => { const res = await axios.get('/main'); items = res.data; } useEffect(() => { getAllPost(); }, []); console.log(items); (items ? keys = Object.keys(items) : console.log("items is null")) 분명 위에서 기다리라고 했는데! 계속 아래..