29일 한일

- 자소서

  • 포트폴리오 작성 시작, 어떻게 쓸지 방향성은 정함

- 트램 및 브라이언 방문

  • + 한나와도 같이 자리를 함

29일 느낀점

  • 포트폴리오 작업은 안 하고 Spring Security에 대해 좀 더 공부를 해보려다가 이전까지 공부 한 내용을 정리하는 차원에서 간단한 형태에 포트폴리오를 작성하기 시작했는데 일정 부분 작성 한 다음 포비한테 피드백을 받은 다음 대대적인 수정을 하기로 마음먹었다. 역시 내가 편한 대로 내 스타일대로 작성을 한번 해 봐야겠다.

  • 현재 코드스쿼드 수강생 및 트램, 브라이언에 한나와도 간단히 식사 겸 술자리를 가지게 됐는데 평소같이 생활하면서 대화를 별로 못 해본 한나와도 많은 대화를 할 수도 있었고 트램도 오랜만에 만나서 좋은 자리였던 것 같다.(일단 브라이언은 매주 토요일 공부하면서 만나니….)

    대신 저녁에 작업하려고 했던 부분들을 못하게 됐는데 중요한 건 놀았다는 사실이 아닌 공부를 했냐 아니냐니까 논만큼 일정 부분에 대해서는 작업을 진행해 봐야겠다.(공부를 하려는 건 아니지만)

30일 한일

- 자소서

 - 포트폴리오 재작성 시작, 어떻게 쓸지 방향성은 정말 정함 

- 포비와의 상담 

 - 취업에 대한 방향성, 고민들을 정리하는 시간을 가짐  

- 원티드 recruiting carnival 참석  

30일 느낀점

  • 포트폴리오 작성이 생각보다 쉽지 않은것 같다. 그래도 이번엔 어떻게 쓸지는 확실히 결정했는데 생각보다 싶게 써지진 않는다.  

  • recruiting carnival 약간은 기대했는데 생각 했던 것 보다 더 경력직 위주의 행사였던것 같아 얻어가는건 후드티(?!)밖엔 없는것 같다. 현이 봤던 타로점 내용은 정말 어마무시….


31일 한일

- 자소서

  • 포트폴리오 작성이 쉽지 않은 것 같다. 자소서 같은 경우는 내 생각을 그대로 적으면 되는데 포트폴리오 같은 경우는 했던 경험을 쓰다보니 너무 나열식으로 보기 안좋은 글만 나온다… 

- 스프링 QnA 시간

  • AOP에 대한 대략적인 내용들과 Bean에 대해 몰랐던 사실과 까먹었던 사실들을 다시 알게 됨

  • 그외 POJO 등 몇가지 사실에 대해 알게 되었다.

31일 느낀점

  • 으악 최근 자소서, 포트폴리오 작업만 너무 길어지고 있다. 잘 작성 되느라 그런거면 문제가 없는데 잘 쓰고 있지도 않는데 늘어지고 있다. 자소서도 그렇고 제대로(?) 작성 하는 건 처음이라 잘 안되는 것 같다.

  • 2월에 할 것들을 생각 해보니까 생각보다 코딩을 할 시간이 적을 수도 있을 것 같다. 음 좀 더 하고 싶은데 잘 좀 생각 해 봐야겠다.


2월 01일 한일

- 호눅스의 Http, 네트워크, AWS VPC 기초 강의

  • OSI 7계층, TCP/IP 4계층

  • Http의 이해 및 쿠키, 세션을 이용하는 방법

  • CIDR의 기초

  • AWS VPC(Amazon Virtual Private Cloud) 이론 및 실습

- 자소서 일부 수정

2월 01일 느낀점

  • 오늘 호눅스의 강의 덕분에 네트워크의 기초적인 내용들을 복습 하고 CIDR, VPC, VPN에 대해서는 대략적으로 알아 갈 수 있는 좋은 시간이였다. VPC에 대한 이론을 듣고 아밍과 함께 실습을 진행 했다. 이론 상으로 어느정도는 이해 했다고 생각 했지만 역시나 일부 실수를 했다. 덕분에 public subnet, private subnet을 설정 할때 라우팅 테이블을 추가 하는 점에서 무엇을 주의 해야 할지 알 수 있었다. 역시 실수를 해봐야 더 기억에 남는다.

  • 사실 포트폴리오를 작성 하는 것에 대해 너무 욕심을 내고 있느라 진행이 더딘 것 같다. 일단 욕심을 버려야 겠다. 이것도 빠르게 만들고 리팩토링 한다고 생각 하자.


2월 02일 한일

- 기초 공부

  • 프로세스와 쓰레드, 포스팅

  • 인프런의 알고리즘강의 Hash, 포스팅

  • 겸사겸사 Risc, Cisc와 폰노이만 구조, 하버드 구조도 다시 한번 훑어 봄

2월 02일 느낀점

  • 사실 이전까지는 HashSet, HashMap에서 Hash가 무엇일지 생각을 안 하고 사용했다. 왜 그랬는지는 모르겠지만… 정확히는 고민조차 안 해봤다. 그래서 기초를 다지는 공부 시작으로 Hash로 시작을 했다. 아직 강의는 한 개 남은데 다 보면 책과 인터넷 자료들을 보면서 추가적으로 학습을 해봐야겠다.

  • 사실 CS 분야를 공부할 때 나름 재미를 느껴서 CS 공부를 어렵게 느끼진 않는 편이다.(이해가 잘 된다는 건 아니다) 암기를 하겠다는 생각으로 보고 있지 않아서 그런 점도 있겠지만(솔직히 반쯤 독서하듯이 읽고 있다) 대신 어떤 내용들이 있었는지는 알겠는데 쉽게 설명은 못하겠다. 여튼 어릴 때 외계인이 나왔던 “멀티 프로세스 ~~” 요런 광고에서 말했던 멀티 프로세스가 무엇인지, 아무 생각 없이 사용했던 프로그램들이 어떻게 여러 일들을 처리해줬는지 등등 얼핏 들었던 얘기가 무엇인지 알게 되는 재미가 있는 것 같다.
    (전자제품을 사용하는 걸 좋아하는데 그 못지 않게 고장 난 제품을 분해하는 것도 좋아한다)

  • 오늘 코드스쿼드 내의 여러 도서들을 참고서 삼아 봤는데 생각해 보면 신정 때 “OS? Oh Yes!”를 본 이후 “http 완벽 가이드” 내용을 일부 찾아 본 것 말고 책을 읽은 건 없는 것 같다. 특히 최근 들어서 집에 와서 인터넷 자료만 찾고 책을 보는 경우가 없다. 지금 봐야겠다 싶은 책들을 골라서 좀 봐야겠다.


2월 03일 한일

- 기초 공부

  • 쓰레드에 대해 자료를 좀더 보다가 발견한 데몬 쓰레드 조사(당장 중요한 개념은 아닌것 같지만 궁금해져서 찾아 봄) - 포스팅

  • 인프런의 알고리즘강의 Hash(3), 포스팅

- 블로그의 디자인 수정

  • AllPost 페이지
  • 내비게이션도 일부 수정 할 계획(동준 님한테 받은 조언을 활용해야겠다)

2월 03일 느낀점

  • 점심에 공부하러 가는 길에 생각 났는데 호눅스 강의때 http가 왜 나왔냐는 질문, 생각 해면 http에서 “p” 즉, 프로토콜이 무엇인지만 알면 되는 상식적인 질문이였다. 정말 기초적인 개념인 “프로토콜을 왜 만들었나?” 이걸 간과하고 있었던 것 같다.

  • 이전까지 Hash에 대해서 너무 아무 생각 없이 썼던 것 같다. 생각보다 재밌는 개념인 것 같다. 인덱스 값으 통해 접근하는 배열과 달리 키와 해시 함수를 이용해 접근 한다는 점에서 말이다. 같은 해시 값을 가지는 경우 발생 하는 충돌, 이 부분에서 생각 할 꺼리가 많은 것 같다.

  • 쓰레드에 대해 자료를 좀 더 보다가 우연히 발견한 데몬 쓰레드, 일단 당장 중요한 개념은 아니지만 급 궁금해져서 잠시 찾아봤다. gc도 그렇고 자동 저장도 데몬 쓰레드를 통해 구현한다는 점에서(모두 그런진 모른다) 재미난 녀석을 알게 된 것 같다.


2월 04일 한일

- 기초 공부

  • 자바의 컬렉션 공부

2월 04일 느낀점

  • ArrayList과 HashSet, HashMap을 제외하고 컬렉션의 다른 클래스들은 많이 사용 안 해서 잘 모르는 상태라 이번에 Hash를 공부하고서 해당 내용들을 공부했다. 사실 알고리즘 문제를 풀다 LinkedList나 큐로 해결하면 좋을 문제가 나와도 직접 구현을 해서 풀었는데 오늘 컬렉션을 공부하고 나니까 왜 그랬나 싶다. 안정성이나 성능 및 문제 푸는 시간 확보에서도 컬렉션을 사용하는 게 더 효율적이었을 텐데 말이다. 앞으로 컬렉션을 많이 활용해야겠다.

24일 한일

- 자소서

  • 개발자로서 지향하는 바에 대한 소개 항목 작성

- TIL 작성 방식 변경

24일 느낀점

  • 생각보다 쉽지 않은 것 같다. 특히 조심하지 않으면 단순 나열식으로 글을 작성 하게 된다.

  • 트렐로도 구현을 하려고 했는데 아무래도 자소서가 신경 쓰여서 작업을 하진 못했다. 코딩을 안하고 자소서만 쓰니까 심심한 기분이 든다.

  • TIL이 하루 단위로 파일이 생기니까 너무 방대해지는 느낌이다. 개선 방법을 고민 하다가 코드스쿼드 내의 다른분(아밍)의 일지를 보다가 한주 단위의 파일을 만들고 매일 내용을 추가하는 방식이 좋은 것 같아 적용 해보기로 했다.


25일 한일

- 자소서

  • 개발자의 길을 선택하게 된 이유 작성 중

- 호눅스의 쉘 스크립트 및 자동 배포 강의

  • 일반적으로 .bash_profile이 있으면 .profile의 내용은 수행 되지 않는다.

  • 가능하면 .bashrc에 필요한 것들을 넣어 놓는다.

  • 일단 간단히 실습용 코드로 좋은 코드는 아니다(killall이라던지…)

    #!/bin/bash
    cd java-trello
    git fetch
    
    local=$(git rev-parse master)
    remote=$(git rev-parse origin/master)
    
    if [ $local != $remote ]; then
            echo "aaa"
            git rebase origin/master
            echo "eee"
            killall java
            ./gradlew clean build
            cd build/libs
            java -jar java-trello-1.0.0.jar &
    fi
    

    커밋 아이디를 비교 하여 리모트 브런치 상의 변경이 있는지 비교하여 새로 빌드 할지 여부를 판단 한다.

25일 느낀점

  • 자소서 작성이 쉽지가 않다.

  • 너무 춥다.


26일 한일

- 자소서

  • 자기소개 내용 완성 : 보완 및 경우에 따라 다른 항목 추가

  • 자기소개 양식 제작 중

26일 느낌점

  • 자소서가 어느 정도 진행이 돼서 다른 사람들한테 피드백을 받고 있는데 확실히 혼자 볼 때는 느끼지 못했던 문제점들을 알게 되었다. 게다가 스스로도 글을 쓰는 부분에서 자주 반복하는 어구라든지, 약한 부분들을 알고 있는데 의식을 하고 있어도 쉽게 극복되진 않는 것 같다. 으 글을 잘 쓰고 싶다. 특히 소설을 읽다 보면 작가들 각자 본인만의 문체를 가지고 있는데 나도 나만의 문체를 형성하고 싶은 욕심이 든다.(안 좋은 버릇이 많은 문체 말고) 언제 한번 내가 생각하는 내 글에서 고치고 싶은 부분들을 점검해봐야겠다.

27일 한일

- 자소서

  • 자기소개 양식 제작 중 : 전체적인 틀은 완성, 폰트 및 세부 사항 변경 중

  • 자기소개 내용 추가 : 백엔드, 프론트 등 기술에 대한 내용 추가 중

- 테스트 코드

  • 테스트 코드 관련 생각 해 볼 발견

27일 느낌점

  • 자소서 작성을 진행하다 난관에 봉착했다. 구글 독스를 이용해서 작업하고 있었는데 제한된 기능으로 인해 양식이 예쁘게 안 만들어지고 있다. 게다가 우분투에서는 딱히 좋은 툴이 보이지 않는다.(LibreOffice도 잠깐 사용해보니 익숙하지 않아서 그런 건지 좋아 보이진 않는다…) 윈도우가 설치되어 있는 집에 있는 옛날 노트북으로 작업을 이어 나가야 될 것 같다.

  • 테스트 코드를 작성하다 보면 어떻게 작성할지 고민될 때가 있는데 아직은 그런 경우에 어떻게 할지 고민을 한다. 테스트 코드, 나아가 TDD 방식으로 개발하는 것이 좋다고 생각하지만 아직은 TDD에 대한 스스로의 철학은 부족하다. 지속적으로 경험을 쌓고 다양한 글들을 보면서 나만의 철학을 완성해 나가자.


28일 한일

- 자소서

  • 자소서 내용 다듬는 중, 항목 하나를 추가 할까 고민중

  • 프로젝트 내용 추가 계획

- 테스트 코드

  • 테스트 코드 관련 글
  • 통합, 인수 테스트에 대해서는 아직 감이 안 잡힌다. 아직은 간단한(?) 프로젝트들만 하다 보니 통합/인수 테스트의 구분이 안되는 걸까 싶기도 하고 요구/기능 명세를 보게 되면 알게 될까 싶기도 하다. 차후에 경험이 쌓여가면서 알게 되긴 하겠지만 아직은 계속 찝찝한 느낌이다.

- 블로그

  • 프로필 사진 추가
  • 백그라운드 배경 추가
  • 프로필 페이지 수정(미완성, 기존 영어 페이지만 없앰)

28일 느낌점

  • 요번 주는 자소서만 쓰고 있는 것 같다. 오늘 어느 정도는 완성돼서 내용들을 가다듬고 있는 중인데 테스트 코드 없이 리팩토링을 하는 기분이다. 계속 고치고는 있는데 테스트 코드가 없으니 빨간 불인지 초록 불인지 알 수가 없다. 자소서에도 테스트 코드가 있다면 좋을 텐데…. 그래도 이전 취업 자소서를 썼을 때 보다 확실하게 제대로 자기소개서란 것을 작성하고 있는 느낌이 든다.

  • 자소서를 적다 보니 진행하고 싶은 OAuth를 못 해 보고 있다. 조금씩 진행하면 되겠지만 아무래도 제대로 집중하지 못하고 어영부영 진행이 되거나 도리어 자소서가 뒷전이 될 것 같아서 보류하고 있다. 일단 빠르면 내일이나 화요일쯤 다시 시작할 수 있을 것 같다.

  • 아무래도 요즘 코딩을 못하고 있어 차선책으로 자소서에 집중이 안 될 때 인터넷으로 보고 싶은 글들을 찾아 보고 있다. 그러다 보게 된 것이 위의 테스트 관련 글인데 테스트에 대해 고민하던 부분들을 일부 해소할 수 있는 좋은 글이었다. 그래서 블로그 내 여러 글들을 보다가 어디서 뵌 분 같아 확인해보니 develove 2017에서 뵌(대화는 못했지만..) 분이었다. 당시엔 몰랐지만 대단하신 분들을 많이 뵀었던 것 같은데 의미 있는 대화는 못해 본 것 같아 아쉽다.

    만약 지금 다시 보고 얘기를 할 기회가 생겨도 질문 위주의 대화만 할 것 같은데 몇몇 분들의 블로그를 보다 보면 댓글로 단순한 질문이 아닌 각자 자신들의 의견을 주고받으며 생각의 넓이와 깊이를 키워 나가는 모습이 부럽다. 나도 차차 나만의 개발 철학들을 쌓아서 내 의견을 얘기하며 부족한 부분들이 있다면 채워나갈 수 있는 대화를 할 수 있다면 좋겠다.

오늘 한일

- Spring Security

  • 로그인 실패시 302가 아닌 403 상태 코드 발생하게 변경

  • 테스트 코드 리팩토링

  • Basic authentication 사용하게 변경

    @Override
      protected void configure(HttpSecurity http) throws Exception {
      http.httpBasic();
    }
    

    그에 따라 테스트 코드도 변경

    import static io.restassured.RestAssured.given;
    
    @Test
    public void showBaord() {
      given()
        .auth()
        .preemptive()
        .basic("hue@korea.kr","password")
      .when()
        .get("/api/boards")
      .then()
        .statusCode(HttpStatus.OK.value());
    }
    

- 자소서


오늘 느낀점

  • 포비한테 궁금한 부분들을 물어보면서 진행을 해서 그런지 오늘은 수월하게 작업이 진행됐다. 일단 Spring Security를 적용하면서 기존과는 다른 형태로 인증을 하게 되면서 테스트 코드를 변경해야 했는데 아직 Spring Security에 대한 이해가 부족하다 보니 많이 헤맸다.

    정확히는 Security를 통해 기능들은 제대로 구현되는 상태에서 기존의 AcceptanceTest 코드들이 빨간불이 켜진 상태였다. 정상적이라면 Security를 적용했다고 빨간불이 많이 켜질 일은 없어야 하지만 학습을 하는 단계라 기존에 일반적이지 않은 부분을 일반적(?)인 Spring Security로 변경을 하면서 인증 과정 자체가 많이 바뀌고 그에 따라 변경되는 부분들이 많았다.

    결론만 얘기하자면 테스트 코드를 은근 슬쩍 지우거나 어영부영 수정하고 넘어갈까 싶었지만,(솔직히 지금의 테스트 코드들도 부족한데 그것까지 바꾸면 스스로 TDD를 지향한다고 말하기 창피했다) 기존의 테스트 코드의 의도는 그대로 놔두는 상태서 요청 부분 혹은 기본적인 Security의 설정을 내가 원하는 응답이 오게 바꿔가면서 테스트 코드들에 대해 모두 초록불을 킬 수 있었다.

    덕분에 Security의 내부까지 제대로 학습됐다고 하진 못해도 일정 부분 사용법에 대해서 숙지 한 기분이다.

  • 자소서 주제는 정했는데 생각 보다 도입부가 잘 안 써진다. 도입부가 별로면 글을 읽는 사람 입장에서도 그냥 지나칠 가능성도 크고, 일단 내 스스로도 다음 내용이 안 써진다. 초안 정도까지만 후딱 작업하고 싶은데 여차하면 내일 낮에 카페 가서 작성하고 와야겠다.


내일 할일

  • trello 구현하기

    • 젠킨스 혹은 OAuth
  • 자소서 작성

오늘 한일

- Spring Security

  • @LoginUser로 로그인 한 유저의 정보를 받아 오던 것들 수정.

- 자소서


오늘 느낀점

  • 오늘 몸 컨디션이 안 좋아 점심때 잠시 숙면을 취하고 난 다음 작업을 시작했다. Security 적용에 의해 테스트 코드들에 변경이 생겼는데 해결이 안 됐다. 생각 나는 아이디어가 있긴 한데 단순히 어려워서라기보단 오늘은 집중이 덜 됐다. 이유야 자소서인데 그래도 어제오늘 채용 공고가 올라온 회사들을 보니 어떤 회사, 직군에 지원하고 싶은지 생각이 뚜렷해진 느낌이다.

    이삼일은 제대로 집중을 못 할 수도 있을 것 같은데, 현재 진행 중인 Security 부분과 자소서 사이에 균형을 잘 잡도록 정신 바짝 차려야겠다.


내일 할일

  • trello 구현하기

    • 테스트 코드 리팩토링
  • 자소서 작성

오늘 한일

- Spring Security

  • 기존에 만든 로그인, 회원 가입에 Spring Security 적용

    • 기존의 member를 Spring Security의 User클래스를 상속한 클래스의 필드로 만듬
      public class SecurityMember extends User{
           private Member member;  
      
         public SecurityMember(Member member) {
           //email로 로그인  
           super(member.getEmail(), member.getPassword(), makeGrantedAuthority(member.getRoles()));
           this.member = member;
         }
      
    • UserDetailsservice 구현체

      @Service("securityMemberService")
      public class SecurityMemberService implements UserDetailsService{
      
      	@Resource(name="memberRepository")
      	private MemberRepository memberRepository;
      
      	@Override
      	public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
      
          .....
      
      		return new SecurityMember(member);
      	}
      
      
    • custom UserDetailsService 등록

      public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception{
        auth.userDetailsService(securityMemberService).passwordEncoder(passwordEncoder());
      }
      
    • Authentication authentication를 통해 로그인 한 사용자를 받아옴

      @GetMapping("/myboards")
      public String board(Authentication authentication, Model model) {
        model.addAttribute("boards", memberService.getBoardsByEmail(authentication.getName()));
        return "/boards";
      }
      

- 채용 중인 회사 찾아보기


오늘 느낀점

  • 역시 구현 해둔 코드들에 Spring Security를 적용하여 리팩토링 하려고하니까 쉽지 않았다. 그래서 새로 레파지토리를 만들어서 학습한 내용대로 구현을 하고서 성공 하는 것을 본다음 기존 프로젝트에 적용을 해봤다.

    이미 사용 하고 있던 Interceptors나 기존의 로그인 페이지는 AJAX로 데이터를 주고 받다보니 Security와는 조금 다른 부분이 있어 헤매긴 했지만 적용 완료 됐다. 조금씩 고쳐야 할 부분들도 있지만 가장 중요한 건 @LoginUser로 로그인 안된 사람이 접근 불가능 하던 부분과 테스트 코드들을 고쳐야 겠다.


내일 할일

  • trello 구현하기

    • 기존의 @LoginUser 제거, 테스트 코드 수정, Spring Security에 대한 리팩토링
  • 자소서 작성