프로젝트

29. HTTP METHOD 에 대해서 아는만큼, 중요하다고 생각하는 순서로 설정해주세요 "HTTP 메서드의 중요성은 그 사용 빈도와 애플리케이션에서의 역할에 따라 다르지만, 일반적으로 가장 자주 사용되며 핵심적인 메서드부터 설명드리겠습니다. 첫 번째로, GET 메서드는 정보를 조회하는 가장 기본적인 방법으로, 웹 애플리케이션 개발에서 빼놓을 수 없는 메서드입니다. 두 번째로, POST 메서드는 서버에 데이터를 제출하여 리소스를 생성하는 데 사용되며, 폼 제출이나 메시지 전송에 주로 쓰입니다. 세 번째, PUT 메서드는 기존 리소스를 업데이트하거나 새 리소스를 생성할 때 사용됩니다. 네 번째, DELETE 메서드는 리소스를 삭제하는 데 사용되며, 마지막으로 PATCH 메서드는 리소스의 일부를 업데이트할 ..
Docker를 사용하는 이유에 대해서 설명해주세요 "Docker를 사용하는 이유는 개발에서 배포까지의 과정을 통일하고 효율화하기 위해서입니다. Docker 컨테이너는 애플리케이션과 그 종속성을 함께 패키징하여, 어떤 환경에서도 동일하게 실행될 수 있도록 보장합니다. 또한, Docker는 빠른 시작 시간과 용이한 확장성으로 인해 온디맨드 서비스 제공이 가능하게 하며, 각 컨테이너의 격리된 환경은 종속성 관리를 간소화합니다. 이미지의 재사용성은 개발 효율성을 높이며, 이식성을 통해 다양한 운영 체제에서의 실행을 지원합니다. Docker의 이러한 이점들은 애플리케이션의 개발, 테스트, 배포를 더욱 신속하고 안정적으로 만들어 줍니다." 꼬리 질문 > Docker 컨테이너의 격리된 환경은 어떻게 종속성 관리를 간..
21. 설계 하신 ERD 에서 Entity를 나눈 기준은 어떤 것이며, 팔로우 팔로잉 관계를 저장, 구현 하기 위해 어떤 구조를 사용 하셨나요? "ERD를 설계할 때 주안점을 둔 것은 엔티티 간의 명확한 관계 설정, 데이터 무결성의 보장, 시스템의 확장성 및 유지 보수성, 그리고 사용자 경험의 최적화였습니다. 예를 들어, 사용자와 게시글 간의 관계를 명확히 하기 위해 'posts' 테이블에서 'userId'를 외래 키로 사용하여 'users'와의 연결을 정의했습니다. 이러한 방식은 데이터의 정확성을 유지하며, 시스템 변경에 유연하게 대응할 수 있도록 합니다. 특히, 팔로우 기능 구현을 위해서는 'follows' 테이블을 디자인했는데, 여기서는 사용자 간의 팔로우 관계를 나타내기 위해 '팔로우ID'와 '팔..
17. 비밀 번호 암호화 시 어떤 알고리즘을 사용 하였나요? "저희 시스템에서는 사용자의 비밀번호 보안을 위해 BCrypt 알고리즘을 사용하는 `BCryptPasswordEncoder`를 사용했습니다. BCrypt는 솔트(Salt)를 사용한 해시 함수의 일종으로, 솔트는 암호화된 비밀번호에 임의의 문자열을 추가하여, 동일한 비밀번호라도 다른 해시 값을 생성합니다. 이 방식은 레인보우 테이블 공격 같은 일반적인 해킹 기법의 효율을 크게 떨어뜨립니다. `BCryptPasswordEncoder`는 스프링 시큐리티에서 제공하는 클래스로, 비밀번호를 안전하게 암호화하고, 사용자가 입력한 비밀번호와 저장된 해시 값을 비교하는 기능을 제공합니다. 각 비밀번호에 대해 유니크한 솔트를 생성하고, 이를 해시 과정에 사용함..
13. Email 인증을 구현 하셨는데 그렇다면 SMTP & POP3 & IMAP 프로토콜에 대해 설명해주세요. "SMTP(Simple Mail Transfer Protocol), POP3(Post Office Protocol 3), 그리고 IMAP(Internet Message Access Protocol)은 이메일 전송과 수신에 사용되는 주요 프로토콜입니다. SMTP는 이메일을 보내기 위해 사용됩니다. 서버 간 또는 클라이언트에서 최종 메일 서버로 메일을 전송할 때 주로 사용되며, 이메일 전송의 표준 프로토콜입니다. POP3는 이메일 클라이언트가 메일 서버로부터 이메일을 가져올 때 사용됩니다. POP3는 서버에서 메일을 다운로드하고, 로컬 장치에 저장한 후 서버 상의 메시지를 삭제하는 방식으로 작동합..
9. 팔로우 기능을 구현하기 위해 설계하신 DB Schema에 대해 자세히 설명해주세요. "팔로우 기능을 위해 설계한 DB 스키마에는 `follows`라는 테이블을 포함하고 있으며, 이 테이블은 `팔로우ID`, `팔로워ID`를 주요 컬럼으로 사용합니다. 여기에 추가적으로, 각 팔로우 관계의 시작 날짜와 최근 수정 날짜를 나타내는 `시작날짜`, `수정날짜` 컬럼도 포함하여, 팔로우 관계의 생성 및 수정 이력을 관리할 수 있게 했습니다. `팔로우Id`와 `팔로워Id` 컬럼은 모두 `User` 테이블의 사용자 ID를 참조하는 외래 키입니다. 이를 통해 어떤 사용자가 다른 사용자를 팔로우하는지에 대한 정보를 저장하고, `User` 테이블과의 연관관계를 통해 사용자의 상세 정보를 불러올 수 있습니다. 연관관계 매..
hihyuk
'프로젝트' 태그의 글 목록