고대하던 항해99를 시작하는 주
큰 기대와 끝났을때 나 자신을 꿈꾸면서 시작했지만
역시 현실은 녹록치 않았다...
미니프로젝트 주제 선정과 새로 익혀야할 jinja, jwt 등등
강의에 나오는 문법과 내용들을 듣고 팀프로젝트를 위해
github를 다루며 서로 맡은바를 이루는 꿈을꾸었었다..
1 일차
주제선정과 와이어프레임, api를 정하고 강의에 일단 집중을 하고
팀의 계획을 담당 매니저님께 피드백을 받아보았는데
보통은 4명이 한팀으로 구성되어 있지만 우리팀의 경우
팀이 짜여지자 마자 한분이 나가게 되어 3명으로 하는데에 비해
프로젝트 볼륨이 너무 큰거같아 인원과 시간상 줄여보는게 어떻겠냐는 말씀에
볼륨을 조금 줄이고 강의들은 것을 기반으로 기능구현위주로 하기로 하였다.
2 일차
점심까지 강의를 보고 오후부터 각자 맡은 로그인기능, 메인페이지, 상세페이지를 시작하기로
하였으나 생각보다 강의내용이 적지않아 3시쯤부터 시작하였다.
사실상 내가맡았던 로그인기능의 경우 강의에 있는것을 주로 참고하였기때문에 금방 끝났었지만
메인페이지에서 시작해서 로그인버튼을 눌렀을때 로그인 페이지로 이동하고,
로그인을 하면 메인페이지에서 로그인이 아닌 로그아웃 버튼이 나오도록 만들었다.
<script>
// 화면 로딩시 실행할 것
$(document).ready(function () {
// 쿠키를 가지고 있지 않으면
if (!document.cookie){
// 로그아웃 버튼 숨기는 클래스 추가
$("#logout").toggleClass("is-hidden")
} else {
// 쿠키가 있을 때, 로그인 버튼 숨기는 클래스 추가
$("#login").toggleClass("is-hidden")
}
})
// 로그인버튼에 들어가는 함수, 로그인 페이지로 이동
function loginBtn(){
window.location.href = "/login"
}
// 로그아웃 버튼에 들어가는 함수
// 클릭시 메인페이지 이동, 토큰지우기
function logoutBtn() {
$.removeCookie('mytoken', {path: '/'});
alert('로그아웃!')
window.location.href = "/"
$("#help-id").toggleClass("is-hidden")
}
</script>
</head>
<body>
<div id="login-box">
<!-- 로그아웃 버튼-->
<a id="logout" onclick="logoutBtn()">로그아웃</a>
<!-- 로그인 버튼-->
<a id="login" onclick="loginBtn()">로그인</a>
</div>
</body>
결국은 토큰기반하여 페이지를 더 만들어 나감으로써 어려움을 많이느껴 쓰지는 못하였지만 아쉽더라도
페이지에서 쿠키 유무를 확인할수 있는 방법을 한가지 찾았다는데에 심심한 위로를 느꼈다..
3 일차
사실 2일차에 다만들고 깃허브로 프로젝트를 합쳐보려 했으나, 아직 팀원들이 완성이 되지않아
github를 다루는데 있어 부족하다보니 잠시 기다릴겸 나중에 합칠때 도움이 될까싶어
관련 강의를 보고 있었는데 어느새 팀원들이 목록을 불러오고 좋아요기능을 만들고 댓글기능을 만드려는데
어렵다고하여 굉장히 난감하였다.. 내일 제출이고 팀프로젝트인데 아무런 말도없이 진행을 했다는말에
조금 당황스럽기도하고 난해하였지만 그래도 팀인만큼 일단 적당히 기능구현만 마무리하고 합쳐보자는말을
수차례했는데도 아무말없이 계속 각자 페이지를 만들고있고 시간은 8시를 향해가버렸다..
결국 로그인 페이지만 덩그러니 남았던나는 다음날이 프로젝트 발표날인데 이대로가면 안되겠다 싶어
나도 만들어 버렸다..
// 사실 이때 팀프로젝트에 있어서 소통과 깃허브 커밋은 과해도 모자라지 않겠다고 생각이 들었다..
// 회의를 자주하고 커밋을 하는데 있어서 서로 돕고 배우는 과정을 못해서 굉장히 아쉬웠다.
4일차
밤을새서 완성했고 그러니 자연스럽게 발표는 누구 페이지로 할거냐는 말에 어이가 없어서 그냥
웃기만하고, 그와중에 프로젝트는 3개 다 제출하는거냐는말에 정말 화도 안났다;;
일단 어디까지 했냐고 해서 만든것을 보여주니 괜찮으면 내껄로 제출과 발표를 해도되겠냐는말에
그러자고 했고 제출할 데모영상을 준비하고 제출버튼만 누르면 되는상황에서 기다리는데 대뜸
자기가 영상편집 할줄아는데를 시작으로 자기껄로 제출을하겠다해서 그냥 그러라고 했다..
결국 팀프로젝트에서 3개의 결과가 나오고 1개만 발표가되어 피드백을 받는데 뭔가.. 기분이 묘했다
그냥 내가 한게아닌 남의것을 보는기분.. 아쉬워서 친구들과 가족들에게 보여주긴 했지만ㅋㅋ
여러모로 굉장히 아쉬웠다. 시작부터 매니저님은 서로 익숙해지는 시간을 갖으면서
간단하게 프로젝트를 완성시키는 경험을 위한것이니 너무 부담갖지 말라고 하셨지만
시작하기 전부터 팀프로젝트를 기대하다보니 아쉬움이 말로 할수 없을만큼이나 컸다.
대신 그럼에도 불구하고 긍정적으로 생각해보자면 얻어가는게 아예 없진 않기에
나자신에게 심심한 위로를 해본다..
// 항해 시작 전 사전프로젝트 같이 진행했던 팀원분이 위로해준게 사실 너무나도 감사했다.
5 일차 - 알고리즘 시작주
본격적인 코딩과 깊어지는 사이를 갖는 시간인거 같다. 난이도가 확올라간 느낌.
사전에 걷기반과 달리기반을 선택하는 시간이 있었는데 뭔가 다 처음이고 쉽지 않았지만
쉬우면 재미없지라는 생각으로 미친적 달리기반을 선택했는데 같이 팀이되신분들을 보니
정말 미친짓이었던 것 같다..주로 코딩테스트를 진행하였는데 이전에 코딩도 안해봤고
코딩테스트도 처음이다 보니 그 유명한 피라미드로 별찍기와 같은것을 해보지않아
일단 제출해야할 과제들과 공부를하고 무작정 피라미드로 별찍기 자료들을 찾아보며
어느정도 익숙해진뒤 걷기반 자료부터 시작하였는데 생각보다 이해하는데 있어서
못풀정도의 수준은 아니었다. (물론 정말 어려웠다 처음엔 이걸 어떻게 적용하고
미리 풀어볼 공간이 있을까 하기도 했다.)
콘솔을 쓰자니 너무 지저분하고 영상들을 찾아보니 VScode에서 콘솔창을 보는방법이
있다고 하여 패키지를 설치하고 연습했다.(VScode - CodeRunner)
// 문자열로 넣어주기 위해 먼저 변수를 선언
let output = ''
for (let i = 0; i < 9; i++){
for (let k = 0; k < 8 - i; k++){
output += ' '
}
for (let j = 0; j < (2 * i + 1); j++){
output += '*'
}
output += '\n'
}
console.log(output)
6 일차 - 걸음마 시작
// 직사각형 별찍기
function stars(a, b){
let stars = ''
for (let i = 0; i < b; i++){
for ( let j = 0; j < a; j++){
stars += '*'
}
stars += '\n'
}
console.log(stars)
}
stars(5,3)
//짝수와 홀수
function solution(num) {
var answer = '';
if(num%2==0){
answer = 'Even'
} else {
answer = 'Odd'
}
return answer;
} // num 값을 2로 나누고 난뒤 나머지가 0이면 짝수,아니면 홀수.
// 가운데 글자 가져오기
// 홀수면 정 가운데 글자, 짝수면 두글자
// 길이값을 구하고 2로 나눴을때 짝수라면 +1
// 홀수라면 그대로
function solution(s) {
var answer = '';
let str = s.length;
if (str % 2 == 0){
answer = s.substring(str/2-1,str/2+1)
} else {
answer = s.charAt(str/2-0.5)
}
return answer;
}
처음 풀었던 3문제.. 주로 다른분들이 풀이하신것을 보면
메소드들을 활용해서 간단한코드로 만들어 풀이 하셨지만
일단 어떤것인지만 알아보기만하고 주로 문제를 이해하고 풀어내는데 집중했다.
문제를 풀기전엔 문제에서 정확히 원하는 답을 파악하고
문제를 어떤순서로 풀어가야할지를 한번 적어봤다.
예를들어 자릿수 더하기 문제같은 경우
자연수 N이 주어졌을때, N의 각 자릿수의 합을 구해서 return 하는 solution함수를 만들어라.
ex) N = 123일때, 1 + 2 + 3 = 6 을 return.
이와같이 설명을 하는데
풀기 직전
아 그러면 변주가 함수에 주어지면 반복문을 돌려 배열에 넣어주고
그배열에 있는 숫자들을 전부 더해준 결과를 출력하게 만들면 되겠구나 !
- 대충 요런식.
사실 메소드와 반복문이 익숙하지 않다보니 생각으로는 이래저래 하면 될거같은데
이것을 코드로 직접 짜보는것은 쉬운일이 아니어서
그동안 만든 얼마 안되는 코드들을 참고해가면서 걷기반 문제에 해당하는것들을 풀고 달리기반 문제를
경험해보았는데 확실히 난이도가 올라간것을 많이 느꼈다.
한주를 마치며..
미니 프로젝트를 진행하면서 새로운 jinja와 jwt토큰방식, 이쁘고 다양할 줄 알았지만 속썩인 bulma,
모달창을 띄우고 상단바를 고정하고 로그인 로그아웃을 쿠키 유무에 따라 is-hidden 하는 등
많은일이 있었고 첫 시작은 많이 어렵고 힘들겠지만 서로 다독여주는 팀원이 있고
어려웠던 문제들도 차츰 익숙해지는 과정을 거치며 성장하는 나름 뿌듯한 한주가 되었다.
이제 그만 코딩테스트 한문제라도 더풀어봐야하므로 이만 줄여야겠다..
(이제 세상 모든걸 분석해서 단계로 만들고있다..;;)
// 너무길어.. 나중에 요약해야지 ㅜ