20201126-TIL

나영원·2020년 11월 27일
1

T.I.L.

목록 보기
88/145
post-custom-banner

오늘 공부할 내용

  • 어제 스프링강의 복습
  • 저녁 스프링강의
  • TiL 정리 및 Git & 블로그 업데이트

오늘 공부한 것 & 배운 내용

통근길 독서

프로그래머의 길, 멘토에게 묻다

  • 실패하는법을 배워라,독서 목록, 꾸준히 읽어라 패턴에 대해서 읽었다

    • 실패하는 법에서는 성공하는 사람은 실패에 대한 다른 자세를 가지고 있다는 것을 배우고 실패를 경험하기 위해 IDE가 아닌 텍스트편집기에 코드를 구현하고 수정하고 수정해서 마지막에 컴파일해서 확인하는 과정을 거쳐서 어떤부분을 내가 정확히 모르는지 확인해보라는 내용이있어서 인상적이었다

    • 독서 목록은 개발 독서를 하기위해 꼭필요한 것 같다. 책들의 리스트를 적으면서 보고싶은 책들을 정리하는 것도 중요하지만 결국 리스트가 쌓이면 읽지못하는 책들이 생기는데 그런것들이 우선순위를 통해 자연스럽게 걸러지는 것이고 시간은 한정적이기때문에 그게 자연스럽고 좋은 현상이라고 말해주어서 일리가 있다고 생각했다

      • Reading폴더에 독서리스트를 추가해서 읽고싶은책, 읽고있는 책, 읽은 책으로 나뉘어 yes24링크도 추가해놓았다.. 아주뿌듯하다
    • 꾸준히 읽어라에서는 나에게 용기가 되는 인용문이 있었다

      • 좋은프로그래밍 책을 두 달에 한권, 즉 일주일에 대략 35페이지 정도만 읽어도 , 당신은 이내 이 분야에 대해서 확실한 감을 갖게 될 것이며 주변의 거의 모든 이들과 구별되는 수준으로 올라설 것이다. -스티븐 멕코넬[Code Complete]

      • 위의 기준에서 본다면 읽기는 지금도 잘해나가고 있는 것 같고 좋은 프로그래밍 책을 어떻게 찾을 것인지 더 고민해봐야 될 것 같다

모두의 네트워크

  • 이더넷의 종류와 특징에 대해서 배웠다
    • 이더넷이 기술 규격이라는데 아직은 잘 이해가 되지 않는다. 우리가 가정집에서 인터넷 몇메가 몇기가 쓰느냐가 그 규격을 말하는걸까?
  • 4장이 끝나서 복습하기 문제와 용어정리도 마무리하였다
    • 야금야금 읽지만 그래도 꾸준히 하다보니 9장중에 4장을 마무리하였다. 지금도 뿌듯한데 9장까지 마무리하면 얼마나 뿌듯할까 싶다

채용공고 읽기

  • 어제 결정한 것 처럼 최대한 지원 조건이 맞는 곳을 위주로 정보를 찾아보았다
    • 처음 본곳은 성형회복을 도와주는 서비스회사였는데 괜찮지 않을까하고 찾아보다가 환자들의 사진들에 거부감이 들어서 내길은 아닌것 같아서 그만보았다
    • 다음은 글로벌 인플러언스 마케팅을 주로하는 회사를 알아보았는데 마케팅은 관심가는 영역이고 회사도 재밌어보였는데 개발 영역으로 구체적으로 어떤부분을 하는지 찾아볼수가 없었다. 그래서 개발쪽으로 발전을 해나가기는 조금 어렵지 않을까라는 생각을 해보았다

스프링 강의 복습

SpringIOCProject

  • 어노테이션과 xml을 모두 활용해서 빈을 관리한다는 것을 배웠다.
    • 변하지 않는 클래스는 어노테이션으로 관리하고 변하는 클래스(다형성 이용할 클래스)는 xml을 이용해서 수정을 하도록 하는 방식이다
    • 목표는 자바코드 수정을 최소화하고 xml의 복잡성을 줄여주는 쪽으로 관리하는 것 같다
  • @Resource = @Autowired + name속성사용이다
  • 서비스 컴포넌트에는 VO, DAO , ServiceInterface, Service가 포함된다
    • 각 테이블 별로 서비스 컴포넌트를 만들어 주어야 한다
    • DAO와 Service는 언뜻 비슷해보이지만 독립해서 만드는 것이 좋다
      • 그래야 DAO 부분에서 변화가 있을때 DAO만 변경시킬 수 있다
  • 실습을 통해 Board와 User테이블의 서비스 컴포넌트를 각각 만들고 간단한 테스트를 하였다

SpringAOP

  • AOP에 개념에 대해서 배웠다

    • AOP는 Aspect Oriented Programming에 약자로 관점지향 프로그램이라고 불린다
    • businessMethod를 핵심관리코드와 횡단관리코드로 나누어서 기능을 분화시키는 것을 뜻한다
    • 횡단관리 코드는 로깅, 트렌스액션 처리등 핵심관리코드를 보조하는 역할을 하는 코드들을 뜻한다
    • 이 코드들을 따로 분리할 뿐아니라 xml을 통해서 컨테이너를 통해 관리해서 사용하여 편의성을 증대시킨다
      • 객체지향 언어에서 이것을 따로 분리하는 것이 어려운데 Aop를 적용하면 분리가 가능하다
        • 객체지향의 한계를 뛰어넘어 더 객체지향같은 모습을 만드는 것이라고 표현하신것 같다
  • AOP 용어정리

    • 포인트컷, 어드바이스, 어스팩트외 2개가 더있었다
      • 어스팩트(Aspect)는 포인트 컷과 advice를 연결해주는 개념이라 앞에 2개를 잘알면 된다고 하셨다
    • 오늘 강의전에 자료를 좀더 읽어오라고 하셨다
  • 실습

    • 실습한 내용이 많지 않아 간단하게 실습해보고 logTwo 클래스를 하나더 만들어서 교체해보는 것을 해봤다
  • 예습

    • 용어정리
      • 어드바이스 : 부가기능을 정의한 코드
      • 포인트컷: 어다바이스를 어디에 적용할지를 결정하는 것
      • 애스팩트 : 어드바이스와 포인트컷을 합친 개념

강사님과 질답시간

  • AOP가 프로그래밍 패러다임인가요?

    • 답변 : 맞다. AOP는 개별적인 프로그램에 동작에 관심을 갖는 것이아닌 여러 동작들을 횡으로 놓고 비교하여 공통 되는 작업들에 관심을 가지는 것이다. 그래서 포인트 컷이라는 말이 생겼고 그런 동작들을 분리해주는 역할을 한다
    • 패러다임이라는 것이 완전히 프로그래밍을 바라보는 관점을 다르게 하는 것이구나 라는 생각이 들었다.
  • AOP가 OOP를 도와주는 역할을 한다는데 맞는지?

    • 답변 : 맞다 . OOP는 객체들의 관계를 짓는 것을 한다면 AOP는 오히려 관계들을 분리시키는 역할을 한다. 더 아래 단계에서 AOP가 분리를 해주면 어플리케이션 레벨에서 OOP는 더 OOP답게 구현을 할 수 있게된다
    • 프로그래밍 패러다임이 서로 베타적인 것만은 아니고 서로를 강화시키는 역할을 할 수 도있다는게 신기하다.
    • 객체지향이 분화시키는것만 생각해왔었는데 그런 분화시킨 객체들을 연결시키는 것이 굉장히 중요한 부분이었구나 라는 점을 배웠다
  • 서블릿 필터와 AOP가 역할이 비슷해보이는데 맞는지?

    • 답변: 맞다 하지만 서빌릇 필터는 지엽적인 서블릿에 대해서만 역할을 하지만 AOP는 더넓은 범위에서 활용될수 있다고 답변해주셨다
  • 한가지 언어가 하나의 패러다임을 따른것이 아닌가요?

    • 답변: 아니다 하나의 주된 패러다임이 있고 상황에 따라 다른 패러다임을 적용하여 프로그래밍을 할수있도록 한다.

    • 어찌보면 이미 람다에서 함수형프로그래밍을 간접경험한거랑 비슷한 경험을 하고 있는 것 같다. 이렇게 간접경험을 하면서 다른언어들을 빠르게 배울수 있지 않을까 기대해본다

스프링 강의 예습

SpringAOP

  • AOP는 여러 오브젝트에 나타나는 공통적인 부가 기능을 모듈화하여 재사용하는 기법

    • 어떤 부가기능을? 언제? => 어드바이스
      @Befroe - 메소드 실행전
      @AfterReturning -정상 작동시
      @AfterThrowing- 예외발생시
      @After - 정상or예외시 모두
      @Around - 전후 모두에 실행

    • 어디에? => Joinpoint, Pointcut

      • JoinPoint : 어드바이스를 적용 시킬 위치

        • 메소드 호출할때 => Spring에서 사용하는 곳
          • Spring에서는 이경우만 생각하면 된다
        • 변수에 접근할 때
        • 객체를 초기화할 때
        • 객체에 접근할 때
      • Trarget은 어드바이스(부가기능)가 적용될 대상

    • AOP는 어디에 사용될까?

      • 성능 검사
      • 트랜잭션 처리
      • 로깅
    • 참고자료 : https://www.youtube.com/watch?v=WQR_VQnz7Yg

공부하면서 느낀점

11월말

  • TIL쓰려고 새파일만드는데 별서 11월 말이다.. 하루하루 쌓여가는 TIL만큼 내 개발실력도 늘면 좋겠는데..

TIL부터 정리하고 시작

  • 아침에 와서 책부터 읽고시작하는데 어제 TIL정리부터 시작하는게 통근시간 책 본것도 정리하고 어제 학습하더 것도 이어서 갈수 있어서 더 도움이 될것 같다.

확진자수 폭발

  • 이번주 2단계로 격상되어서 9시에 학원이 마감되서 아쉬웠는데 오늘은 확진자가 폭발해서 이제 다시 온라인학습을 준비해야될 것같다..
    • 다행히 공부할 공간은 있는데 그래도 어느정도 준비는 해놓는게 좋을 것 같다

내일 공부할 내용

  • 어제 스프링강의 복습
  • 저녁 스프링강의
  • TiL 정리 및 Git & 블로그 업데이트
profile
배우는 개발 일기
post-custom-banner

0개의 댓글