파이썬과 장고에 진심인 소프트웨어 개발자
파이썬/장고 질답 및 교육서비스, 파이썬 사랑방 주인장
파이썬 사랑방 with Django/React 커뮤니티 (구. Ask Django) 운영자
(전) Microsoft Azure MVP 어워드 수상 (2016년~2022년)
대외 활동
오프라인 교육 : SK텔링크, LS그룹, 삼성 디스플레이, 부산대학교 정보화본부, 서울대학교 벤처경영학연합전공, 패스트캠퍼스 웹서비스 개발 캠프 3기 등
기술 자문 : 유클리드소프트, 부산대학교, 한국산업기술평가관리원, 한국방송통신전파진흥원 등
여러분의 파이썬/장고/리액트 페이스메이커가 되겠습니다. 😉
Khóa học
Đánh giá khóa học
- Tạo dịch vụ trò chuyện trên web bằng Python/Django (Kênh Feat.) - Cơ bản
developestudy3828
·
Hướng dẫn hoàn hảo phát triển dịch vụ web Python/Django với React (dựa trên Django 4.2)Hướng dẫn hoàn hảo phát triển dịch vụ web Python/Django với React (dựa trên Django 4.2)- Python Django nhập môn bắt đầu với triết lý thiết kế Django
- Python Django nhập môn bắt đầu với triết lý thiết kế Django
- Python Django nhập môn bắt đầu với triết lý thiết kế Django
Bài viết
Hỏi & Đáp
08-14 FormView 관련 질문
안녕하세요.FormView에서 ModelForm을 못 쓸 이유는 전혀 없구요. 강의에서는 단지 ModleForm이 아닌 Form을 사용하는 환경에서는 이렇게 저장을 구현함을 보여드리기 위함이었습니다.ModelForm을 쓰실 때에는 보여주신 코드대로 구현하시면, 퍼펙트합니다. 👍질문에 감사드립니다. :-)
- 0
- 1
- 19
Hỏi & Đáp
07-01 IPv4AddressIntegerField 질문
안녕하세요.답변이 조금 늦어 죄송합니다.성지님께서 말씀하신 내용이 맞구요. 제가 조금 더 정리를 해보겠습니다. :)get_prep_value 메서드장고 내부에는 SQL Compiler를 통해 SQL을 생성합니다. save, create 외에도 조회 시에도 모델 필드 값 참조가 필요하니깐요. 해당 모델 필드를 통해 SQL을 생성할 때 get_prep_value 메서드를 호출합니다.ex) 모델 필드에서는 bool 타입이지만 데이터베이스에는 'Y', 'N' 문자열로 저장코자 할 때에 True -> 'Y', False -> 'N' 변환이 필요하겠습니다.from_db_value 메서드반대로 장고 모델/쿼리셋을 통해 데이터베이스에서 읽어온 필드값을 from_db_value 메서드를 통해, 그 모델 필드 성격에 맞는 값으로 변환합니다.ex) 데이터베이스에서는 'Y', 'N' 문자열로 저장하지만, 장고 모델 단에서는 bool 타입으로 처리코자 할 때에, 'Y' -> True, 'N', -> False 변환이 필요하겠습니다.to_python어떤 값을 해당 모델 필드에 필요한 타입/값으로 변환하는 메서드입니다. 허용된 범위의 값이 아니라면 ValudationError를 발생시켜야 합니다.ex) DateTimeField : datetime 객체인데, 장고 프로젝트에서는 timezone 지원이 켜져있다면, timezone이 있는 datetime 객체로 변환모델의 clean 메서드와 choices 옵션 지정 시에도 값 변환을 목적으로 호출됩니다.그리고 모델 필드에 따라 get_prep_value 메서드에서 to_python 메서드를 호출하여 값 변환을 하기도 합니다.--좋은 질문 주셔서 감사드리구요. 살펴보시다가 더 궁금한 점 있으시면 댓글 부탁드립니다.화이팅입니다. :-)
- 0
- 1
- 31
Hỏi & Đáp
nextjs git 관리?
안녕하세요.Mono/Multi Repo에 대한 부분은 정답은 없고, 페이스북과 같은 곳에서도 어떤 방법이 좋을까에 대해서 계속 고민하고 상황에 따라 바꿔가더라구요.Mono Repo는 Django와 Next.js 를 하나의 팀에서 개발하고, 프론트/백엔드 동시 수정이 잦고, 프로젝트 전체 구조 파악이 중요할 경우에 선택해볼 수 있겠구요.Multi Repo는 Django 팀과 Next.js 팀이 명확히 분리된 경우, 그리고 각 팀의 권한 관리가 중요할 경우에 Multi Repo를 선택해보실 수 있으시겠습니다.처음 시작하신다면 Mono Repo로 시작해보시고, Repo 분리의 필요성이 느껴지실 때, Mutl Repo를 고민해보시면 어떨까요?살펴보시고 댓글 남겨주세요.화이팅입니다. :-)
- 0
- 1
- 25
Hỏi & Đáp
14-08 수업 확인 요청 드립니다.
안녕하세요.첫번째 스샷의 코드는 Next.js 코드로서 서버 단에서 장고 서버로 fetch 호출하는 하는 코드입니다. Next.js 에서는 getServerSideProps 함수는 서버 단에서 호출됩니다. 그러니 세션 인증을 위해서, 장고 요청의 sessionid 쿠키를 요청 헤더에 담아서 보냈어야 했구요.(사진)그 다음에 보여주신 코드는 웹브라우저 단에서 수행되는 fetch 코드입니다. 웹 브라우저 단에서 호출을 하니, 브라우저에서 알아서 sessionid 세션쿠키를 전송해주니까 별도로 헤더 설정이 필요없는 상황이 된 것입니다.(사진)같은 JS 코드이지만, 어느 단계에서 수행되는 지에 따라 필요한 설정이 달라집니다.살펴보시고, 댓글 부탁드립니다.질문에 감사드립니다. :-)
- 0
- 2
- 32
Hỏi & Đáp
14-07에서 SESSION_COOKIE_DOMAIN = None 처리 필요.
14-06 영상에서 아래와 같이 설정을 한 이유는SESSION_COOKIE_DOMAIN = env.str("SESSION_COOKIE_DOMAIN", default=None) or NoneSESSION_COOKIE_DOMAIN 환경변수가 있으면 읽어서 settings에 반영하기 위함입니다.그런데, SESSION_COOKIE_DOMAIN 환경변수가 빈 문자열이 들어있는 경우에도 django-environ 라이브러리에서는 값이 있는 것으로 판단하기에 None 값이 들어가는 것이 아니라, 빈 문자열로서 settings.SESSION_COOKIE_DOMAIN = "" 값이 됩니다. 빈 문자열인 경우에도 None 값으로 변환하기 위해 끝에 or None 코드를 추가하나 것입니다. "" or None 의 평가는 None이 되거든요.settings.SESSION_COOKIE_DOMAIN 설정에는 반드시 None 이거나 지정 도메인이 들어가야 합니다. 그렇지 않다면 csrf 체크에서 엉뚱하게 동작합니다.아래는 django/middleware/csrf.py 코드 중 일부입니다.(사진)https://github.com/django/django/blob/a3b1107a4955bdd994908efb4c6e1d03c281e69f/django/middleware/csrf.py#L322settings.SESSION_COOKIE_DOMAIN 값을 None으로 하드코딩하셨을 때 잘 동작하신다면,settings.SESSION_COOKIE_DOMAIN 값이 환경변수 값으로 인해 아마 다르게 지정되지 않으셨을까 싶어요.장고 쉘을 구동하셔서 아래 값을 확인해보셨으면 합니다.from django.conf import settingsprint(repr(settings.SESSION_COOKIE_DOMAIN))확인해보시고 댓글 부탁드립니다. :-)
- 0
- 2
- 24
Hỏi & Đáp
pycharm 프로 에디션
안녕하세요.신규 JetBrains 계정에 대해 1달 체험 계정은 아직도 여전히 지원되고 있습니다. 새로운 이메일로 JetBrains 계정을 만드셔서 다시 확인해보시겠어요?
- 0
- 2
- 21
Hỏi & Đáp
메일 전송하는 부분은 어떨때 쓰는건가요?
안녕하세요.장고 management command의 경우, call_command 메서드를 통해 지정 명령을 호출하실 수 있습니다.https://docs.djangoproject.com/en/5.2/ref/django-admin/#running-management-commands-from-your-code그런데 이메일 전송의 경우, 다양한 곳에서 사용될 수 있으니 call_command를 쓰시기보다, 별도 함수로 구현하시고 management command에서는 함수를 호출해서 쓰시는 것이 관리성이 더 나으실 수 있으실 듯 합니다.살펴보시고 댓글 남겨주세요. :-)
- 0
- 1
- 40
Hỏi & Đáp
고민
안녕하세요.오늘 5/13(화), 오후 10시에 아래 zoom 으로 들어오세요.https://us05web.zoom.us/j/83005494975?pwd=b0XoKw8k4h3ZaLB0lteEa7MVFBqTIz.1다른 분들도 관심있으신 분들은 들어오셔서, 인사 나누시죠. :-) 1시간 정도 진행해보겠습니다.
- 0
- 3
- 152
Hỏi & Đáp
고민
안녕하세요. 그런 고민이 있으셨군요. :-) 저랑 Zoom으로 한 번 미팅을 해보며 질답을 나눠보시면 어떨까요?오늘 저녁 10시나 내일 저녁 10시에 1시간쯤 이야기나눠보고, 괜찮으면 또 시간 잡아보구요.질문 주시면, 강의에서 다루지 못했던 다양한 이야기들을 나눌 수 있을 듯합니다.관심있으신 다른 분들도 함께 하셔도 좋구요. 관심있으신 분들 있으시면 댓글 남겨주세요. ㅎㅎ.감사합니다.
- 0
- 3
- 152
Hỏi & Đáp
'venv' 같은 이름의 가상환경 만들지마세요
안녕하세요. 의견 감사드립니다.저는 가상환경을 어디에 만드느냐에 따라 가상환경의 이름을 다르게 짓고 있습니다.현재 프로젝트 내에 가상환경을 만든다면, 이미 그 프로젝트 내에 생성한 것 만으로 그 프로젝트에서 사용할 가상환경 임이 명시적이니까 venv 혹은 .venv 이름으로 가상환경 이름을 지어도 충분할 것입니다.요즘 핫한 uv 의 경우에는 uv venv 명령을 입력하면 .venv 폴더에 가상환경을 생성합니다.그런데, anaconda python의 conda 환경처럼 모든 가상환경이 하나의 폴더에 모여 관리될 때에는 프로젝트 명으로 가상환경을 지어서 사용하고 있습니다.감사합니다. :)
- 0
- 1
- 104