
부트캠프 11주차 회고를 작성해본다.
이번주 화요일에 코테 스터디가 진행되었다. 스터디 노트 바로가기
스택, 큐 관련 문제들을 풀어와서 풀이 방법과 어려웠던 점 등을 공유하였는데, 스택과 큐는 모두 리스트의 한 종류이다보니 문제에 따라 배열과 인덱스를 잘 활용하거나 리스트를 이용해서 풀리는 경우가 종종 있었다.
스터디원과 함께 이야기를 나누는 과정에서 진짜 스택/큐가 필요한 경우가 언제인지에 대해 고민해본 것이 인상적이었다. 스택/큐 문제임을 알고 풀이를 시작하다보니 이 부분은 스택/큐를 쓰면 되겠다 하고 풀이하게 되었는데, 이야기를 나눠보니 실제로는 해당 자료형이 아주 유의미하게 쓰이지는 않는 경우도 있었다. 실제 코딩테스트 환경에서는 어떤 자료형이 필요한 문제인지 모른 채로 풀이하게 되므로, 스택/큐의 특징이 언제 핵심적으로 쓰이는 지를 고민해보는 것은 좋은 공부라고 생각한다.
그동안 스택을 이용할 때는 주로 Stack 클래스를, 큐를 이용할 때는 LinkedList로 구현한 Queue 인터페이스를 활용해왔는데, 이번 스터디를 통해 Deque 인터페이스가 push(), pop(), offer(), poll() 등의 메서드를 지원하므로 스택과 큐, 덱(deque) 문제에 전부 활용할 수 있음을 배웠다. (구현체는 주로 ArrayDeque 사용)
이번주에 발생한 문제 상황을 공유해본다. 대체로 수업을 잘 따라갔다면 겪지 않았을 문제들이긴 하지만, 도구에 익숙해지기 전에는 현업에서도 발생할 수 있는 실수이므로 기록 차원에서 적어둔다.
400 Bad Request 응답 수신, 누락)
415 Unsupported Media Type 응답 수신Content-Type에 application/json을 누락한 것이 원인이었다.

Alt+좌우 방향키를 활용하는 방법으로 해결하였다. 예를 들어 아래와 같은 상황에서 코드 창에 커서가 있는 상태로 Alt + <-를 누르면 UserDetailResponse.java로 이동한다.
새로 클래스를 생성하는 경우가 아니면 보통 이전에 코드를 작성했던 클래스로 돌아갈 때가 많다. 위의 단축키를 이용하여 클래스를 순회했더니 목적지를 어렵지 않게 찾을 수 있어, 흐름을 놓치지 않고 필기하는 데 많은 도움이 되었다.
마우스와 키보드를 왔다갔다 하는 것은 시간이 꽤 소요되므로, 단축키를 익혀 마우스 사용 빈도를 줄이면 작업 속도 개선에 많은 도움이 된다. 그런 의미에서 IntelliJ 단축키를 찾아보고 익혀야 할 듯하다. 현재 파악되었거나 많이 사용하는 단축키 및 유용한 기능을 정리해본다.
- 클래스, 메서드 선언,
import문 추가 등:Alt+Enter- 코드 자동 포맷팅:
Ctrl+Alt+L- 생성 (생성자, getter, setter, 메서드 오버라이딩 등):
Alt+Insert
- 메서드 오버라이딩:
Ctrl+O- 메서드 구현:
Ctrl+I- 주석
- 한 줄 주석:
Ctrl+/(한컴 입력기 상태에서는 작동 안함)- 블록 주석 (/* */):
Ctrl+Shift+/- Javadoc 주석:
/**+Enter(IntelliJ 자동 완성)- 테스트 대상 코드 <-> 테스트 코드 간 전환:
Ctrl+Shift+T
- 테스트 코드가 없을 때는 생성도 가능
- 코드 드래그하며 줄바꿈:
Shift+상하 방향키- Git에 파일 추가:
Ctrl+Alt+A- 사용자 정의 단축키(기본적으로는 제공되지 않지만 IntelliJ 기능을 통해 원하는 단축키 추가 가능)
Alt+I:gitignore에 해당 파일/폴더 추가- 직사각형 모양의 영역 선택:
Alt+ 드래그 (동기 수강생 분께서 공유)
이 외에 전부 정확하게 정리하긴 어렵지만 Ctrl, Alt, Shift 등의 키와 방향키를 조합하면 유용한 기능이 꽤 많아 보인다. IntelliJ가 제공하는 단축키를 전부 익히고 사용하는 것은 어렵겠지만 일부 단축키는 더 알아보고 잘 익혀서 유용하게 사용해볼 생각이다. 단, 이런 단축키에 너무 익숙해지면 코딩 테스트 등 IntelliJ를 사용하지 못하는 환경에서 적응하기 어려우므로, 지나치게 의존하는 것도 지양해야 한다.
Spring이 개발자 편의를 위한 기능을 많이 제공하고 있다는 걸 느꼈다. 처음 배우는 내용이라 따라가기 쉽지 않지만, 한편으로는 모르던 것을 새로 알아가니 재미있기도 하다. Spring은 부트캠프에서 다루는 것으로 충분하지 않아서 따로 공부해야 한다는 말을 정말 많이 듣는데, 수업에서 배운 내용을 잘 익힌 뒤에 필요한 내용을 찾아보며 깊이 공부해볼까 한다. 코딩은 결국 이론을 아는 것보다 손에 익히는 것이 중요하므로, 이번 프로젝트를 시작으로 하여 Spring 사용에 익숙해져야겠다.