hanghae99 27

[항해 취업코스] 취준 기록 20일차

처음엔 2주 정도하려고 했지만 한달 채워서 면접 예상 질문에 대해 간단하게 정리해봤다. 다음주부터는 모의면접과 면접을 보면서 내가 부족했다고 생각한 부분에 대해서 집중적으로 정리해봐야겠다. 다음달도 지치지말고 파이팅!🤗 📌 기술면접 예상 질문 1. http, https 차이점에 대해 설명해 주세요. HTTP는 데이터를 암호화하지 않고 평문으로 전송하기 때문에 중간에서 데이터를 가로채거나 조작할 수 있는 보안 위협에 노출되어 보안이 취약합니다. HTTPS는 HTTP의 보안 버전으로, 데이터를 암호화하여 전송합니다. 중간에서 데이터를 가로채더라도 해독하기 어렵고 서버의 신원을 확인하여 통신의 안전성을 보장합니다. HTTPS를 사용하는 사이트는 보안적으로 더 신뢰할 수 있기 때문에 검색 엔진에서 더 높은 순위..

hanghae99/TIL 2024.03.29

[항해 취업코스] 취준 기록 19일차

📌 기술면접 예상 질문 1. RDBMS의 정규화에 대해 설명해 주세요. 데이터를 구조화하고 중복을 최소화하여 데이터의 일관성과 무결성을 유지할 수 있습니다. 테이블을 작은 단위로 분해하고 테이블 간의 관계를 정의합니다. 이를 통해 데이터 중복과 이상현상을 방지하고, 데이터베이스 설계를 최적화합니다. 2. CORS(Cross Origin Resource Sharing)에 대해 설명해 주세요. 출처가 다른 자원들을 공유한다는 의미로, 한 출처에 있는 자원이 다른 출처에 있는 자원에 접근할 수 있는 권한을 부여하는 체제입니다. Protocol-Host-Port 3가지가 모두 동일하면 출처가 동일하다는 것을 의미합니다. 다른 출처로의 통신에 제약이 없다면 정보를 쉽게 열람하여 사용자의 정보를 탈취할 수 있기 때..

hanghae99/TIL 2024.03.28

[항해 취업코스] 취준 기록 18일차

📌 기술면접 예상 질문 1. TCP와 UDP를 비교하여 설명해 주실 수 있을까요? TCP(Transmission Control Protocol)는 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 연결 지향적 프로토콜입니다. 연결 설정에는 TCP 3-way handshake가 사용되며, 통신이 완료되면 연결을 해제합니다. 데이터의 손실이나 손상이 발생할 경우 재전송을 통해 보완합니다. 또한, 흐름 제어 및 혼잡 제어 기능을 제공하여 데이터 전송의 안정성을 유지하고 순서가 보장됩니다. 파일 전송, 이메일, 웹 브라우징 등과 같은 데이터의 정확성이 중요한 응용 프로그램에서 사용됩니다. 전송 시에 추가적인 오버헤드가 발생할 수 있지만, 데이터의 신뢰성관 안정성을 보장하기 위한 것입니다. ..

hanghae99/TIL 2024.03.27

[항해 취업코스] 취준 기록 17일차

📌 기술면접 예상 질문 1. @Override 애너테이션을 사용하는 이유에 대해서 설명해 주세요. 컴파일러가 해당 메서드가 상위 클래스 또는 인터페이스의 메서드를 오버라이딩 했는지 검증이 가능합니다. 이를 통해 메서드명이나 매개변수가 일치하지 않을 경우 컴파일 에러가 발생하므로 오버라이딩 관련 오류를 미리 방지할 수 있습니다. 오버라이딩한 메서드임을 명시함으로써 코드의 가독성이 향상됩니다. 또한, 다른 개발자들이 오버라이딩하는 것임을 명확하게 이해할 수 있습니다. 2. 프로세스와 스레드 차이에 대해서 설명해 주세요. 프로세스는 컴퓨터에서 실행 중인 프로그램으로, 각각의 독립된 가상 메모리 공간을 할당받아 실행합니다. 독립된 공간을 가지고 있어 다른 프로세스에게 영향을 미치지 않고 독립적으로 실행합니다. ..

hanghae99/TIL 2024.03.26

[항해 취업코스] 취준 기록 16일차

📌기술면접 예상 질문 1. Map, Set, List 차이에 대해 설명해 주세요. Map은 key-value쌍으로 이루어집니다. key는 중복이 불가능하므로 key값을 기준으로 검색할 때 사용하기 유용합니다. Set은 중복을 허용하지 않고 순서를 보장하지 않습니다. 따라서 고유한 값을 관리할 때 사용하기 유용합니다. List는 순서가 있는 데이터의 집합으로 중복을 허용합니다. 인덱스를 사용하여 각 요소에 접근할 수 있고 데이터의 삽입, 삭제, 검색 작업에 유용합니다. 2. ArrayList, List 차이에 대해 설명해 주세요. List는 Java 컬렉션 프레임워크 인터페이스 중 하나로, 순서가 있는 데이터들의 컬렉션을 나타냅니다. List 인터페이스의 구현체로 ArrayList, LinkedList가 ..

hanghae99/TIL 2024.03.25

[항해 취업코스] 취준 기록 15일차

📌 프로젝트 관련 예상 질문 1. Spring @ControllerAdvice 애너테이션의 동작 원리에 대해 자세히 설명해주세요. @ControllerAdvice 애노테이션은 전역적인 예외 처리를 담당하는 클래스를 정의할 때 사용됩니다. 이 클래스는 여러 컨트롤러에서 발생하는 예외를 한 곳에서 처리할 수 있도록 도와줍니다. @ControllerAdvice가 적용된 클래스는 @ExceptionHandler 메서드를 사용하여 애플리케이션에서 발생하는 예외를 처리합니다. 특정 예외 타입에 대한 처리 로직을 정의하고, 해당 예외가 발생했을 때 실행됩니다. 따라서 여러 컨트롤러에서 발생한 예외를 일관된 방식으로 처리할 수 있습니다. 2. Checked Exception과 Unchecked Exception에 대해..

hanghae99/TIL 2024.03.22

[항해 취업코스] 취준 기록 14일차

📌 프로젝트 관련 예상 질문 1. Soft delete에 대해 설명해주세요. Soft delete는 데이터를 물리적으로 삭제하는 것이 아니라, 삭제된 것처럼 처리하는 기술을 말합니다. 일반적으로 데이터베이스 테이블에 삭제됨을 나타내는 컬럼을 추가하고, 해당 컬럼에 삭제된 데이터를 표시합니다. 이렇게 하면 시스템에서 더 이상 검색되거나 표시되지 않지만, 실제로는 데이터베이스에 여전히 존재하게 됩니다. 2. 좋아요 기능을 만들 때, 좋아요 등록 취소를 2개의 API하는 것과, 하나의 API로 토글 방식으로 하는 것의 장단점은 무엇일지 개인적인 의견을 말해주세요. 두 개의 API를 사용하는 경우 기능이 분리되어 구현되므로 코드의 모듈화와 유지보수가 용이하고 동작을 명확하게 이해할 수 있습니다. 하지만 두 번의..

hanghae99/TIL 2024.03.21

[항해 취업코스] 취준 기록 13일차

📌 프로젝트 관련 예상 질문 1. DTO에 대한 설명과 함께 왜 Entity 인스턴스를 Client에 그대로 전달하면 안되는지에 대해 설명해주세요. DTO란 프로세스 간에 데이터를 전달하는 객체를 의미합니다. DTO는 보통 객체의 데이터 일부 또는 전체를 포함할 수 있습니다. 엔티티는 보통 데이터베이스와 직접 연관되어 있어, 클라이언트에 그대로 전달하면 안 됩니다. 대신 DTO를 사용하여 클라이언트는 필요한 데이터만 수신하고, 민감한 데이터에 대한 접근을 제한할 수 있어 보안과 효율성을 높일 수 있습니다. 또한, 엔티티의 구조를 변경하더라도 클라이언트는 DTO의 구조만 수정하면 되므로 유지보수가 편리합니다. 2. JPA의 연관관계와 외래키에 대해서 설명해주세요. JPA 연관관계는 객체 간의 관계를 매핑시..

hanghae99/TIL 2024.03.20

[항해 취업코스] 취준 기록 12일차

📌 프로젝트 관련 예상 질문 1. 좋아요 기능과 팔로우 기능을 구현하기 위해 설계하신 DB Schema에 대해 자세히 설명해주세요. 좋아요는 사용자가 특정 게시물이나 댓글에 좋아요를 누르는 기능으로 설계했습니다. 좋아요 테이블은 각각의 좋아요마다 해당되는 사용자의 ID와 게시물이나 댓글의 ID를 외래키로 받아와 1:N 관계를 설정했습니다. 즉, 여러 사용자가 여러 게시물에 좋아요를 누를 수 있습니다. 팔로우는 사용자 간의 팔로우 관계를 나타냈습니다. 팔로우 테이블은 각각의 팔로우 관계마다 팔로워와 팔로잉의 사용자 ID를 외래키로 받아와 1:N 관계를 설정했습니다. 즉, 한 사용자가 여러 명을 팔로우 할 수 있고, 한 사용자가 여러 사람에게 팔로우를 받을 수 있다는 것을 의미합니다. 2. 좋아요 Entit..

hanghae99/TIL 2024.03.19