목록개발 (19)
leelee.log
리눅스를 대학교 때 네트워크 구현 수업에서 몇 번 사용했지만 제대로 공부하지는 않은 것 같다. 어쩌다보니 실무 파트가 (말로만) full stack 이라서 서버를 관리하기 위해 aws에 들락 거리며 회사 ec2 정책상 리눅스를 사용하고 있는데 팀장님께서 일주일에 하나씩 '고수 같아 보이는' 커맨드를 알려주신다... 기록을 해둬서 잘 익히면 좋을 것 같아서 따로 페이지를 만들었다. 앞으로도 이 포스팅은 꾸준하게 업데이트 될 것이다. 2020-03-13 1. cd - 내가 현재 디렉토리로 옮기기 직전에 있었던 디렉토리로 가는 커맨드. 작업을 하다보면 cd를 써서 디렉토리를 옮기는 일이 정말 많다. 그런데 방금 있었던 디렉토리로 돌아가야 할 때 cd 경로를 다시 치는 것 보다 cd - 를 사용하면 손 쉽게 갈..
모든 포스팅에서 Bean 얘기를 하고 있는 느낌인데 오늘은 좀 심화된 Bean의 얘기를 할 것이다. Spring은 그냥 자바 객체를 쓰지 왜 Bean이라고 하는 별도의 개념을 또 만들어냈을까? 왜냐하면 의존성 주입(DI)가 하고 싶고, 스코프(객체의 활동 범위 정도라고 이해 했다)를 관리하고 싶었기 때문이다. Request를 물어오는 AController 객체가 하나면 충분하지 꼭 두 개, 세 개 여러 개 일 필요가 있을까? 그럴 필요 없다. 또 db와 연결을 하는 repository 객체는 하나 만드는데 꽤 비용이 든다. Spring은 이렇게 꼭 하나만 만들어도 되는 객체면 하나만 만들어서 쓰고 싶어 한다. 별 거 안 해도 무거운 자바에게는 필수적인 선택이었을 것이다. 그래서 단일 스코프로 작동하기 위..
React 이벤트를 처리하기 위해서는 명심해야 하는 사항이 하나 있다. 보통의 Javascript에서는 함수에 return false를 줘서 이벤트가 퍼지는 것을 막는데 리액트에서는 먹히지 않는 방법이다. 꼭 e.preventDefault를 써줘야한다. 그럼 파라메터도 전달하면서 event도 전달을 할 수 있는 방법은? 공식 문서에 다 나와있는데 성격이 급해서 끝까지 다 못 읽고 스텍오버플로우에서 찾았다.... 요런식으로 해주면 된다. https://stackoverflow.com/questions/42597602/react-onclick-pass-event-with-parameter React onClick - pass event with parameter Without Parameter functio..
스프링이 제공해주는 가장 강력한 기능은 IoC, AOP, PSA라고 한다. 앞의 두 개는 들어본적이 있는데 PSA는 정말 처음 들어보는 개념이다. 강의의 마지막으로 PSA를 다루고 있어서 마지막 포스팅으로 PSA를 다루고자 한다. 이 포스팅이 끝나면 기초가 끝나고 아주 약간의 심화 과정인 'Spring 필수개념' 강좌를 들을 예정이다. PSA역시 약자이다. Portable Service Abstraction. Portable, Abstraction만 보고도 어떤 기능을 제공해주는지 아주 약간 감이 왔다. 코딩을 할 때 Portable과 Abstraction은 몇 번을 강조해도 모자라는 중요한 개념이자, 좋은 코드의 기준이 되는 개념이다. Portable은 코드를 떼어서 다른 부분에서 사용하여도 전혀 이상..
오늘은 IoC 컨테이너와 Bean, DI(dependency injection)에 대해서 동시에 다루려고 한다. 조금 분량이 많아보이지만 사실 세 개는 겹치고 이어지는 개념이 많아 함께 다루는 게 더 효율적이라고 판단했다. 게다가 Inversion of Control 포스트에서도 IoC 컨테이너에 대해서 다루고 있기 때문에 IoC에 대한 설명이 더 필요하다면 그 포스트를 다시 봐도 좋을 것 같다. https://calgaryhomeless.tistory.com/2 (개념) Inversion of Control *얼마전부터 유튜브에 열려있는 백기선님의 '스프링 입문' 이라는 강좌를 듣기 시작했다. 몇몇 개념들은 정리를 해두면 좋을 것 같아서 블로그 포스팅을 하려고 한다. 다른 분들을 위해 강좌 링크를 밑에..
AOP를 쓸 때 대부분 Aspect용 class를 만들어서 거기다가 @Around, @Before 등을 이용해서 Controller나 Service의 로그를 찍는 걸 봤는데 아예 AOP용 어노테이션을 만들어서 진행하는 게 너무 좋아보여서 다음에도 써보려고한다. Aspect class 를 만들었을 땐 몰랐는데 아예 코드에 명시가 되어있으니 직관적이다. 어노테이션을 직접 만들 수 있다는게 놀랍다. @Target은 java의 어디 부분에 쓸꺼냐는 뜻인데 나는 상세하게 보기 위해 Controller의 메소드들에 찍어볼테니 ElementType.METHOD가 되고 Retention은 저 어노테이션이 언제까지 살아있냐는 뜻. Aspect class에 와서 AOP 상세 조정을 해준다. AOP에 관련된 클래스라는 걸 ..
스프링이 제공해주는 제일 큰 기능으로는 IoC, AOP, PSA가 있다. 이중 AOP는 Aspect Oriented Programming의 줄임말이라고 하는데 강의를 들어보니 Aspect가 핵심이다. Aspect는 관점이라는 뜻이 있는데 나는 국면이라고 해석을 했다. AOP의 주요 기능은 내가 원하는 행동을 매번 어느 특정 국면(또는 시점)에 들어왔을 때 할 수 있게 해준다. 예를 들어서 Client로부터 Controller가 Request를 받고, Response를 작성해서 return하는 시간을 측정한다고 하자. Controller가 하나면 한 번 만 코드를 작성하면 되니까 상관이 없겠지만 AController, BController, CController처럼 컨트롤러가 여러개면 매번 똑같은 코드를 ..
*얼마전부터 유튜브에 열려있는 백기선님의 '스프링 입문' 이라는 강좌를 듣기 시작했다. 몇몇 개념들은 정리를 해두면 좋을 것 같아서 블로그 포스팅을 하려고 한다. 다른 분들을 위해 강좌 링크를 밑에 남겨두겠다.* 스프링을 사용하면서 DI(dependency injection) 이라는 개념을 들어봤는데 Inversion of Control이라는 중요한 개념이 있었다. 내가 사용할 의존성을 내가 관리하지 않고 누군가 만들어서 주기 때문에 원래 내가 가지고 있어야 할 제어권이 넘어갔다고 하여 제어권 역전 이라고 한다. 스프링은 분명 개발 언어로 자바를 사용하고 있는데 이 inversion of control 때문에 우리가 객체를 사용하고자 할 때 일반 자바와 사용하는 방법에 약간의 차이가 있다. 1. 자바에서..
발단 개발 블로그를 만들기 위해 플랫폼을 알아보다가 개발자들이 많이 쓰는 github.io를 알게 됨. jekyll을 이용해야 테마를 꾸밀 수 있다고 해서 jekyll도 사용해보기로 했다. 목표 1. 테마 선택 2. 선택한 테마 fork 해와서 내 github.io에 적용하기 3. 내 github에 github.io를 위한 repository 만들기 4. 내 컴퓨터에 github.io repository를 clone해서 local에서 블로그 수정/확인하기(다음 포스트에서 진행) 1. 테마 선택하기 jekyll은 사람들이 이미 많이 사용하고 있어서 github에도 자료가 많고, jekyll 테마를 모아둔 사이트도 있다. 테마들을 보고 원하는 것을 선택하면 된다. (1) github에서 jekyll topi..