안녕하세요. 조가희입니다. 이번 시간에는 제가 가희 코테를 열면서 풀이를 검증했을 때 사용해서 편리했던 defaultdict에 대해 알아보도록 하겠습니다. 먼저, 아래 프로그램을 봅시다. 처음에 1번 키가 있고, value 값이 빈 리스트입니다. 그리고 1번 key의 value 값에 append(2)를 합니다. 그러면 1번 키는 2만 들어가 있는 리스트에 대응될 겁니다. 1번째 줄에서 dic은 위와 같이 되어 있습니다. 2번째 줄이 수행되고 나서, key 1에 대응되는 것은 2가 들어 있는 list일 테니, {1: [2]}가 출력될 겁니다. 문제는 그 다음에 키 2에 있는 값에 접근한다는 것입니다. 그런데, 이것은 dic에 없는 키입니다. 따라서, KeyError가 뜹니다. 실행 결과는 위와 같습니다. ..
전체 글 검색 결과
안녕하세요. 조가희입니다. 최근에 가희와 함께하는 코딩 테스트 1회와 2회를 개최하였습니다. 이 중에서, 제일 잘 했다고 생각하는 것 중 하나는 1회에서 나온 상대 속도의 개념을 2회에 똑같이 연계했다는 점이였습니다. 그리고 21773번을 출제자인 제가 왜 물리 카데고리로 분류했는지 이유도 같이 설명해 보겠습니다. 상대 속도는, 관찰자가 보았을 때 물체의 속도를 의미해요. 예를 하나 들어보겠습니다. 저는 동쪽으로 1초에 1m씩 가고 있습니다. 차는 1초에 20m씩 서쪽으로 오고 있습니다. 하나씩 구해 볼게요. 제가 보았을 때, 차는 어떻게 오는 것처럼 보일까요? 먼저 이 때, 제 동쪽으로 21m 떨어진 거리에 차가 있었습니다. 1초 후에는 어떻게 될까요? 차는 저랑 같은 위치에 있습니다. 제가 보면, 차..
mybatis의 xml mapper는 dynamic sql도 지원하고 있습니다. 저는 처음에 배울 때, if나 foreach 정도만을 써 왔는데요. trim도 알아두면 상당히 강력한 도구가 될 듯 싶습니다. 검색 api를 보면서 감을 잡아보도록 하겠습니다. 저번 시간에 모든 책을 get 하는 api를 작성한 적이 있었습니다. 이것을 Query 파라미터로 받게 바꾸어 보겠습니다. 저는 bookClass와 bookName을 선택적인 Query parameter로 받게끔 하였습니다. 만약에, 해당 Key가 없다면, null 값으로 들어갈 겁니다. 왜냐하면 모델 book의 bookClass는 int가 아닌 Integer로 선언되었기 때문입니다. 쿼리 결과는 위와 같이 나와야 합니다. 먼저 BookMapper의 ..
안녕하세요. 이번 시간에는 /dev/null 2>&1의 의미를 알아보겠습니다. 이 글을 읽기 전에 파일 디스크립터와 dup2 함수 등에 대한 개념을 잡고 오시면 조금 더 편할 듯 싶습니다. [관련글] 파일 디스크립터와 관련된 dup2 함수에 대해 알아봅시다. 먼저 0, 1, 2는 표준 입력인 stdin, 표준 출력인 stdout, 에러 stderr를 뜻하는 것은 알고 계실 겁니다. 다 터미널과 연관이 되어 있습니다. 따로 파일 디스크립터가 다른 것을 가리키게 하지 않는 (dup2나 dup 등을 이용해서) 이상은요. 파일 디스크립터 (fd)는 프로세스마다 독립적으로 가지고 있는 자원 중 하나입니다. 먼저, cat 2.txt는 2.txt의 내용을 출력해 줍니다. 만약에 없으면 No such file or d..
저번 시간에 mybatis-generator를 이용해서 mapper Interface, model, 그리고 xml mapper를 떨궜습니다. 이번 시간에는 이것을 이용해서, 모든 도서를 조회하는 API만 만들어 보겠습니다. 프로젝트 구조는 아래와 같습니다. 여기서 우리가 추가할 부분은, bookController, bookService입니다. 그리고, 바꿔야 할 부분은 application.properties입니다. 먼저, server.port는 7780으로 설정하였습니다. 그리고, mybatis.mapper-locations를 classpath:mapper/**/*.xml로 설정했는데요. 이는, mybatis-spring-boot-starter 때문입니다. 문서를 보시다 보면, Configuration..
최근댓글