본문 바로가기

코딩

(157)
42경산 온라인 테스트 합격 후기 작년 이맘때쯤, 42경산 오픈 소식을 접하게 되었다. 비전공자로써 프로그래밍 역량을 강화시킬 방법에 대한 열망이 강했고 언젠간 코딩 부트캠프에 참가해보고 싶었기 때문에 이리저리 찾아봤었지만 검색을 통해 찾을 수 있는 정보는 별로 없었고 올해 중순이 지나서야 42경산의 본격적인 정보들을 얻을 수 있었다. 이제 42경산의 공식 홈페이지는 물론 인스타그램과 유튜브 계정도 생겼고, 설명회도 참석 할 수 있었다. 설명회는 딱히 중요한 내용이 있진 않았고 42경산에 대한 간단한 홍보가 주를 이루었다. 설명회에서 예고한 바와 같이 지난 9월 25일 월요일에 온라인 테스트에 응시할 수 있었다. 온라인 테스트에서는 기억력 테스트와 논리력 테스트를 진행하며 응시 시간은 각각 4분과 2시간이다. 제한시간동안 최대한 많은 문..
NestJS에서 MariaDB에 유저 정보 저장하기 들어가기에 앞서, 본 포스팅에서 사용한 MariaDB는 Docker를 활용해서 구동했습니다. NestJS에서는 TypeORM을 통해 DB와 NestJS를 연동합니다. ORM(Object Relational Mapping)은 이름 그대로 객체와 관계를 매핑해줍니다. 이렇게 매핑을 하게 되면 Nest에서 작성한 코드를 바탕으로 SQL을 생성하여 DB에 적용시켜줍니다. 말로만 하면 이해가 잘 안되니까 직접 해봅시다. npm install --save @nestjs/typeorm typeorm mysql2 @nestjs/config 우선 위 명령어를 입력하여 TypeORM을 설치합니다. DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASS=1111 DB_DATABASE=t..
맥북에서 zsh: command not found: pip 오류 해결하기 맥북에서 아나콘다를 이용해 가상환경을 생성한 후 원하는 라이브러리를 설치하고자 pip 명령어를 사용했는데 아래와 같은 오류가 발생했다. 가만히 생각해보니 zsh를 설치할 때 파이썬 path 설정도 안해줬던 것 같아서 이번엔 python 명령어를 입력해보니 마찬가지로 오류가 발생했다. 문제를 해결하는 방법은 zsh 설정에 python의 path를 추가해주면 된다. 먼저 아래 명령어를 입력해서 python의 위치를 알아내야한다. which python3 그럼 이렇게 python의 경로가 출력된다. 이제 zsh의 설정을 수정하러 갑시다. 아래 명령어를 입력하면 zsh 설정파일을 편집할 수 있다. nano ~/.zshrc 설정파일의 가장 하단에 아래와 같이 경로 설정을 해준다. # python path 부분은 ..
멋쟁이 사자처럼 테킷 백엔드 자바, 수강 후기 이 글은 멋쟁이 사자처럼의 부트캠프 브랜드 테킷에서 자바 스프링 백엔드 스쿨을 수강하였던 후기이다. 먼저 본인은 다른 부트캠프는 수강해본 적이 없으며 다른 업체의 프론트엔드 부트캠프에서 실습 강사로 활동한 경험과 다수의 코딩 특강 경험이 있음을 밝힌다. 1. 수강 환경 줌과 노션, 디스코드를 활용해서 아주 가성비 있게 강의 환경을 구성했다. 실제로 중간중간 줌 음소거 해제로 인헤 수강생들의 음성이 유입되는 경우는 있었으나 강의 운영 환경에 의한 문제가 발생한적은 없었으며 불편함 없이 강의를 수강할 수 있었다. 디스코드를 활용하여 질문에 대한 답변도 거의 실시간으로 달리기 때문에 온라인 환경의 신뢰성에 대해 걱정이 많은 사람들도 큰 염려를 하지 않아도 될 정도의 퀄리티라고 생각한다. 2. 강사의 질 우선 ..
맥에서 github 클론 할 때 remote: support for password authentication was removed on 날짜 오류 발생 해결하기 데스크탑 켜기가 귀찮아서 맥북을 켜고 프로젝트 클론을 했는데 오랜만에 켜서인지 유저 인증이 만료되었다는 오류가 발생했다. remote : support for password authentication was removed on August 13, 2021 아마도 내가 21년 8월 21일에 생성했던 인증 정보가 없어졌나보다ㅎ 이 상태에서 다시 클론을 시도하면 username for 'http://github.com' : 라는 메시지가 뜬다. 이때 깃허브의 로그인 ID를 입력하면 안되고 말그대로 username을 입력해야 하는데 깃허브에서 profile 페이지에 들어가면 브라우저 주소에 위와 같이 github.com/{username} 형태의 주소가 보인다. 위 이미지에서 검게 칠한 부분에 여러분의 use..
리액트 JWT 로그인 및 로그인 유지(유저 인증) 방법 프로젝트가 막바지로 접어들고 있는데 드디어 로그인 및 로그인 유지 기능을 구현했다. 사실 로그인 기능은 개념이 그렇게 어렵지 않다. 1. 회원가입을 통해 서버에 유저 정보를 심어둔다. 2. 로그인을 통해 입력한 유저 정보가 서버에 존재하는지 확인한다. 3. 입력한 유저 정보가 서버에 존재한다면 토큰을 반환한다. 4. 반환받은 토큰을 가지고 인증을 유지한다. 5. 서버에 요청할 때 토큰을 첨부하면 해당 토큰을 이용해 유저를 인증한다. 오늘 게시글에서는 회원가입은 미뤄두고 나머지 기능들을 알아보려고 한다. 우선 로그인 하는 방법은 어렵지 않다. let body = { username: id, password: password }; axios .post("http://localhost:8080/users/lo..
react에서 게시글 생성 실시간 적용하기 현재 진행중인 프로젝트에서 채팅방을 생성한 뒤 지금 생성되어 있는 채팅방 리스트를 확인하는 기능을 구현해야 했다. 나는 아래와 같이 modal창을 이용해서 채팅방을 생성하도록 설정하였기 때문에 채팅방 생성 후 따로 라우팅을 시키지 않는 상태였다. 그래서 채팅방을 생성한 뒤에 별도로 리렌더링해주지 않는 한 아래와 같이 생성된 채팅방을 확인할 수 없었다. 나는 채팅방 정보를 useEffect를 이용해 받아오고 있었기 때문에 아래와 같이 rerender라는 state를 이용해 useEffect가 실행되는 트리거를 만들어 페이지를 리렌더링 해주었다. (참고로 리액트로 만든 SPA는 state가 변경되면 페이지가 리렌더링 된다.) useEffect(() => { axios .get("http://localhost..
리액트에서 반복문으로 게시글 역순 렌더링하기 현재 진행중인 프로젝트에서 리액트에서 반복문으로 게시글을 렌더링하도록 하였는데 게시글을 생성할 경우 최신 게시글이 가장 나중에 렌더링된다. 즉, 오래된 게시글이 가장 상단에 노출되고 있다. 이런 현상이 일어나는 이유는 map함수를 사용해서 배열의 요소들을 불러와 렌더링 할 때 순차적으로 렌더링을 하기 때문이다. 예를 들어 아래와 같이 1, 2, 3이 들어있는 배열을 이용해 렌더링을 한다고 할 때 [1, 2, 3].map((a, b)=>{ return {a} } ) 아래와 같은 순서로 렌더링 된다. 1 2 3 여기서 배열에 새로운 데이터를 추가한다고 하면 아래와 같이 배열이 생성될 것이고 [1, 2, 3, 4].map((a, b)=>{ return {a} } ) 아래와 같은 순서로 렌더링 될 것이다. 1 ..