작정하고 장고! 강좌 관련 질문 남겨주시면 답변해드립니다

2021년 1월 16일 8:33 오후

favorite

40

comment

66

yesman_1114

코딩


안녕하세요.

O'NION 개발자입니다.


현재 작정하고 장고! 강좌를 통해 이 사이트와 비슷한 웹 서비스를 구축하는 법을 알려드리고 있습니다.

혹여 여기까지 오신분들중에 관련 질문이 있으시다면,

여기 남겨주시면 제가 답변드리도록 하겠습니다.


물론 강좌플랫폼에서 문의를 올려주셔도 당연히 답변드리지만

여기에 남겨주시면 제가 더 기쁘게 답변드릴수 있어유 ㅋㅋㅋ


따로 프로젝트를 개설해서 질문을 남겨주셔도 괜찮고,

기존에 있던 프로젝트에 질문을 남겨주셔도 괜찮습니다-


개발 질문 프로젝트 : https://onion.haus/project/detail/18

코딩 프로젝트 : https://onion.haus/project/detail/3


아무튼 오시는분들 모두 행복하시고

오늘도 좋은하루 보내시길 바랍니다-


favorite 40
thumb_down 13
kakao_story_share kakao_story_share kakao_story_share

fast_forward 다음글이 없습니다.
fast_rewind Flutter 개발 속도 향상을 위한 단축키 - Android Studio

닉네임 미설정

2021년 1월 20일 10:58 오후

favorite

18

좋아요랑 쉐어 버튼 같은건 하지않으셨는데 어떻게 하는건가요??
AJAX사용해서 하려고하는데 안되서요 ㅠㅠ 강좌 올려주실수있나요 ?

yesman_1114

2021년 1월 20일 11:01 오후

favorite

21

좋아요나 쉐어 기능같은 경우에는
간단한 방법으로 구현해서 막 원하시는 방법이 아닐지도 모르겠다는 생각이 ㅋㅋㅋ

아무튼 한번 시간나는대로 찍어보도록 할게요 ㅎㅎ

닉네임 미설정

2021년 1월 20일 11:00 오후

favorite

13

네네 감사합니다 혹시 Search 도 하고싶어서 생각했는데 그 방법도 같이 찍어주실수 있나요??

yesman_1114

2021년 1월 20일 10:56 오후

favorite

17

Search 라는게 게시글 검색 시스템 같은걸 말씀하시는건가요?

그부분은 조금 힘들수도 있을것 같아유 ㅠㅠ

일단 되는대로 찍어보도록 하겠습니다

닉네임 미설정

2021년 1월 20일 10:58 오후

favorite

16

넵 감사합니다! 이렇게 저도 이쁘게 만들고싶은데 잘안되네요 강의만 계속 그냥 봐서 그런가 그런것같아요

yesman_1114

2021년 1월 20일 10:56 오후

favorite

16

이 이쁘게라는게 참... 힘들죠 ㅠㅠ

디자이너분한테 맡기지 않는이상 디자인은 언제나 개발자에게 힘든것 같아요

닉네임 미설정

2021년 1월 20일 10:57 오후

favorite

16

네 그런것같아요 ㅜㅜ 그리고 그 form 에 자동적으로 제출이라고 써져있는데 댓글달기 아니면 다른걸로 바꾸고싶은데 customize 어떻게하나여?

yesman_1114

2021년 1월 20일 10:56 오후

favorite

13

해당 태그의 "value" 값을 조정해주시면 가능합니다.

예를들어 value="댓글달기" 와 같은 형식으로 적어주시면 해당 내용이 변경됩니다.

닉네임 미설정

2021년 1월 20일 10:58 오후

favorite

14

네네 감사합니다 혹시 도커파일을 깃에다 올리게 되면 이미지파일 생성할때 문제가 돼나요?

yesman_1114

2021년 1월 21일 5:01 오후

favorite

18

이렇게 댓글 남겨주시는게 제입장에서는 더 감사하네요 ㅎㅎ

답변을 드리자면, 아닙니다.
도커파일을 깃에 올린다고 따로 문제가 생기지는 않습니다.

굳이 따지자면, 민감한 정보, 중요한 정보가 적혀있는 Dockerfile 이 공개된 깃 저장소에 올라가게 되면 문제가 생길수는 있겠지만,
일반적인 Dockerfile 을 올리는 것은 전혀 문제가 생기지 않습니다.

닉네임 미설정

2021년 1월 20일 10:57 오후

favorite

16

저의 스승님인데...!!!..!꾸벅 감사합니다 ㅎㅎ

앗 넵넵 그리고 저가 Private 했는데 도커 파일이 읽지 못하더라구요
배포를 하려면 무조건 퍼블릭으로 해야지 할 수 있는건가요 ??

yesman_1114

2021년 1월 21일 1:58 오전

favorite

25

Private으로 하면, 조금 문제가 생깁니다.
일반적인 git clone 명령어로는 소스코드를 가져올 수 없습니다.

어떻게 보면 당연한 것이, Private 한 저장소의 소스코드를 일반 git clone으로 긁어올 수 있는것도 문제겠죠?

private 한 저장소의 코드를 가져오기 위해서는 추가적인 ssh 키 설정이 필요합니다.

'github ssh key 등록' 과 같은 검색어로 구글검색을 하시면 해당 내용을 확인하실수 있을겁니다.

닉네임 미설정

2021년 1월 21일 4:27 오후

favorite

15

질문이있습니다
상위폴터에는 프래그매틱이라고 해놨고
DOCKERfile 에는 깃헙링크에다는 블로그프로젝트이고
CMD라고 돌릴대는 그 상위폴더 맨위에있는 이름이 맞는기 궁금합니다

yesman_1114

2021년 1월 21일 4:27 오후

favorite

16

네 그렇게 적으시는게 맞아보입니다.
github 저장소 이름은 blogProject 이지만, 실제 앱 이름은 pragmatic으로 설정하셨기 때문에, 이렇게 쓰는게 맞습니다.

닉네임 미설정

2021년 1월 21일 4:36 오후

favorite

17

최고...감사합니다!

닉네임 미설정

2021년 1월 22일 7:21 오전

favorite

15

그 도메인은 어떻게 설정하는건가요?? 자동적으로 생기는건가요 ?

yesman_1114

2021년 1월 22일 11:31 오전

favorite

13

아닙니다.
도메인의 경우에는 도메인을 파는 업체로부터 구입한 후에,
해당 도메인을 가상서버와 연결해주는 작업이 필요합니다.

강좌에 굳이 넣지 않은 이유는 도메인이 아무래도 유료이다보니, 구입을 해야해서 제외했습니다.

닉네임 미설정

2021년 1월 22일 4:35 오후

favorite

12

아 넵넵! 그냥 방법만이라도 있었으면 사서라도 했는데 그 방법이 강좌에없어서요 ㅜㅜ

yesman_1114

2021년 1월 22일 4:47 오후

favorite

12

으음 시간이 된다면 나중에 보강 내용으로 추가하는것도 생각해볼게요 ㅎㅎ

닉네임 미설정

2021년 1월 22일 5:40 오후

favorite

13

질문이 하나더 있습니다!
로컬에서 작업을 완료해서 이제 배포를 하려고하면 다시 이미지파일을 만들고 다시 업데이트 해주고 해야하는건가요?

yesman_1114

2021년 1월 22일 10:11 오후

favorite

14

그렇습니다.
물론 장고 컨테이너 내부에 들어가서 직접 git pull 하는 형식으로 내부의 소스만 업데이트 해줄 수도 있습니다만,
이런 방식으로는 한계가 존재하기 때문에, 업데이트 된 소스를 기반으로 새로운 이미지를 만들고 다시 배포하는 방법이 권장됩니다.

닉네임 미설정

2021년 1월 22일 11:27 오후

favorite

11

네네 감사합니다! 매번 이렇게 질문 대답해주시고..!! ㅎㅎ 그 도메인하실때 혹시 https 까지 사용하는법 무엇인지 설명 올려주실수있나요?!

닉네임 미설정

2021년 1월 23일 1:22 오전

favorite

13

그런데 기존에 있는 이미지를 다시 업로드하고 스택을 지우고 다시만들면 모든 디비가 날라가지 않나요 ?

yesman_1114

2021년 1월 24일 12:42 오후

favorite

9

강좌 내에서 진행한 대로 스택 설정이 제대로 되어있다면 스택을 지웠다가 다시 만들어도 디비 내의 정보는 그대로 저장이 됩니다

rain

2021년 3월 15일 12:19 오후

favorite

5

안녕하세요
27강 에서 코드 마지막까지 작성 후 (필요없다고 하셧지만 ~ ㅎ) 탈퇴 처리가 되지 않아요

45강까지 끝내고 문의글 자체 수정 ^^:
26강 27강 다시 따라해보니 해결돔 >>>>오타난 것임

yesman_1114

2021년 2월 6일 7:54 오후

favorite

4

Rain님 안녕하세요!

탈퇴처리가 안되는 질문을 남겨주셨는데, 어떤식으로 안되는지 조금더 정보를 주시면 답변 드리는데 도움이 될것 같습니다 ㅠㅠ

에러 메시지가 나온다면 해당 내용도 좋구요!
아니면 어떤 동작을 했을때 어떤 결과가 나오는지등 알려주시면 좀 더 정확하게 답변을 드릴수 있을것 같습니다.

rain

2021년 3월 15일 12:20 오후

favorite

7

27강 코드작성 후 login>>mypage>>quit button 누르면 아무 동작도 안해요 ~ ;
아마도 저가 중간에 뭔가 잘못한것 같아요.
30강 까지 코드 작성 후 로그인 >>mypage에서 주소창에 다른 pk 값을 넣어도 이동해 되요, 처음부터 다시 해보고 있읍니다. ~~ 감사합니다~~~

45강까지 끝내고 문의글 자체 수정 ^^:
_pk와 .pk의 차이 >>>> 따라하기 오타

yesman_1114

2021년 2월 7일 7:33 오후

favorite

3

제대로 된 답변도 못해드렸는데 감사하다니 제가 되려 감사하네요 ㅠㅠ

혹시나 계속 진행하시다가 또 문제가 있다면 질문 남겨주세요!

rain

2021년 3월 15일 12:25 오후

favorite

5

안녕하세요
33강 끝나고 detail페이지에서 로그인 혹은 로그아웃 이후에도 다른id값을 넣으면 에디터 버튼과 탈퇴버튼을 제외한 정보는 보여 지는데 .. 아마도 오타가 난것 같은데 어딜 찾아 보면 될까요 ? ; ; ;
오타 찾다가 못 찾고, 그냥 디버거 해보니까 아래와 같은 메세지가 나오는데 .. 몰라서 질문합니다.
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

45강까지 끝내고 문의글 자체 수정 ^^:
[ . ] 과 [ _ ] >>> 오타
몇가지 질문이 다 오타임
다른 분들도 질문하시기 전에 오타 점검하시기를 ㅋ ㅋ ㅋ ......

yesman_1114

2021년 2월 16일 6:03 오후

favorite

3

안녕하세요!

로그인 , 로그아웃 이후에도 에디트 버튼 그리고 탈퇴버튼을 제외한 정보가 보여지는데,
아래의 에러가 나와서 제대로 해당 기능이 구동되지 않는다는 질문이신가요?

일단 그렇게 이해를 하고 답변을 드리겠습니다.

template 이랑 view쪽을 만지는 내용이 대부분인 33강인데 INSTALLED_APPS 관련한 에러가 뜨는 것을 보니 확실히 오타가 난 게 맞을것 같다는 생각이 드네요.

이런 내용의 에러는 아무래도 HTML 파일들 보다는 views.py 를 작성하면서 오타가 생겼을 가능성이 있어 보입니다.

views.py 를 조금 더 자세히 살펴보시고,
혹시 모르니 settings.py 안의
INSTALLED_APPS 값에 강좌에서 만든 앱들이 정확한 철자로 적혀있는지도 확인을 해주시면 좋을것 같구요.

그래도 안된다면 공개된 깃 저장소의 주소를 적어주시면 제가 시간을 내서 봐드릴 수도 있어요!

yesman_1114

2021년 2월 16일 6:05 오후

favorite

4

그리고 해당 질문 다른분들도 보기 위해서 개발 질문 게시판에 같은 내용으로 글을 하나 작성해놓을게요!

rain

2021년 2월 25일 4:23 오후

favorite

5

$ git commit -m "p-17"
[master bd033d3] p-17
2 files changed, 37 insertions(+), 18 deletions(-)
rewrite accountapp/templates/accountapp/hello_world.html (60%)
안녕하세요
커밋 한 내용입니다
REWRITE 60%가 뭔 인가요?

yesman_1114

2021년 2월 25일 5:54 오후

favorite

4

해당 로그는 에러메시지는 아니구 유사성 지표라고 보시면 됩니다.

그러니까 해당 파일에서 변경되지 않은 코드 라인들의 퍼센티지라고 보시면 될것 같아요!

rain

2021년 3월 1일 8:07 오후

favorite

4

안녕하세요
32강에서
1번:profileapp/update 에서는 pk= target_profile.pk
2번:accountapp/detail 에서는 pk = target_user.profile.pk
1번 2번 차이가 뭔가요?
profile은 context_object_name = target_profile 이고 account는 target_user이니까, 2번은 target_user + target_profile를 합친 건가요 (말도 아니지만 ㅋ ㅋ ㅋ)

yesman_1114

2021년 3월 1일 8:22 오후

favorite

3

이 것은 Profile 앱 내부에 작성한 model 부분을 잠깐 보고 넘어가겠습니다.

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')

라고 적혀있습니다.
여기에서 주요하게 보아야 할 부분은

related_name='profile'

입니다.

해당 구문을 적어줌으로서 OneToOneField 에서 설정한 User 객체에서 연결되는 Profile 객체를 'profile' 이라는 이름으로 호출할 수 있게 됩니다.

그러니까 target_profile.pk 의 경우
profileapp 내부의 View 에서 직접 다루는 객체가 Profile 이기 때문에

target_profile.pk

와 같이 해당 pk를 그대로 사용할 수 있지만,

Account 앱 내부의 View 안에서는 Profile 객체를 직접적으로 다루지 않고
User 객체를 다루기 때문에, 해당 User 객체에서 연결되는 Profile 객체를 호출하기 위해서

target_user.profile.pk

와 같이 profile 이라는 related_name 구문을 사용해서 저희가 원하는 profile 객체의 pk를 알아내는 형식입니다.

rain

2021년 3월 5일 3:13 오후

favorite

4

하나의 모델에서 오타를 수정 후 migration을 여러번 다시 해도 상관 없는 가요?
기본도 없고, 아무것도 모르고 무작정 따라하다 보니 질문 수준이 그렇습니다 ; ;

yesman_1114

2021년 3월 5일 9:42 오후

favorite

5

안녕하세요!

오타 수정으로 인해서 migrate 한 이후 다시 해당 작업을 해도 문제는 없는 것으로 압니다.
해당 app 경로 안의 migrations 파일 중에서
오타가 난 migrations 파일을 지우거나,
스킵하거나, 조작하거나 하지 않는이상 문제는 없을 것으로 압니다.

아니면 오타가 나거나, migration에 문제가 생기면
이전에 진행했던 특정 migration으로 DB를 되돌리는 방법도 가능합니다.

python manage.py migrate <app_name> 0002

와 같은 명령을 사용하게 되면,

이런식으로 makemigration 명령을 통해 만들어지는 특정번호를 지정해
해당 migration으로 되돌아가는 방법도 가능하니,
참고해주시면 좋을 듯 합니다.

rain

2021년 3월 13일 6:20 오후

favorite

3

안녕하세요
50강에서 pip list에서 강의 화면에는 있는데 내 껏에는
zipp, importlib-metadata ,environ 3가지는 없읍니다,
관계없는 것 인가요 ?

yesman_1114

2021년 3월 13일 9:04 오후

favorite

4

해당 패키지들의 경우에는 저희가 직접 설치하는 패키지가 아닌, 다른 패키지들을 사용하기 위해서 함께 설치되는 패키지로 보입니다.

강좌를 찍는 시점과 달리 특정 패키지가 업데이트 되면서 추가적으로 설치되거나, 없어지는 패키지가 있을 수 있습니다.

현재 상태에서는 문제가 있을지 없을지 확실히 판단이 불가능하기 때문에,
일단 강좌를 진행하시다가 추후에 혹여 문제가 생긴다면 다시 질문 남겨주시길 바래요!

USER#334075132

2021년 3월 14일 9:06 오후

favorite

5

좋은 강좌 감사드립니다.
강좌 질문이 있습니다.
like구현중인데 좋아요버튼을 누르면
article디테일 페이지로 리다이렉트되면서
화면이 페이지 상단으로 이동하는데
좋아요버튼을 누르면 화면이 움직이지
않고 좋아요 버튼부분만 갱신 하려면 어떻게 해야 하나요?

yesman_1114

2021년 3월 15일 9:58 오전

favorite

4

해당 부분은 javascript 로 구현해야 하는 부분입니다.

제 강좌에서는 아무래도 django와 docker에 초점을 맞추다보니, 자바스크립트를 사용하여 구현하는 부분을 없애고, 자바스크립트에 대해서 직접적으로 강좌를 만들지도 않았습니다 ㅠㅠ

해당 기능을 구현하시기 위해서는 javascript, 그리고 ajax 관련한 내용들을 찾아보시길 바랍니다.

비동기적으로 ajax 요청을 보낸 이후, HTTP response의 내용에 따라 문서 안의 좋아요 숫자를 업데이트 하는 형식으로 구현이 가능합니다.

USER#334075132

2021년 3월 15일 12:30 오후

favorite

5

답변 감사드립니다. 많은 도움이 됩니다.

USER#334075132

2021년 3월 15일 8:11 오후

favorite

4

안녕하세요.
회원가입시 메일 인증 후 로그인 기능도 강좌에 포함되어 있나요?
이 기능이 이전부터 되게 궁금했거든요.
강좌에 없다면 사용하신 패키지나 참조사이트 공유해주시면 감사드려요.
강좌 열심히 보고 많은 도움이 되고 있습니다. 항상 감사합니다.
(강좌로 올려주시면 더더욱 감사드립니다.)

yesman_1114

2021년 3월 15일 8:29 오후

favorite

4

으음.. 해당 내용은 강좌로 하기엔 너무 복잡하다보니 아무래도 힘들지 않을까 싶습니다.

너무 복잡해지다 보면 제가 쉽게 풀어내는데에도 한계가 있고,
보시는분들도 그렇게 깊이까지는 따라오지 않으시더라구요 ㅠㅠ

뭐 언젠가 할지도 모르겠지만 한동안은 이래저래 일이 있다보니 아마 못찍지 않을까 싶습니다.

강좌 제작은 별개로 일단 답변을 드리자면,
해당 내용의 키워드는 SMTP, django email verification, Tokengenerator 등입니다.

기본적으로는 새로운 계정을 생성할때, is_active 컬럼을 false로 설정하고,
생성하는 동시에 SMTP 프로토콜을 기반으로 계정을 생성하면서 적은 이메일로 확인 이메일을 token과 함께 전송합니다.
그리고 해당 토큰 기반의 url에 정상적으로 접근하게 되면,
해당 계정의 is_active 컬럼을 true 로 설정하면서 활성화시키는거죠.

이런식이긴 하지만 직접 구현하려면 아무래도 조금 힘든게 사실입니다.
auth 관련 패키지인 allauth 를 찾아보시면 상대적으로 쉽게 구현하실 수 있을 듯 합니다.
한번 찾아보시길 권해드려요!

USER#334075132

2021년 3월 15일 11:16 오후

favorite

5

예, 답변 감사드립니다. 한번 도전해 보겠습니다.

USER#598975296

2021년 3월 24일 9:08 오전

favorite

5

안녕하세요 58강 까지 따라해 보았습니다.
그런데 제 로컬 컴퓨터에서는 이상이 없는데

서버로 배포 하고 나서 Project 를 클릭하면

TemplateDoesNotExist at /projects/list/

오류가 발생되는데요 원인을 모르겠네요

USER#598975296

2021년 3월 24일 9:48 오전

favorite

7

원인을 찾았습니다. 대소문자 문제였습니다

yesman_1114

2021년 3월 24일 9:53 오전

favorite

4

오타가 참 프로그래머 힘들게 하죠 ㅠㅠ
화이팅입니다!

USER#598975296

2021년 3월 26일 4:56 오후

favorite

5

좋아요 강좌 보고 좋아요 기능 까지 만들었는데요
이걸 다시 이미지로 만들어서 테스트 해보니 500 Error 가 생깁니다.

확인해보니 Maria DB 테이블에 like 컬럼이 안생겨 있네요
강제로 컬럼을 추가 해볼려고 해도 안되는데

여기 사이트에서는 어떻게 컬럼을 추가 하신 건가요
산넘어 산이네요

그리고 61강에서 컨테이너 만들때 네트워크만 연결했는데 이전에 볼륨도 설정했었는데 그건 설정 안해도 되는건가요?

yesman_1114

2021년 3월 26일 5:16 오후

favorite

5

일단 먼저, django 에서 ORM 기반으로 DB를 관리하기 때문에, 인위적으로 DB를 접속하셔서 변경을 절대! 하시면 안됩니다 ㅠㅠ

django 내에서 migration 폴더 내에서 해당 앱의 DB 스키마를 관리하는데, 인위적으로 변경하게 되면 django 에서 에러가 날 확률이 매우 높습니다.


그리고 서버에서 에러가 나고, db 테이블에서 정상적으로 like 컬럼이 생성되지 않은 이유는 Dockerfile 내에서 github의 변경사항을 제대로 반영하지 못해서로 보입니다.

강좌를 진행하면서 이미지를 만들때, 앞에 RUN echo "testing" 과 같은 무의미한 명령어를 넣어서, 이미지를 만들었었죠.
현재 Portainer에서 항상 캐쉬 이미지를 기반으로 이미지를 재 생성하기 때문에 강제로 캐쉬 없이 이미지를 만들도록 하기 위해서 하는 작업입니다.
만약 CLI 환경에서 이미지를 빌드한다면 --no-cache 옵션을 사용할 수 있지만, 현재 Portainer CE 에서는 지원을 하지 않는 듯 합니다.

만약 RUN echo "testing1234" 같은 무의미한 코드를 살짝 바꿔서 이미지를 재 생성하고, 배포해보시고
그럼에도 문제가 발생한다면, 올려두신 git 저장소를 알려주실 수 있다면 제가 한번 확인해보도록 하겠습니다.

웹 개발이 참 배울게 많습니다. 저도 처음에 할 때 하나 배우면 배울게 3개는 늘어나는, 답답한 기분을 종종 느꼈습니다.
그래도 포기하지 않고 계속 하시다 보면, 원하시는 프로그램, 서비스 꼭 만드실 수 있을 것이라 믿습니다. 힘내세요


그리고 61강의 내용은 확인해보았는데, 편집하다가 부분이 날라간 것인지, 정말 내용이 없네요. 나오지 않아도 설정을 해주셔야 하는 게 맞습니다.
해당 부분은 시간나는 대로 정정영상을 올리도록 하겠습니다.
제보 감사드려요!

yesman_1114

2021년 3월 31일 10:28 오후

favorite

4

안녕하세요!

강좌에서 Title 아래의 Meta 태그 같은 경우는 전체 강좌 중반 즈음 만집니다.
해당 강좌를 보시면 좋을 것 같은데, 그렇게 많이 만지지도 않습니다.

반응형 레이아웃을 구현하기 위해서 간단한 메타태그를 넣는게 대부분이에요 ㅎ
처음 뼈대 html 파일을 구현하면서 header 부분을 만들었는데, 그 안에 메타태그를 넣었습니다.
그렇게 넣어진 메타태그가 뼈대 html에 항상 포함되면서 사이트 전역에 적용되는거죠.
정확한건 강좌를 참고해주세요!


그리고 파일첨부에서 이미지 파일의 확장자만 첨부가 가능한 것은, django 소스코드를 확인하시면 어떻게 구현되어 있는지 확인이 가능합니다.
물론 강좌에서 django 소스코드를 들여다 보면서 리뷰할정도로 깊은 부분까지는 다루지 않았구요ㅠㅠ
해당 부분을 정확하게 파악하고 싶으시다면 django에서 제공하는 models 안의 ImageField 에 해당하는 소스코드를 들여다 보시면 도움이 많이 되실거라 생각합니다.

필드 내부에 validation 하는 과정에 아마 파일의 확장자를 체크하고 넘기는 프로세스가 포함되어 있을 것 같아요.

도움이 되셨으면 좋겠네요!

USER#648246495

2021년 4월 6일 5:33 오후

favorite

6

책 출판계획 있으신가요?

yesman_1114

2021년 4월 10일 11:34 오전

favorite

5

책 출판계획은 있는데,
어떻게 될지 모르겠네요ㅠㅠ

rain

2021년 4월 10일 11:36 오후

favorite

5

52강에서
노트북에 우분투 20.04서버 설치 후 따라가고 있읍니다
도커파일에서 이미지 만들었읍니다.
1. 포테이너 컨테이너에 이상한 컨테이너가 있읍니다.?
2. 내부아이피로 nginx는 작동하는데 8000port로 접근하면 열지지 않읍니다?
3.강의내용이 노트복서버에서는 작동 되지 않는 것인가요?

yesman_1114

2021년 4월 12일 10:05 오전

favorite

3

안녕하세요!

1. 포테이너 컨테이너에 이상한 컨테이너라는 것이 무엇인지 제가 알기 어렵습니다 ㅠ
어떤 컨테이너가 있는지 이름이나, 사진 등 정보를 주시면 더 정확히 답변드릴 수 있을 것 같습니다.

2. nginx가 작동하는데, 8000 포트로 접근하면 안된다는 말씀이 조금 이해하기 어렵습니다.
nginx는 80번 포트로 접근을 해 보았는데, 제대로 접근이 되지만, 8000번 포트는 django 컨테이너 접근이 되지 않는다는 말씀이신가요?

그렇다면 8000포트로 접근했을 때 어떻게 접근이 되지 않는지, 증상이라던지, 사진이라던지 정보를 추가적으로 첨부해주시면 제가 답변을 더 정확히 드릴 수 있을 것 같습니다.

3. 강의 내용이 노트북이라고 해서 동작하지 않을 이유는 없습니다.
하지만 제가 강좌를 VPS를 대여해서 진행하는 이유는, 수강인원들의 모든 파편화된 개발환경에 대응하는 강좌를 만들수 없어서입니다.

VPS를 대여함으로서 같은 환경, 같은 OS, 같은 파일 경로 내에서 강좌를 진행했죠. 때문에, 각자의 개발환경과 분리된 독립된 공간에서 함께 같은 코드를 업로드하고 실행합니다.

하지만 VPS를 사용하지 않고 강좌를 들으신다면, 분명 환경이 다릅니다.
OS 가 다를수도 있고, docker의 버전이 다를 수도 있고, 환경 변수가 다를 수 있습니다.

다시 말씀드리지만, 개인 노트북으로 서버를 구축하여 강좌를 진행하셔도 작동은 가능합니다. 그러나 개발환경 차이로 인한 미세한 문제해결이나, 디버깅에 있어서는 제가 답변을 드리는 데에 한계가 있다는 점을 알아주셨으면 좋겠습니다ㅠㅠ

rain

2021년 4월 12일 9:26 오후

favorite

3

그림 첨부 하는것을 깜빡 했읍니다
장고 컨테이너 8000 접근불가

rain

2021년 4월 12일 9:27 오후

favorite

4

엔진엑스 80번 포트

rain

2021년 4월 12일 9:29 오후

favorite

5

포테이너 내부 컨테이너 들 ;;
장고 이미지 만들니까 같이 만들어지고 start하면 장고컨테이너가 stop되네요

yesman_1114

2021년 4월 13일 11:13 오전

favorite

4

1. 모르는 컨테이너가 생성되는 문제.
- 일단 임의적으로 생성되는 컨테이너들은 저도 확실히 답해드리기가 어렵습니다.
저도 portainer를 사용하면서 종종 제가 생성하지 않은 컨테이너들이 생기는 것을 확인했는데, 딱히 어떻게 큰 문제를 발생시키지는 않아서 portainer 현재 버전의 버그로 추측하고 있습니다.

2. 8000번 포트 접근 불가.
- 사진을 보니 192.168.0.2 로, 노트북에 서버를 구축하시고 다른 컴퓨터에서 접속을 하시는 중 인건가요?

일단 맞다고 생각을 하고 답변을 드리겠습니다.

제가 생각하는 가능성 높은 원인은 2가지 정도입니다.

1. 노트북 자체의 방화벽이 문제일 수 있습니다.
저희가 강좌를 진행하는 VPS, vultr 상에서는 방화벽이 설정되어 있지 않습니다. 모든 포트에 대해 열려있는 상태인거죠. 그래서 굳이 방화벽 설정을 건드릴 필요가 없습니다.
하지만, 방화벽이라는 설정은 서버 혹은 컴퓨터의 설정에 따라 항상 다를 수 있습니다. 우분투 20.04 의 기본 방화벽 설정이 어떻게 되는지 저도 확실히는 모르지만, 방화벽 설정을 통해 8000번 포트를 열어주셔야 합니다.

우분투에서 ufw 라는 기본 방화벽 설정을 만져야 할 수도 있고, 다른 설정을 만지셔야 할 수 도 있습니다.
이런 설정은 각 컴퓨터, 서버마다 상이하기 때문에 구글링을 통해 해결하시는 것을 추천드려요.

2. django 설정에서 외부 IP, 즉 호스트를 받아들이지 못할 수 있습니다.
일단 django 에서 다른 외부 호스트를 받아들이기 위해서는

1) runserver 0.0.0.0:8000 을 통해 실행시켜주셔야 합니다.
0.0.0.0 을 꼭 적어주셔야 외부 호스트들도 접속이 가능합니다.
2) Image 를 생성하는 Dockerfile 내부에 EXPOSE 8000 을 통해 포트를 열어주셔야 합니다.
3) django settings 안에 있는 ALLOWED_HOSTS 설정에서 "*" 를 통해 모든 호스트에 대해 요청을 받을 수 있게 해야합니다.


아마 위의 두 가지가 보통 이런 접근 불가 문제들의 원인인데,
이런 설정이나 방화벽을 다 건드려도 진행이 불가하시다면, 다시 계속 질문 남겨주시길 바래요!


아무래도 같은 VPS 환경에서 개발을 하는 것이 아니다 보니 분명히 제 강좌에서 언급하지 않은 다른 점들이 있을겁니다. 저는 왜 노트북에 직접 설치하셔서 강좌를 진행하시는 건지 저도 이유는 확실히 알 수 없습니다. 하지만 다 끝내고 나시면 분명 그냥 강좌를 듣는 것보다 상대적으로 많이 힘들더라도 더 넓은 시야를 가지실 수 있을거라고 생각합니다.

화이팅 하시길 바래요!
좋은하루 보내시길 바랍니다.

rain

2021년 4월 14일 10:20 오후

favorite

4

1>열심히 ufw설정을 이렇게도 저렇게도 해보고 있는데 잘 안되네요 될때까지 해볼려고요 ~ㅎ
2> [[[ 2-1) runserver 0.0.0.0:800을 통해 실행시켜 주셔야 합니다]]] 이 내용을 이해 하지 못 하였읍니다.

첨부된 그림은 현재 열려 있는 port내용입니다.

yesman_1114

2021년 4월 15일 1:06 오후

favorite

5

1. 일단 지금 보여지는 내용으로는 8000번 포트가 열려있지 않은 것 같습니다.
22번포트, 9000번 포트, 80번 포트는 열려있는데 8000번 포트가 안보이네요.

tcp 프로토콜 기반의 8000번 포토를 LISTEN 하지 않는 상태로 보이는데,
ufw 를 통해서 8000번 포트를 열어주는 작업을 해보셨나요?



2. runserver 0.0.0.0:8000 이 말은,
Dockerfile 내부에서 이미지를 생성하면서 마지막 Command를 작성할 때 runserver "0.0.0.0:8000 " 를 함께 꼭 명시해주셔야 한다는 점입니다.
아마도 강좌를 진행하시면서 잘 작성하셨을 것으로 예상되는 점이지만, 혹시 모르니 언급하였습니다.

USER#290873558

2021년 4월 23일 11:00 오전

favorite

6

강좌 외 궁금한게 있어 댓글 남깁니다!

서버 배포하는 과정간에 어드민 계정을 설정하는 법이 나와있지 않아서요!

도커파일이나 compose 파일 내에서 설정 가능한 방법이 있을까요?

yesman_1114

2021년 4월 24일 8:04 오후

favorite

5

Dockerfile 이나 compose 내에서 createsuperuser 명령어를 사용해 설정하는것도 충분히 가능합니다만,
그런식으로 구현하면 컨테이너가 생성될때마다 해당 명령을 실행하기 때문에,
제 개인적인 의견으로는 한번 django 컨테이너에 접속한 후, CLI 를 통해 슈퍼유저를 생성하는 것이 괜찮지 않을까 생각을 합니다.

https://onion.haus/detail/3448

위의 글 질문에서 어떻게 포테이너를 통해 특정 컨테이너에 접속하는지,
그리고 어떻게 superuser를 생성하는지 나와있으니, 한번 참고해보시면 좋을것 같습니다.

혹여나 해당 글을 읽고도 힘드시다면, 계속 질문 남겨주세요!

USER#934630026

2021년 4월 27일 2:18 오후

favorite

5

AWS 에서는 https 인증을 받는강의를 올려주셨는데 혹시 vultr 에서 하는법도 올려주실 수 있을까요..? 좋은 영상 제공해주셔서 감사합니다!

USER#648246495

2021년 5월 8일 4:22 오전

favorite

7

강좌에 알림 기능도 추가해주실수 있나요?

USER#705887303

2021년 8월 2일 5:37 오후

favorite

3

이게 왜 이러는지 모르겠습니다.
urlpatterns 에서 + static 붙이면 그냥 빨간 줄 뜨네요.. import는 하라는대로 다 했습니다.


로그인