목록전체 글 (146)
개발자 블로그
문제 설명 더보기 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요. 제한..

전역 변수는 주로 변하지 않는 고정 값에 사용 지역 변수는 사용 이유: 지역 변수는 함수 내에 로직 해결에 국한, 소멸주기: 함수 실행 해제 시 내가 선언한 변수의 스코프는 적절한지 알고 사용하자. 한번만 선언해도 참조하여 쓸 수 있었는데 여러 곳에서 산발적으로 선언하여 메모리를 불필요하게 사용하진 않았는지 이러한 성능에 대한 고민을 할 필요가 있다. Global 전역 변수를 지역 변수 스코프에서 수정을 하려고 하면 UnboundlocalError를 만난다. 그럴 때 해당 변수를 global로 해당 변수를 지역 내로 불러와 사용할 수 있다. 하지만, 전역 변수를 지역 내에서 수정 되는 것은 지양해야한다. 코드의 수가 몇만줄 또는 여러 사람들과 협업을 해야할 시 다소 혼잡성을 야기할 수 있다. Nonloc..

문제 설명 더보기 후보키 프렌즈대학교 컴퓨터공학과 조교인 제이지는 네오 학과장님의 지시로, 학생들의 인적사항을 정리하는 업무를 담당하게 되었다. 그의 학부 시절 프로그래밍 경험을 되살려, 모든 인적사항을 데이터베이스에 넣기로 하였고, 이를 위해 정리를 하던 중에 후보키(Candidate Key)에 대한 고민이 필요하게 되었다. 후보키에 대한 내용이 잘 기억나지 않던 제이지는, 정확한 내용을 파악하기 위해 데이터베이스 관련 서적을 확인하여 아래와 같은 내용을 확인하였다. 관계 데이터베이스에서 릴레이션(Relation)의 튜플(Tuple)을 유일하게 식별할 수 있는 속성(Attribute) 또는 속성의 집합 중, 다음 두 성질을 만족하는 것을 후보 키(Candidate Key)라고 한다. 유일성(unique..

배포 - docker / nginx / uwsgi docker docker란? windows에서 virtualbox를 설치해 가상화 환경을 구축하는 것처럼, docker를 사용해 격리 된 공간에서 서비스나 os를 가상화 하여 띄울 수 있다. docker의 격리 된 공간에서 동작하는 것을 컨테이너라 한다. virtual machine과 같이 가상화를 하는 것은 비슷하지만, 구조적으로는 차이가 있다. docker-compose와 같은 container management 프로그램을 사용해 서비스 환경을 쉽게 구축 할 수 있다. 왜 docker를 사용하는가? docker-compose를 활용하면 원하는 아키텍처를 빠르게 구성 할 수 있다. 서비스가 host에서 동작하는 것이 아닌, container에서 동작하..
개념 및 명령어 개념 정리 Linux에서 .으로 시작하는 파일은 숨김 파일로 인식함 ssh를 연결 하는 방법에는 크게 두 가지가 존재함 user@ip with password user@ip with keyfile(.pem) 절대경로 / 상대경로 ./ : 현재 위치를 의미함(상대경로) ../ : 현재 위치에서 상위 디렉토리를 의미함(상대경로) 권한 RWXRWXRWX 소유자 권한 그룹 권한 Other 권한 권한을 숫자로 표현할 경우 R : 4, W : 2, X : 1 용어 정리 root : 최고 관리자 권한, root 권한을 얻는다 == 최고 관리자 권한을 얻는다 VM : Virtual Machine 명령어 sudo $some_commend : 명령어 앞에 sudo를 붙이면 관리자 권한으로 실행됨 apt i..
장고의 프로젝트를 하며 메소드를 커스텀 할 일이 많았다. 기존의 예를 들어 시리얼라이즈의 update 함수를 커스텀 할 때, 기존의 인스턴스를 받아 사용자로 부터 받은 값들을 변경 해주어야하는 함수를 만드는 과정에서 아래와 같은 함수를 알면 좀 이해의 도움이 된다. 그리고 이 외에도 객체의 속성값에 직접 접근하여 값을 수정 및 반환할 수 있지만, 메소드를 사용하여 어트리뷰트의 접근하는 이유는 객체의 본질을 깨지 않게 하기 위함으로 객체가 쉽게 변형이 되지 않게 하기 위함이다. 1. getattr(object, attribute_name [, default]) 매개변수로는 객체와 속성 값의 이름, default를 설정할 수 있고, 해당 어트리뷰트의 value를 가져오는 함수이다. 해당 필드가 없다면 디폴트..
DRF 프로젝트 - 나만의 쇼핑몰 0. core BaseModel(models.Model) 필드 설정 특이사항 updated_at models.DateTimeField(auto_now=True) created_at models.DateTimeField(auto_now_add=True) 1. user User(AbstractBaseUser) 필드 설정 특이사항 username models.CharField("이름") email models.EmailField("이메일 주소", unique=True) USERNAME_FIELD = 'email' password models.CharField("비밀번호", max_length=128) max_length=128 해줘야한다. 패스워드 해시로 저장되면서 글자수가 ..
문제 설명 더보기 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 카카오는 하반기 경력 개발자 공개채용을 진행 중에 있으며 현재 지원서 접수와 코딩테스트가 종료되었습니다. 이번 채용에서 지원자는 지원서 작성 시 아래와 같이 4가지 항목을 반드시 선택하도록 하였습니다. 코딩테스트 참여 개발언어 항목에 cpp, java, python 중 하나를 선택해야 합니다. 지원 직군 항목에 backend와 frontend 중 하나를 선택해야 합니다. 지원 경력구분 항목에 junior와 senior 중 하나를 선택해야 합니다. 선호하는 소울푸드로 chicken과 pizza 중 하나를 선택해야 합니다. 인재영입팀에 근무하고 있는 니니즈는 코딩테스트 결과를 분석하여 채용에 참여한 개발팀들에 제공하기 위해..
리눅스 왜 리눅스를 사용하는가 우선 현업에서 대부분 서버를 리눅스를 사용한다. 왜냐면 윈도우는 라이센스란게 있는데 그렇다는 것은 비용이 발생한다는 것. 리눅스는 오픈소스이기에 OS다운 받아서 사용하면 됨. 그리고 리소스 사용이 가성비가 좋다. 즉, 가볍고 비용적인 측면에서 높은 효율. 그리고 원격으로 조정하기에도 좋다. 인터페이스 없이 커멘드로 한다는 뜻! 이외에도 여러가지 이유로 사용한다. 이러한 이유로 지속적으로 발전해서 많은 프로젝트가 리눅스 기반으로 개발되었다고 한다. 설치 방법 -AWS or VirtualBox AWS 돈 주고 쓰는거 VirtualBox 할당해서 사용 AWS 프리티어 -OS Ubuntu 20.04 -> 리눅스에는 ubuntu, 레드햇 이렇게 크게 버전이 있다. OS 다운로드 - ..
product 앱에서 가 포함된 product 테이블을 생성해주세요 django serializer를 사용해 validate / create / update 하는 기능을 구현해주세요 custom validation 기능을 사용해 노출 종료 일자가 현재보다 더 이전 시점이라면 상품을 등록할 수 없도록 해주세요 custom creator 기능을 사용해 상품 설명의 마지막에 “에 등록된 상품입니다.” 라는 문구를 추가해주세요 custom update 기능을 사용해 상품이 update 됐을 때 상품 설명의 가장 첫줄에 “에 수정되었습니다.” 라는 문구를 추가해주세요 product 앱에서 을 담고 있는 review 테이블을 만들어주세요 현재 날짜를 기준으로, 노출 종료 날짜가 지나지 않았고 활성화 여부가 True..