profile
안녕하세요.

모의 면접 질문 리스트 정리

어떤 기능을 하는 프로젝트인가요?타 비슷한 프로젝트에 비해서 장점이 무엇인가요?프로젝트의 핵심 목표는 무엇인가요?추천 로직이 어떻게 되나요? (홈 + 챗봇)추천 시스템에서 사용한 알고리즘은 무엇인가요?추천 결과의 정확도를 어떻게 평가했나요?프로젝트 진행 중 갈등이 발생

2일 전
·
0개의 댓글
·

프로세스 기초

프로세스 정의 실행 중인 프로그램을 의미 각 프로세스는 독립된 메모리 공간과 실행 상태를 가짐프로세스 제어 블록(PCB) 프로세스의 상태, 프로그램 카운터, 레지스터, 메모리 관리 정보, I/O 상태 등의 정보를 저장하는 자료구조PCB는 운영체제가 프로세스를 관리하

4일 전
·
0개의 댓글
·

운영체제

운영체제(OS)의 정의 컴퓨터 하드웨어와 응용 프로그램 사이에서 자원을 효율적으로 관리하는 소프트웨어 사용자와 하드웨어 간의 인터페이스 역할 수행주요 역할 프로세스, 메모리, 파일, 입출력 장치 등 시스템 자원 관리 시스템의 안정성과 효율성 보장프로세스와 스레드

4일 전
·
0개의 댓글
·

프로젝트 발표 회고

다른 조들의 발표를 경청하면서 모두가 정말 열심히 준비했다는 걸 느꼈다. 각 팀이 각자의 방식으로 고민하고, 개발하고, 완성해가는 과정이 고스란히 발표에 담겨 있어서 감탄스러웠다. 다만 A, B 발표장이 나뉘어 있어서 다른 발표장의 조들이 어떤 발표를 했는지 직접 듣지

5일 전
·
0개의 댓글
·

Django 쿼리 최적화

Django는 ORM을 사용하여 SQL 쿼리를 자동 생성하지만, 잘못된 사용은 성능 저하를 유발할 수 있음.Django 공식 문서에서 추천하는 쿼리 최적화 방법을 정리.ForeignKey, OneToOneField 관련 데이터를 함께 조회하여 N+1 문제 방지대량 데이

2025년 1월 29일
·
0개의 댓글
·

Django verbose_name

verbose_name은 Django 모델 필드의 사람이 읽기 쉬운 이름을 정의하는 옵션.기본적으로 필드명이 snake_case일 경우, Django는 자동으로 \_을 공백으로 변환하여 UI에서 표시.하지만, 보다 직관적인 필드명을 제공하기 위해 직접 verbose_n

2025년 1월 29일
·
0개의 댓글
·

Python PEP 8 요약

들여쓰기: 4칸의 스페이스(space) 사용, 탭(tab) 사용 금지라인 길이: 최대 79자 (긴 줄은 \\ 또는 괄호로 감싸서 줄바꿈)빈 줄: 최상위 함수·클래스 앞에 2줄, 메서드 간 1줄순서: 표준 라이브러리 → 서드파티 → 로컬 모듈 (각 블록 사이 한 줄 띄움

2025년 1월 29일
·
0개의 댓글
·

프로젝트 리팩토링 피드백

프로젝트에 사용하지 않는 파일이 깃허브에 업로드되어 있어 관리 효율성이 떨어짐조치: 사용하지 않는 파일과 코드를 확인 후 삭제모델의 주석 대신 verbose_name 속성을 사용하여 각 필드의 역할을 명확히 설명하는 Django 권장 방식을 따름verbose_name은

2025년 1월 27일
·
0개의 댓글
·

steam_data 로직 수정

기존에 Selenium을 사용하던 부분을 전부 제거하고, requests와 BeautifulSoup로 대체했다.steamId가 항상 64비트라고 가정하여, 커스텀 URL 변환(resolve_vanity_url)이나 steam_id_str.isdigit() 같은 로직도

2025년 1월 26일
·
0개의 댓글
·

[트러블 슈팅]셀레니움 방식 크롤링 수정

AWS 서버에서 Selenium을 이용해 리뷰를 크롤링하는 코드를 실행했더니 CPU 사용량이 100%에 근접하는 현상이 발생하였다. EC2 같이 스펙이 낮은 서버에서 헤드리스 크롬(Chromedriver)을 구동할 경우, 브라우저 엔진이 동작하면서 리소스 사용량이 크

2025년 1월 25일
·
0개의 댓글
·
post-thumbnail

배포단계 문제

팀원이 작성한 트러블 문서를 정리했습니다.문제 상황:Selenium을 사용한 크롤링 과정에서 헤드리스 브라우저가 예상보다 많은 메모리를 사용했습니다.동시 접속 시 CPU 사용률이 100%까지 치솟아 서버가 불안정했습니다. 해결 방법:RAM 스왑 설정: \- 하드

2025년 1월 24일
·
0개의 댓글
·

페이지네이션 구현과 코드 리팩토링

기존 코드에서 페이지네이션이 없었던 ReviewSearchAPIView를 개선하여, 페이지네이션 기능을 추가하고, 클라이언트가 요청한 페이지에 따라 데이터를 효율적으로 반환하도록 수정했습니다.모든 데이터 반환: 검색 결과를 한 번에 모두 반환하여, 결과가 많아질 경우

2025년 1월 23일
·
0개의 댓글
·

[트러블 슈팅] 게임 상세 페이지에서 클릭한 리뷰 강조

요구사항: 리뷰 목록에서 특정 리뷰를 클릭했을 때, 게임 상세 페이지에서 해당 리뷰를 눈에 띄게 표시하고 나머지 리뷰와 구분하여 관리하고 싶었습니다.현상: 기존 API 구조가 이를 지원하지 않았습니다. review_id를 통한 클릭한 리뷰의 강조가 필요하다고 생각했습니

2025년 1월 21일
·
0개의 댓글
·

[트러블 슈팅] 신규 유저 Steam_data 즉시 반영 필요

기존 로직(전체 DB를 일괄 업데이트하는 커맨드)으로는 새로 가입한 유저가 스팀을 연동했을 때 즉각적으로 DB에 반영되지 않는 문제가 있었다.이를 해결하기 위해 신규 유저가 스팀 계정을 연결하자마자 DB에 정보를 저장할 수 있도록 별도의 모듈 함수를 만들고 기존 회원가

2025년 1월 21일
·
0개의 댓글
·

[트러블슈팅] 리뷰 작성할 때 content 필드에 데이터가 저장되지 않는 문제와 블러 처리 구현

새 리뷰를 생성할 때, POST 요청에 포함된 content 값이 데이터베이스에 저장되지 않는 문제가 발생했습니다. 이와 동시에 차단된 사용자의 리뷰를 조회할 때 내용을 블러 처리하는 기능을 구현하려고 했습니다. 하지만 두 기능이 충돌하면서 아래와 같은 문제가 발생했습

2025년 1월 19일
·
0개의 댓글
·

[트러블 슈팅]알림 모델 개선

알림 유형 구분의 어려움:알림 유형을 숫자(int)로 관리하다 보니, 코드에서 의미를 직관적으로 파악하기 어려움예: type=1이 무엇을 의미하는지 명확하지 않음알림 상태 관리의 불편함:알림의 읽음 여부(is_read)를 별도로 관리하지 않아, 사용자가 읽은 알림을 처

2025년 1월 19일
·
0개의 댓글
·

[트러블 슈팅] 친구 요청 및 친구 관리 기능 구현

상황: 초기에는 type 필드를 활용하여 요청 상태를 0(대기), 1(수락), -1(거절)로 관리하려 했습니다. 그러나 데이터베이스에 거절된 요청을 계속 유지하는 방식은 복잡성을 증가시키고, 성능 저하 가능성이 있었습니다해결:거절된 요청은 데이터베이스에서 삭제요청 수락

2025년 1월 18일
·
0개의 댓글
·

친구 요청 및 친구 관리 기능 구현 과정

처음에는 친구 요청과 친구 관리를 단순하게 처리하려 했으나, 구현 과정에서 여러 경우의 수를 고려해야 했습니다:친구 요청 상태 관리 (type 필드):type=0: 대기 중type=1: 수락(친구 관계 형성)type=-1: 거절친구 요청과 친구 관리의 분리:친구 요청과

2025년 1월 18일
·
0개의 댓글
·

차단한 사용자의 리뷰 블러 처리 구현

우리 프로젝트의 주요 요구사항 중 하나는 사용자가 차단한 유저의 리뷰를 블러 처리하는 기능이었습니다. 이 기능은 사용자 경험을 개선하기 위한 중요한 요소로, 리뷰를 조회할 때 차단된 사용자의 리뷰를 숨기거나 대체 메시지로 표시해야 했습니다.회원: 차단한 사용자의 리뷰를

2025년 1월 17일
·
0개의 댓글
·

차단 기능 구현 의사결정 과정

Block 기능특정 유저를 차단하거나 차단 해제할 수 있도록 API를 제공차단된 유저의 리뷰가 블러 처리되거나 제외됨차단된 유저와의 채팅 제한처음에는 Django의 Many-to-Many 필드를 사용하려고 했습니다. 하지만 아래와 같은 이유로 명시적인 Block 모델을

2025년 1월 16일
·
0개의 댓글
·