본문 바로가기

기록하기

(86)
모의면접 복기하기 본인이 맡은 프로젝트에서 가장 어려웠던 점은 무엇이고, 어떻게 해결했는지? 본인의 개발 스킬의 장점은 무엇이고, 그것으로 할 수 있는 일? 어떤 개발자가 되고 싶은지? 본인의 약점? 세션을 이용한 보안인증, 토큰을 이용한 보안인증의 장단점? Bcypt 암호화의 특성? 어떤식으로 암호화가 되는지? 암호화? 웹소켓의 원리? 어떻게 양방향 통신이 가능한지? long polling 방식은? tcp/udp ? 대규모로 트래픽이 몰리는 상황에는 어떻게 대처할지? 웹소켓이 끊어졌다 재연결했을때 지연되는 데이터의 처리는? 성능테스트는 추후에 어떻게 진행할 예정? jmeter, ngrinder 는 어떤식으로 테스트? 자바의 직렬화 역질렬화? redis에서의 직렬화 역직렬화? 채팅시스템 전략을 추후에 개선을 한다면? 클린..
CS 자주 나오는 질문 정리 (2) 자료구조 좋아하는 자료구조가 있다면 이유와 함께 설명해주실 수 있을까요? 좋아하기보다는 프로젝트를 하면서 많이 사용했던 것 해시테이블 : 해시 테이블은 키(Key)를 값(Value)에 매핑하여, 평균적으로 상수 시간(O(1))에 데이터를 검색, 삽입, 삭제할 수 있는 효율적인 자료구조입니다. 이는 많은 양의 데이터를 빠르게 처리해야 하는 경우에 매우 유용합니다. 또한, 해시 테이블의 유연성은 다양한 유형의 데이터를 쉽게 저장하고 관리할 수 있게 해줍니다. 스택, 큐에 대해 설명해주실 수 있을까요? 스택: 스택은 후입선출(Last In First Out, LIFO) 방식의 자료구조입니다. 이는 마지막에 삽입된 요소가 가장 먼저 나오는 구조를 가지고 있어, 깊이 우선 탐색(DFS) 같은 알고리즘에서 유용합니..
CS 자주 나오는 질문 정리 (1) 알고리즘 시간복잡도와 공간복잡도가 무엇인지 설명해주실 수 있을까요? 시간 복잡도(Time Complexity): 알고리즘이 문제를 해결하는 데 걸리는 시간을 분석하는 척도입니다. 이는 일반적으로 입력 크기에 대해 최악의 경우를 고려하여 표현되며, Big O 표기법을 사용해 나타냅니다. 예를 들어, O(n) 시간 복잡도는 입력 크기 n에 비례하는 시간이 걸린다는 것을 의미합니다. 공간 복잡도(Space Complexity): 알고리즘이 문제를 해결하는 데 필요한 메모리 공간의 양을 분석하는 척도입니다. 이는 알고리즘 실행 중에 필요한 전체 메모리 공간을 의미하며, 이 역시 Big O 표기법으로 표현됩니다. 예를 들어, O(1) 공간 복잡도는 입력 크기와 상관없이 일정한 메모리를 사용한다는 것을 의미합니다...
프로젝트 마무리하면서 정리하기 프로젝트에서 담당한 부분 유저 회원가입 로그인 로그아웃 가게 등록, 조회, 수정, 삭제 마이페이지 가게, 반려동물, 채팅방 조회 해시태그 등록, 삭제 채팅 채팅방 개설 인기 해시태그 조회 해시태그로 등록된 채팅방 조회 테스트서버 프론트엔드와의 테스트를 위한 별도의 서버 Swagger 프론트엔드와의 협업을 위해 직접 작성하는 API 명세서의 번거로움을 줄이기 위해 기술적 의사 결정 JAVA, SpringBoot Spring Security JWT + Refresh Token JPA MySQL Redis WebSocket, Stomp EC2(Ubuntu) + S3 + CodeDeploy + RDS
문제 정리하기 (3) 회원가입 과정에서 가입하기 클릭시 잘못된 정보입력이 있을때에 어떤 정보가 잘못되었는지 알려주면 좋을것 같습니다. Url로 특정 API에 접근시 로고가 깨지는 현상이 있습니다. (배너 이미지도 다 깨집니다) Url로 특정 API에 접근 할 때 존재하지 않는 게시물이라면 접근 할 수 없거나 다른곳으로 redirect되어야할것같습니다. (데이터로드에러라고 뜨는데 어떤 에러인지 클라이언트에게 보여주는것은 보안적인 측면에서 좋은 방법이 아닐것 같습니다) Shop조회시 리뷰를 작성한 후 삭제 버튼을 눌렀을때 새로고침해야 삭제가 반영이 되는것같아요. 사용자가 새로고침 할 필요없이 바로 refresh 되도록 해주면 더 좋은 UX가 될것같아요. Shop등록시 이미지 등록에서 드래그앤 드롭이 불가능합니다.(안내문구에는 된..