<항해99> 1주차 WIL

박건영(Parkgunyoung)·2022년 5월 15일
0

WIL

목록 보기
1/8
post-thumbnail

오늘은 항해99를 시작한지 7일째가 되는 날이다.
정말 한 주 동안 쉼 없이 달려온 것 같다.
문제는 이제 1주차다....
실화....?😭😭😭😭


<누적시간은 103인데 랭킹 시간과 달라서 확인을 해보니 어제(토요일)공부시간이 입력이 안 되어 있다... 버그인가..😱>
🏃‍♂한 주를 되돌아보며🏃‍♂

1.미니프로젝트 기간

첫 미니프로젝트의 기간동안 정말 많은 고생을 했던 것 같다. 웹개발을 하는데 있어 팀으로 첫 협업을 하다보니 시행착오가 많았던 것 같고 많은 경험을 얻게 되었다.


<☝️ 우리팀 와이어프레임>
첫 계획과 달리 프로젝트 진행을 하면서 기능구현이 힘든 부분을 수정하여 삭제를 하기도 하고 디자인도 좀 더 UX를 고려하다 보니 막판에 수정 작업이 들어가기도 하였다.

또한 시작전 계획한 API 설계도 API에 대한 지식이 완전히 머리속에 정립이 되어 있지 않다 보니 프로젝트를 진행하며 수정작업이 있기도 하였다.

API 설계는 약속되어진 값으로 해당 데이터를 저장하고 불러오기 위한 아주아주아주아주x999999 중요한거기 때문에 분업시 시작 전 꼼꼼히 체크하고 설계가 필요하다는 것을 느꼈다....

<JWT 란?>

JWT는 JSON Web Token의 약자로 인증에 필요한 정보들을 암호화 시킨 토큰을 말한다!

토큰 기반 인증 시스템은 세션을 사용한 서버 인증 과 달리 클라가 서버에 접속하면 서버에서 클라에게 인증이 되었다고 토큰을 부여한다.

이 토큰은 유일한 토큰이며 이 토큰을 발급받은 클라는 다시 서버에 요청을 보낼 때 헤더에 토큰 값을 심어서🌳 보낸다.

그럼 서버는 클라한테 받은 토큰을 서버에서 준 토큰과 일치하는지 체크를 하게된다.☑

세션기반 인증은 서버가 파일이나 DB에 세션정보를 가지고 있어야하고 이걸 조회하는 과정이 필요하기에 많은 오버헤드가 발생한다.

JWT는 서버가 토큰을 클라에게 던져주고 나면 이를 따로 저장할 필요가 없다.

JWT는 Header.Payload.Signature 이렇게 .으로 구분하여 세 가지 문자열을 조합하여 사용된다.

<☝️우리조의 작품을 서버에서 오류나게 한 녀석.....>

우리조가 분업한 작업을 모두 병합 후 로컬에서 시험 테스트를 여러번 확인 후 서버에 배포를 하였을 때 서버에 배포는 되었지만 로그인 되지 않는 문제가 발생 되었다...

문제를 해결하기 위해 온 갓 코드를 파헤치고 했지만 결국 찾지 못했고 결국 시간상 해결하지 못한채 제출을 하였다.

근데 먼가 이대로 해결하지 못한채 끝내는게 너무 찜찜해서 Slack 질문방에 도움을 요청하였고 문제는 해결되었다!

문제를 일으킨 녀석은 바로 저 .decode였다
로컬에서 실행 할 때는 .decode를 빼고 실행시키지만 서버에 배포를 할 때는 .decode가 없으면 500번 에러를 발생시킨다...🤬🤬🤬(너란녀석 개복치코드로 임명한다)

이렇게 문제를 해결하였고

첫 미니프로젝트가 성공적으로 서버에서 작동이 되는 걸 보니 그 감정은 정말 소름돋을 정도로 기분이 좋았다! 😍😍😍😍

정말 아무것도 모르고 부족한 팀장 이였지만 친절히 많은 질문들에 답변 해주시고 고생한 우리 D조 2팀 팀원들 너무 감사드립니다.❤️❤️❤️❤️❤️❤️

2.알고리즘 기간

미니프로젝트가 끝나고 알고리즘 기간이 시작되었다!

새로운 팀원을 만나게 되었고 정말 유능한 팀장님과 팀원분들이 있으셨다.

알고리즘 기간동안은 주특기로 선택한 언어를 이용하여 알고리즘 문제를 풀며 해당 언어에 대한 문법과 지식을 익히는 기간이다.

나는 주특기로 Java Spring을 선택하였고 Java를 이용하여 알고리즘 문제를 해결해야 했다...

근데 Java 녀석 너무 어렵다....
강의를 들어도 이해가 안되는데 알고리즘 문제를 풀려하니 수학적이고 창의성이 필요한 문제들에 비해 내 수학지식(수포자...)과 창의성은 턱없이 부족했다. 😰😰😰

한 문제 한 문제 마다 이해하는 시간과 Java 문법에 맞추어 코드를 작성하다보니 문제를 풀어나가는 속도가 너무느리고 뒤쳐지기 시작했다.
(하루에 한 번씩 나는 이 길이 아닌가 라는 생각이 든다....😭)

1번 문제인 별찍기 문제조차 문제풀이를 보고 구글링을 아무리해도 이해가 가지 않아 결국 팀원분들과 전공자이신 팀장님께 질문을 하게 되었고 정말정말 친절히 a-z까지 잘 알려주셨다.(너무너무 감사드린다.🙇x999999)
앞으로도 잘 부탁드립니다....ㅎㅎㅎ

public class Q1별찍기 {
    public static void main(String[] args) {

        int a = 5;
        int b = 3;

        for(int i=0; i<b; i++){
            for(int j=0; j<a; j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

//결과
*****
*****
*****
<이중 for문을 이용한 풀이법을 이해하게 되었고 이 내용은 TIL에 작성해 두었다!>
  • println() 에서 ln은 escape 처럼 현재 값에서 탈출하여 print를 하게 된다!
마지막 하고싶은말 ✍️

포기하고 싶은 날이 많았지만 앞으로 남은 92일 동안 더 열심히 공부하면서 따라가다 보면 성장해 있을 나를 생각하며 정진 해볼까 한다.🔥

profile
쓰러지면어때일어나면그만인걸

0개의 댓글