본문 바로가기

전체 글

(147)
부트캠프 73일차 후기 어제에 이어서 첫 웹 프로젝트 였던 개인 프로젝트를 Kotlin으로 옮기는 작업을 하였다. 몇 개월전에 Java로 짠 코드를 보며, 생각보다 아쉬운 부분이 많이 보이는데, 이 부트캠프를 거치면서, 생각보다 실력이 올랐구나를 느끼게 되었다. 가장 기억에 남는 것은 Kotlin에서의 Any와 *의 차이점이였다. ModelNotFoundException은 강의에 수록된 Exception인데, Repository에 해당 id 값이 없으면 발생시키는 간단한 Exception이였기에, 부트캠프 시작된 이래로 꾸준히 사용하고 있는 Exception이다. 그런데 간단한 코드이긴 하지만, 매번 Repository에서 해당 Id를 가진 엔티티가 있는지 확인하는 것은 번거롭게 느껴졌다. private fun getValid..
부트캠프 72일차 후기 오늘부터 내가 이전에 했던 개인 프로젝트를 Kotlin으로 옮기는 작업을 할 예정이다. 이제와서 다시 보니 첫 Spring Boot 웹 프로젝트였기에, 꽤 조잡한 부분이 있어서, 생각보다 수정을 많이 가할 것 같다. 그래서 시간이 예상보다 더 걸릴 것으로 예상이 된다. 둘러보니 이 프로젝트에서 Index를 사용했는데, 아무 생각 없이 책에 나와 있는 코드를 그냥 가져왔던 것 같다. 그래서 데이터베이스에서의 Index에 대해 정리를 해보고자 한다. Index는 데이터베이스 테이블에 대한 검색 속도를 향상시켜주는 자료구조이다. 데이터베이스에서 테이블은 첫 번째 데이터부터 순서대로 데이터를 찾는 방식인데, 이 Index를 활용하면 데이터 검색을 빠르게 할 수 있다. Index는 쉽게 말해서 목차를 생성하는 개..
부트캠프 71일차 후기 주말을 낀 2박 3일 간의 해외여행을 마치고, 부트캠프에 다시 돌입한다. 2박 3일이란 해외여행은 짧아서, 꽉꽉 채워서 관광지를 돌아다녔다. 호텔에 들어간건 짐을 내려놓을 때와 자러 간 때를 제외하고 없어서, 지금도 좀 피곤하다. 그래서 오늘은 기술면접을 정리한 내용을 다시 복기하고, 면접 때 물어보는 것을 상정해 대답하는 연습을 했다. 분명, 글을 적으면서, 아는 내용도 돌아보고, 개념도 정리했는데, 막상 말을 해서 내용을 전달을 하려하니 말문이 막힌다. 여기에 꼬리 질문까지 물어보면 어떻게 될지가 걱정이 된다. 그렇게 모의면접에 돌입했다. 처음부터 자기소개를 하라고 물어봤는데, 분명 이전에 면접을 하면서 자기소개를 준비한 적이 있고, 암기도 한적도 있었는데, 오랜만에 대답을 하려니 머릿속이 새하얗게 ..
부트캠프 68일차 후기 오늘로 부트캠프 측에서 준비한 모든 면접 문제를 훑어보았다. 아는 문제들도 많았지만, 혹시나 내가 모르거나 잘못 알고 있는 것이 있는지 확인 할 겸 일일히 구글링을 해서, 되도록 하나의 게시글이 아닌 여러 게시글을 돌아다니면서 개념을 정리하였다. 지금까지 Spring Security를 사용할 때에는 구조를 잘 모르고 사용하였는데 이번에 대강의 구조와 흐름을 알게 되었다. 1. 사용자가 로그인 정보와 함께 인증을 요청한다. 2. AuthenticationFilter가 요청을 가로 챈 뒤, UsernamePasswordAuthenticationToken의 인증용 객체를 생성한다. -UsernamePasswordAuthenticationToken은 Username과 Password를 사용하는 가장 기본적인 A..
부트캠프 67일차 후기 오늘도 면접문제를 준비하였다. 가장 기억에 남는 것은 Java가 컴파일되는 과정을 배운 것이다. Java가 컴파일 되는 과정은 간결하게 다음과 같다. 1. 개발자가 자바 소스코드(.java)를 작성한다. 2. java 코드를 java compiler가 바이트코드로 바꿔서 .class파일을 생성한다. 3. 컴파일 된 바이트코드를 JVM의 클래스로더에게 전달한다. 4. 클래스 로더는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여 런타임 영역, 즉 JVM의 메모리에 올린다. 5. 실행 엔진은 JVM 메모리에 올라온 바이트 코드들을 명령어 단위로 하나씩 가져와서 실행한다. 실행 엔진의 방식은 2가지가 존재한다. - 인터프리터: 바이트코드 명령어를 하나씩 읽어서 해석하고 실행한다. 하나하나의 실행은 빠르나..
부트캠프 66일차 후기 오늘은 면접문제를 정리하는 시간을 가졌다. 대부분의 문제는 아는 문제이고 답 또한 알지만, 면접 때 이 문제를 자신의 언어로 얘기하는 것은 다른 문제이다. 여기서는 이번에 새로 알게 된 문제와 새삼 다시 곱씹어보게 된 개념을 정리하고자 한다. CORS는 Cross Origin Resource Sharing의 준말이다. 추가 HTTP 헤더를 사용해서 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 리소스에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 체제이다, 여기서 출처(Origin)란 Protocol, Host, Port를 합친 것을 의미한다. 방식에는 3가지 방식이 존재한다. Simple Requst - 서버에 API를 요청할 때, 서버는 Access-Control-Allow-Orig..
부트캠피 64일차 후기 오늘은 아침부터 공통적인 Code부분을 코딩하였다. Intellij의 Code with Me를 사용해서, 공통적으로 사용할 Entity나 Config 파일을 팀원분들과 함께 작성하였다. 이 과정에서, 다른 팀원 분이 작업한 부분을 내가 건들여버려서 팀원 분과 충돌이 있었는데, 아직 push 하기 전의 코드라서 다른 팀원 분의 코드라는 것을 의식하지 못해서 생긴 내 실수였다. 앞으로 이런 일이 없도록 의식하도록 노력하자. 이후 대화를 통해 팀 프로젝트를 진행하며 각자의 불만점을 얘기하는 시간으로 발전하였다. 이러한 경험을 하고 앞으로의 거름판으로 삼기를 다짐하게 되는 계기가 되었다. 이어서 외부 API를 가져오는 방법을 공부하였다. 외부 API를 호출하는 방법에는 여러가지가 있다. 그 중 대표적인 것은 3..
부트캠프 63일차 후기 오늘도 어제에 이어서 프로젝트 기획을 진행하였다. 외부 API를 분석하는 시간을 가졌는데, 각 팀원이 페이지마다 나눠서 분석을 진행하였다. 그리고 각자 필요해보이는 API 안타깝게도 내가 다른 발표를 제대로 하지 못해서 불평이 나온 것이 아쉬운 점이다. 여기에 내가 의욕이 없어보인다는 피드백을 받았다. 내 의도가 그렇든 아니든 그렇게 보였다는 것은 내가 부족하다는 것이다. 좀 더 잘 보일 수 있도록 노력하자. 어제는 draw.io로 진행하였는데, 중간에 작업물의 일부분이 날라가 버려서, figma로 다시 작업을 하였다. 다른 팀원 분에 의하면, figma는 프론트엔드로 바꿀 수 있는 기능이 있다고 한다. 그래서 다음에 만약 내가 또 관련 작업을 하게 된다면, figma를 적극적으로 사용해보자. 그렇게 와..