20201029-TIL

나영원·2020년 10월 29일
1

T.I.L.

목록 보기
66/145

오늘 공부할 내용

  • HTML 수업준비
  • DB 수업준비
  • 수업 복습
  • 모의 면접 준비
  • TiL 정리 및 블로그 업데이트

오늘 공부한 것 & 배운 내용

  • 출근시간 공부

    • 인성 면접 준비 영상

      • 스프링 강의가 끝나고 어떤 강의를 들을까 고민하다가 이 시간 활용해서 취업과 관련된 정보들을 얻는게 도움이 되지 않을까 싶어서 어제 보던 면접중비 영상을 보기시작했다
    • 좋은 유튜버를 찾아서 잘정리되어있는 내용들을 접할 수 있어서 한동안은 쭉 따라가면서 정리하면될 것같다

      • 면접준비와 자기소개서는 동시에 준비되어야하고 자기소개서의 내용과 면접에 내용이 서로 연관되는 것이 맞다

      • 면접에 나올만한 질문들을 정리해서 써보고 그것을 간추려 자기소개서로 만들어보고 또 그것을 바탕으로 다시 면접을 준비하면 더좋은

      • 면접과 자기소개서에 핵심은 경험으로 직무와 유사한 경험 -> 성공사레 -> 거기서 얻은 인사이트 순으로 정리가되면 베스트이다

      • 지금 내가 쌓을 수 있는 경험어떤게 있고 내가 가진 경험중에 어울릴만한게 어떤게 있는지 생각해봐야될 문제인 것 같다

      • 면접 때 나올 수밖에 없는 핵심 질문들과 그와 유사한 질문들에 대해서는 미리 정리해두는게 맞는 것 같다.

      • 그리고 그 결과를 계속 수정해서 발전시켜놓는다면 더 빠른 취업에 도움이 될 것 같다

        • 지금은 일반적인 면접에 대해서 알아보고 있지만 좀더 개발자 취업에 관련된 자료를 찾아보는것도 좋은 방향인 것 같다
  • 준비시간

    • 채용공고 읽기
      • 로켓펀치에서 java개발자로 분류하여 채용공고를 읽었다
      • 용어정리
        • RPA : Robotic Process Automation Software로 구현된 사무직을 위한 Robot
        • 마이크로서비스 :
        • 기술 부채 : 기술적으로 해결되어야 할 문제들을 뒤로 미루고, 비지니스 문제를 해결하는 시점을 당기는 것
          • 설계된 것을 문서로 남기지 않는다
          • 유닛 테스트를 작성하지 않는다
          • 더 이상 사용되지 않는 DB의 항목을 지우지 않는다
          • 반복 되는 일(배포/빌드 등)을 자동화하지 않는다
          • 긴급하게 스펙을 변경한다
        • DBMS : Data Base Management System
        • REST API :Representational State Transfer API
      • 느낀점
        • 용어를 정리하며 이런 기술들이 내가 필요한 기술들이구나 알게되었고 더욱 관심가지고 공부해나가야 겠다고 생각이 든다.
        • 또한 공부 뿐만아니라 아침에 배운 것처럼 해당 기술 스택에 관한 경험들을 만들어서 면접때 사용해야겠다는 목표가 생긴다
          • 이런 부분들 때문에 개발공부와 채용에 대한 공부가 병렬적으로 진행되는게 맞는 방향인 것 같다
          • 그리고 그렇게 준비하도록 도와주는 학원에 와있는 것도 좋은 선택을 한 것 같다. 최대한 잘따라가면서 또 스스로할 수 있는 부분들이 어떤게 있는지 찾아보면 지금 시기에 할 수 있는 최선을 다할 수 있는 것 같다
  • 아침 공부시간

    • HTML & CSS day2 수업

      • 수업 정리

        • 전체적으로 부분분에 진행이 디자인 -> 구조설게(그림그리기) -> 마크업 -> css순으로 이어지는 과정들이 반복되어 보여주시는게 프론트엔드의 개발방향을 이해할 수 있어서 도움이 된다

          • 개발하기 쉽고 생각 안하면서 개발할 수 도 있지만 이렇게 논리적으로 구조를 생각하며 개발 할 수 있는 더 나은 방법을 배울 수 있었다
          • 이런 개념들 설명하시다가 기술 부채라는 용어를 사용하셨는데 아침에 채용공고에서 찾아봤던 단어여서 반가웠다 -> 굿!
        • main

          • 어제 float으로 어렵게 했던 레이아웃을 flex를 통해 레이아웃을 했더니 너무 쉽고 간편해서 왜 float했나 했더니 우리는 java개발자고 java는 레거시 프로젝트나 서비스를 관리할 일이 많이 있을 수 있으니 알아두어야 한다고해서 납득이 갔다
            • flex자체도 최신브라우저아니면 안되는 기술들이 있어서 편리하지만 사용하지못하는 속성들이 있었는데 프론트엔드가 브라우저 관리가 정말 어렵겠구나를 간접적으로 나마 체험해 볼 수 있었다
            • 그외에도 더 나중에 나온 grid라는 기술이있다는데 우린 배우진 않았지만 정말 프론트에는 새로운 기술이 많아 공부를 많이 해야되는 분야구나 라는걸 알게 됬다
        • Header

          • 헤더와 Logo부분을 작업했는데 Logo를 position:absolute로 띄우고 헤더를 position:relative로 주니 Logo가 띄워지고 haedr기준으로 배치가 되서 logo를 top, left 를 지정해주어 위치를 조정 할 수 있었다
          • 회원서비스를 ul을 통해 만들고 Inline으로 만들어 가로배치가 가능하도록 하고 block에 성질을 이용하여 사용하기 위해 inlne-blcok으로바꿔 주어서 속성을 변화시켰다
            • 강사님을 보면 css에 자신이 있으니 컨텐츠를 중심에 두고 마크업을 하고 그후에 배치를 할 수 있는 능력이 생기는것 같다. 컨텐츠 중심의 코드는 깔끔해지고 가독성도 올라가서 좋은코드가 될수밖에 없다.
            • 회원서비스의 글꼴이 지정되어 있지않아 브라우저마다 상이하여 글꼴을 지정하기 위해 css페이지에 2가지 url을 더 임포트를 더 해주어 해당 어떤 브라우저나 환경에 있던 해당 글꼴을 다운받을 수 있게 해놓고 body안에 font-family를 통해 일괄적용 해 주었다
              • 이 과정에서 삐침이없는 글꼴군인 산 세리프와 삐침이 있는 글자군인 세리프가 있다는 것을 배우고 그안에 글꼴들이 분류되어 속해져있다는 것을 배웠다
        • mian.group1

          • group1에 가장 상단에 존재하는 로그인 폼을 만드는 작업을 하였다

            • 이번에도 구조 -설계 - 마크업-css단계를 거치면서 진행하였고 오늘은 마크업에서 마무리되었다
          • 로그인창에 아이디 패스워드 입력창을 컨텐츠에따라 연속해서 마크업하고 마지막으로 로그인 버튼을 마크업하엿다

            • 이런식으로 디자인 중심이 아닌 컨텐츠 중심의 설계를 해야된다는 것을 계속 강조 하셨다

            • 입력창은 뒤에 스프링할 때 꼭알아야하는 form 태그 중 input 태그를 사용하였고 input태그를 사용할 때는 꼭 label을 달아 해당 input이 어떤 역할을 하는지 표시하는게 좋은 코딩이라는 것도 배웠다

            • 폼태그는 type을 지정할 수 있어 다양한 입력방식을 검증해주고 플러스로 정규식을 통해 입력을 검증하게 된다고 하셨다

            • 마지막으로 여러가지 form들을 검색할 수 있는 방법을 알려주시고 따로 공부해보라고 말씀해주셨다

- 용어정리

  - 뷰포트(ViePort): 브라우저에서 화면 크기를 이야기하며 메뉴바, 탭영역 등을 제외한 순수 화면 영역. 디바이스 크기와, 각각의 브라우저마다 계산되는 영역이 달라 같은 웹페이지라도 환경에 따라 달라게된다.

  - form 태그: 웹페이지에서의 입력양식을 의미한다. ex) 로그인 창, 회원 가입폼 등 

    - form태그는 추상태그로 실제 사용은 다른태그들을 사용한다고 한다

    

- 느낀점

  - 수업을 들으며 어제처럼 열심히 타자를 치면서 들으려고하는데 어느순간 타자를 치다가 자꾸 강의를 놓친 부분이 많이 생기기 시작하고 집중에 오히려 방해가 된다는 생각이 들었다
    - 그래서 녹음하는것을 믿고 강의에 집중하고 하나라도 더 열심히 강사님 말씀듣고 하시는것들 보고 해보려고 했더니 도움이 많이 되었다.
    - 수업듣기와 참여 메모까지 함께하는 것은 정말 쉽지 않은일이긴 한데 수업마다 스타일이 있기 때문에 어떤것에 중점을 두고 수업에 참여할지도 생각해볼 문제인 것 같다
    - 복습하려고 보니 전체적인 진행 방향이라도 메모해놓는게 더 좋은 방법 같다. 쉬는 시간을 활용해서라도 그렇게 해놓으면 나중에 복습할 때 수업한 내용들을 떠올리며 정리해나가 더 좋을 것 같다
  • 오후 공부시간

    • DB day5 수업

      • 수업정리

        • mongo db를 설치하고 간단하게 mongodb 쿼리문에 대한 실습을 하였다

          • 실습 환경인 robomongo가 폰트사이즈가 너무 작아서 실습 초반에 제대로 진행하지 못해 꼼꼼한 복습이 필요하다
          • Javascript문법 사용하는 쿼리문에 흥미가 가고 Js배워두면 활용할 부분이 많은 것 같아서 배우고 싶은 마음이 추가됬다
          • 실습하려고 robomongo 실행했는데 서버접속이 안되서 인스턴스 중지했다 켰더니 접속이 되었다
            • 퍼블릭 IP가 변경되어서 다른 접속들도 따로 변경을 해주어야 될 것같다(특히 bash alias)
        • python을 이용해 간단하게 코드를 작성하여 웹페이지에서 joson형식의 데이터를 크롤링하여 mongoDb로 옮기는 실습을 진행하였다

          • 이런식으로 noSQL DB는 바이너리 코드로 변환이 필요하지 않아 Insert가 빠르다는 장점을 이용하여 Bigdata쪽에 많이 사용한다는 것을 배웠다
          • 따로 스키마를 설계할 필요가 없으니 DB접근성이 편리해지는 장점을 확인 할 수있는 실습이었던 것 같다
        • Crontab을 활용하여 주기에 따라 스케쥴링하여 특정 명령을 실행하는 법을 실습하였다

          • Crontab은 단순히 주기적으로 명령을 실행해주는 것이 아닌 Log기능을 제공해 에러가 발생하면 MTA 를 통해 메일링을 해주어 사용자가 로그를 편리하게 확인할 수 있는 기능도 제공한다
          • 실습 과정중에 vim을 통해 설정들을 변경하였는데 CLI에서 무언가 해보는 기분이어서 재밌었다
        • Backup에 대해서 배우고 앞에서 배운 Crontab을 통해 스케쥴링을 이용한 Backup에 대해 실습하엿다

          • Bakup은 데이터베이스를 중지하지 않고 진행하는 HotBackup과 데이터베이스를 중지하고 진행하는 Cold Backup이 있다는걸 배웠다
            • Insert가 없으면 Hot Backup할 수 있지만 있다면 Cold Backup을 진행한다고 한다
          • 또한 SQL 문으로 백업하는 Logical Backup과 파일 자체를 백업하는 Physical Backup이 있다는 것도 배웠다
            • 우리가 실습할 때 DB를 만들고 SQL문을 실행해주어서 데이터를 채워 넣었는데 그 SQL문이 Logical Backup이 된 것을 복원한 것이었다
            • 백업할 데이터의 양이 너무 많으면 어쩔수없이 Physical Backup을 하지만 양이 적당하면 안정적인 Logical Backup을 많이 사용한다고 말씀해주셨다
          • 실습해 본것은 Hot Logical Backup으로 backup shell script를 작성하고 그것을 crontab을 이용해 주기적으로 실행하여 백업 결과를 backup 폴더에 저장하도록 하였다
            • shell script 문법은 거의 접해보지 못했는데 간단하게나마 접해볼 수 있는 기회가 되는 실습이었다
            • 수업 진도가 바쁘셨는지 백업만 실습하고 복원하는건 안하시고 그냥 넘어가셨는데 따로 실습을 해보면 좋을 것 같다
            • Cold Physical Backup도 따로 실습해보라고 당부하셨으니 같이 진행하면 좋을 것 같다
        • 마지막으로 Master-Slave를 DB를 만들어 동기화하는 하는 것을 실습하였다

          • 여기서 Master는 입출력이 가능하고 Slave는 Master에 동기화되어 입력은 안되고 출력만 가능하도록 하여 클라이언트들에 출력 응답을 분산하여 대응하는 방식으로 사용된다고 한다
            • 서비스에서 대부분의 요청은 입력보다 출력이 압도적으로 많기 때문에 출력 요청을 효과적으로 분산시켜줄 수 있는 SlaveDB를 여러개 두기도 한다고 한다
          • 두개의 다른 인스턴스를 생성하여 각각의 서버에 MySQL을 설치하고 동일한 이름의 DB를 각각 생성하고 한쪽은 Master 설정을하고 한쪽은 Slave설정을 하면서 동기화하였다
            • 동기화 이후 Master에서 Table을 생성하고 Insert를 하였더니 Slave에서 잠시뒤 동기화 하여 똑같은 결과를 출력해 볼 수 있었다
            • 원래는 락을 걸어서 Slave에서 입력이 불가능하도록 하는데 우리실습에서는 거기까지 하지는 않았다
- 용어정리

  - CLI(Command LIne Interface): 명령줄 인터페이스
  - MTA: Mail Transfer Agent

  

- 느낀점

  - HTMl 수업시간에 영향으로 메모보다는 수업에 집중해보자는 마음으로 열심히 따라갔더니 다행히 수업 실습이 속도감이 있었던 것에 비해 잘 따라갈 수 있었다. 
    - 중요한부분만 간단히 메모해놓고 열심히 수업 자체에 집중하는 것도 좋은 방법이 될 것 같다
    - 다만 복습할 때 얼마나 자료활용할 수 있을지는 생각해 볼 문제인 것 같다
  - 주말동안 실습해볼 예제들이 많이 있어서 시간을 충분히 잡아놓고 실습해야될 것 같다

  
  • 저녁 공부시간

    • TIL 정리
      • 오늘은 공부방식을 조금 바꾸어 TIL에 수업들은 내용들을 따로 정리해보았다. 강의안과는 다르게 내가 배운 부분들을 스스로 정리해보는 방식으로 전환을 주면서 따로 따로 공부한내용을 올리지 않고 하룻동안 배운내용들을 한번에 정리해보는 것을 시도해보고 있다
        • 정리하고 나니 텍스트로만 가득차있어서 가독성이 떨어지는데 그림과 표등을 활용하면 더 좋을 것 같다
      • 느낀점
        • 장점 : 수업 한내용들에 큰줄기에 대해서 명확히 파악할 수 있게 되어 틀을 잡는데 도움이 되는 것 같다
        • 단점: 정리한 내용들을 따로 찾아보기 어려울것 같다는 생각이 들어서 좋은방법인지는 좀더 생각을 해봐야될 것 같다

    공부하면서 느낀점

내일 공부할 내용

  • HTML 수업준비
  • JAVA 수업준비
  • 수업 복습
  • 모의 면접 준비
  • TiL 정리 및 블로그 업데이트
profile
배우는 개발 일기

0개의 댓글