GithubHelp home page GithubHelp logo

wafflestudio / seminar-2021 Goto Github PK

View Code? Open in Web Editor NEW
47.0 23.0 115.0 59.91 MB

2021 Rookies 세미나

HTML 1.94% TypeScript 1.04% CSS 2.62% JavaScript 4.64% Python 48.99% Kotlin 32.38% Shell 0.02% Swift 8.24% SCSS 0.03% Dockerfile 0.04% Ruby 0.08%
react django spring-boot ios android study seminar lectures

seminar-2021's Introduction

와플스튜디오 19.5기 Rookies Repository





wafflestudio_logo




19.5 기 세미나는 다음 학기 개발 프로젝트 참여 가능한 Programmers 양성을 목표로 합니다.

  • Frontend:
    • React - JavaScript
  • Backend:
    • Django - Python
    • Spring Boot - Kotlin
      • 수강조건: 컴프 수강자 or 이에 준한 OOP 개념의 이해
  • Android:
    • Kotlin
  • iOS:
    • Swift5 + Storyboard



세미나




세미나 시간
세미나 요일 시간
백엔드 (장고) 토요일 오전 10시
안드로이드 토요일 오전 11시 30분
백엔드 (스프링) 토요일 오후 3시
프론트 토요일 오후 4시 30분
iOS 일요일 오후 1시



회차 시간 장소 자료 과제 참여 링크 영상
OT 2021.08.22 (일) Zoom pdf
ppt
자료 하단 참조 OT Video
seminar0 2021.08.28 (토) ~ 2021.08.29 (일) Zoom React
Django & Spring
iOS
android
React
Django & Spring
iOS
android
React
Django & Spring
iOS
android
React
Django & Spring
iOS
android
seminar1 2021.09.04 (토) ~ 2021.09.05 (일) Zoom React
iOS
android
Django
Spring Boot
React
iOS
android
Django
Spring Boot
React
iOS
android
Django
React
iOS
android
Spring Boot
seminar2 2021.09.11 (토) ~ 2021.09.12 (일) Zoom React
android
Django
iOS
React
android
iOS
React
android
Django
iOS
React
iOS
android
Spring Boot
seminar3 2021.09.25 (토) ~ 2021.09.26 (일) Zoom React
android
Django
iOS
React
android
Django
iOS
React
android
iOS
Django
android
Spring Boot
iOS
seminar4 2021.10.09 (토) ~ 2021.10.10 (일) Zoom React
iOS
android
React
iOS
Django
React
iOS
android
Django
React
android
Spring Boot
seminar5 2021.11.06 (토) ~ 2021.11.07 (일) Zoom React
iOS
android
React
Django
React
iOS
Django
android
React
android
Spring Boot
협업 세미나 2021.11.20 (토) 14:00 Zoom ppt OT OT
  • 녹화 영상은 필요할 시 각 세미나장께 요청주시기 바랍니다.
  • backend seminar 0 은 8월 28일 오전 10시입니다.

seminar-2021's People

Contributors

andhl204 avatar ars-ki-00 avatar d3pshot17 avatar darwinj07 avatar dgg1dbg avatar ethan-mobeau avatar fivessun avatar gina0605 avatar hank-choi avatar hyunggeun-cho avatar jakdurider avatar jakehsj avatar jaylions avatar jhvictor4 avatar junjinyong avatar keumartist avatar kohandy1902 avatar leejoey0921 avatar moonpiderman avatar nemga123 avatar padme0421 avatar pjh6029 avatar redcourage avatar tnsqjahong avatar veldic avatar wallabyg avatar woohm402 avatar xxnpark avatar yeonsumia avatar yg-moon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seminar-2021's Issues

download_survey UnicodeDecodeError 질문입니다.

백엔드 세미나 0의 과제 중 5번을 진행 중 발생한 오류입니다.

download survey를 하니
UnicodeDecodeError: 'cp949' codec can't decode byte 0xed in position 0: illegal multibyte sequence
라는 Error가 발생합니다.

검색을 해보니 open 함수를 수정하면 오류를 해결할 수 있는 것 같은데
19.5-rookies\django\seminar0\assignment0\survey\management\commands\download_survey.py 파일을 수정해도 괜찮을까요?

혹은 해당 error의 다른 해결 방법이 있을까요?

Backend 과제 9번 관련 질의

9번에서 window, mac, Ubuntu를 제외한 나머지 입력 사항에 대해서는 400 Bad Request를 반환하라고 기재되어 있습니다. 근데, OperatingSystem의 종류를 보면 위의 3가지와 Linux까지 해서 총 4가지입니다. 그렇다면 OperatingSystem에서 Linux는 제거하고 진행해도 되는 것인가요? 아니면 4가지 다 올려놓은 상태로 Linux를 포함한 그 외의 것들을 대상으로 400 Bad Request를 반환해야하는 것인지 여쭙고 싶습니다.

creating resolved label

별 건 아닌데, 해결된 issue들을 구분짓기 위해 resolved label을 추가하는 건 어떨까 합니다!

듀얼부팅 중 Ubutu 인터넷 driver 설치가 안됩니다,,,

듀얼부팅을 하는 편이 좋다고 하셔서 Ubuntu 20.04 버전을 설치하였습니다. 설치 후 wifi 가 설정에 보이지 않는 걸 보아 드라이버가 설치 안됐을 것이라 생각해서
% dmesg | grep iwlwifi 한 결과
iwlwifi: probe of 0000:00:14.3 failed with error -22라는 값을 받았고, 이는 드라이버가 설치 되지 않았다는 의미라는 것을 구글링을 통해 알게되었습니다.

제 노트북은 유선랜포트가 없고, 유선랜 어댑터 또한, 다른 지역에 놔둬서 사용할 수 없는 상황입니다.
랜카드를 확인해본 결과 intel wifi6 ax201라는 기종이었고 https://www.intel.co.kr/content/www/kr/ko/support/articles/000005511/wireless.html 에서 다운받았습니다. 본파일을 압축해제한 후
usb로 옮겨 README에 따라 파일들을 /lib/firmware 에 복사한 후 리부팅했습니다. 그러나 드라이버는 설치되지 않았고 여전히 설정에서 wifi를 찾을 수 없었습니다.

그래서 구글링한 결과
1.
sudo apt-get install mokutil
mokutil --sb-state
sudo mokutil --disable-validation
then, reboot
sudo mokutil --enable-validation
=> 아무런 변화가 없음

apt-get --reinstall install linux-firmware
=> 실패: 아마 인터넷이 안되기에 apt, apt-get이 안되는 것 같습니다.

cd ~/Desktop/backports-20150923
make clean
make defconfig-iwlwifi
make
sudo make install
=> 실패: make가 깔려있지 않았는데, sudo apt install make 하여도 인터넷이 안되어 다운이 안됩니다,,

sudo mv /lib/firmware/iwlwifi-Qu-b0-jf-b0-48.ucode /lib/firmware/iwlwifi-Qu-b0-jf-b0-48.ucode.bak
sudo cp /lib/firmware/iwlwifi-QuZ-a0-jf-b0-48.ucode /lib/firmware/iwlwifi-Qu-b0-jf-b0-48.ucode
then, reboot
=> 실패: 이 코드가 뭘 의미하는 지 모르겠지만 아무런 변화도 없었습니다,,

sudo apt install git dkms
git clone https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git
cd backport-iwlwifi
make defconfig-iwlwifi-public
sed -i 's/CPTCFG_IWLMVM_VENDOR_CMDS=y/# CPTCFG_IWLMVM_VENDOR_CMDS is not set/' .config
make -j4
sudo make install
=> 실패: 인터넷이 안되어 apt가 안될뿐더러 git도 설치가 안되어있으며 인터넷이 안되서 설치도 못하며 git clone도 안됩니다,,

윈도우 설정에서 빠른 시작을 해제해라
=> 실패: 처음부터 해제해놨었습니다,,,

인텔 드라이버는 신기한 .ucode 파일이라 어떻게 실행하는지,, 그냥 /lib/firmware에 복사만 하면되는지,,도 모르겠습니다
여기서 어떤 시도를 더 해보면 본 문제가 해결될까요??

파이썬 버전 변경 질문 드립니다

스크린샷 2021-08-29 오전 12 37 21

파이썬 버전이 3.8.2인데 3.8.3으로 변경하는 방법을 잘 모르겠습니다

스크린샷 2021-08-29 오전 12 43 08

그리고 requirements.txt에서 mysql 2.0.1만 설치가 제대로 되지 않는데 이유를 정확히 모르겠습니다

Backend 10번 os 로 Linux 가 들어올 때 질문드립니다.

10번 문제 해결할 때, 조건으로 os 로는 Windows, MacOS, Ubuntu (Linux) 가 들어 올 때에만 처리를 진행하고 그 외에는 400 Bad Request 를 반환하라고 되어있는데,

survey/management/commands/download_survey.py 23번째 줄부터 있는
OperatingSystem.objects.get_or_create(name='Windows', price=200000, description="Most favorite OS in South Korea")
OperatingSystem.objects.get_or_create(name='MacOS', price=300000, description="Most favorite OS of Seminar Instructors")
OperatingSystem.objects.get_or_create(name='Linux', price=0, description="Linus Benedict Torvalds")

때문인지(이 부분은 추측입니다) OperatingSystem. 에 실제로 데이터는 없지만 object로(?) Linux 가 있습니다.

문제가 get_object_or_404 를 안쓰는 만큼, 단순히 조건을 일일히 확인하는 것보다, 데이터베이스의 Object가 가지고 있는 값들을 알아서 확인을 하고 없는 데이터면 400 을 반환하는 방식으로 하는 것이 맞다고 생각하여 코드를 작성했는데, 이 경우 400 Bad Request 가 아니게 됩니다.

그냥 단순히 인풋 비교를 통해서 결과를 반환하도록 해야 하는지 의문이 들어 이슈 올립니다.

(backend assignment 0) MySQL 실행 오류

윈도우에서 WSL 사용 중입니다.
과제 수행을 위해 service mysql start를 실행해보았는데 아래와 같은 오류가 나왔습니다.
image

구글링을 해보니 사용자 암호가 설정되어 있지 않기 때문일 수 있다고 해서 암호를 설정해주었습니다.
image
image

그런데도 여전히 같은 오류가 나왔습니다.

더 찾아보니 service 명령어를 sudo로 실행시키면 된다고 하길래 시도해봤습니다.
그랬더니 정상적으로 시작이 되는 것 같았습니다.
image

그러나 python manage.py migrate를 실행했더니 아래와 같은 오류가 나왔습니다.
image

검색을 해서 이것저것 시도해보았지만 여전히 같은 오류가 나옵니다.
어떻게 해결해야 할까요?

Backend mysql 패스워드 길이 제한 관련 질문

Backend 과제0 진행 중 mysql DB 연결 과정에서 의문이 생겨 질문드립니다.

과제 내용의 3번에서, 로컬 MySQL 에 user를 생성하기 위한 명령어로 create user 을 시도하였는데, settings.py에 명시되어 있는 password 'seminar'를 사용하였더니 다음과 같은 에러가 발생하였습니다.

Screenshot from 2021-08-31 16-00-23

password policy에 대한 문제인가 하여 LOW로 설정을 바꾸기도 하였는데, 찾아보니 길이가 8자리 이상이어야 비밀번호로 설정할 수 있다는 언급이 있어 의문이 들었습니다.

제가 과제의 방향성을 잘못 이해하고 있는 것인지, 혹은 비밀번호를 바꾸어도 되는 것인지 알려주시길 부탁드리겠습니다!

Github에서 Pull Request 하려 할때 Labeling 위한 탭이 보이질 않습니다.

안녕하세요, 19.5 루키 오이석입니다.

다름이 아니라 이번 세미나 신청을 위해 PR을 연습해보던 중, 라벨을 추가하고자 하였는데, 화면 우측에 Labels 등의 탭이 보이지 않아 질문드립니다.

image

위 사진과 같이 화면 우측에 아무것도 보이지 않는 상황인데, 이에 지식을 공유해주시면 감사하겠습니다.

백엔드 과제 0번 service mysql start 오류

Screenshot from 2021-08-30 01-29-00

Screenshot from 2021-08-30 01-29-24
Screenshot from 2021-08-30 01-30-02
이렇게 mysqlinet역시 설치했고 mysql 역시 설치했는데 service mysql start 명령을 내리면 mysql이 아예 작동을 하지 않습니다. 구글링을 해보았지만 error을 수정하는 방법만 나와있는데 제꺼는 작동이 된건지 안된건지 error가 없으니 파악이 안됩니다. 이게 작동이 된건데 그게 화면에 나타나지 않은건지 아니면 작동자체가 안된건지 궁금합니다.

python 재설치 후 bad interpreter 오류

기존에 컴퓨터에 설치되어 있던 파이썬 3.8, 3.9를 모두 삭제하고 3.8로 재설치한 상태입니다.
bad interpreter 오류가 떠서 검색해 보았더니 심볼릭 링크의 문제라고 하는데 어떻게 해결할지 모르겠어서 질문 남깁니다.

스크린샷 2021-09-03 오후 3 41 06

(backend assignment 0) mysqlclient 설치 오류

지난 세미나에서 pip install -r requirements.txt 커맨드를 사용해 과제 수행에 필요한 패키지들을 설치하라고 말씀해주셨는데요.
이 커맨드를 사용해 설치를 시도했더니 mysqlclient가 제대로 설치되지 않았다는 에러가 떴습니다.

그래서 아래와 같이 pip install mysqlclient==2.0.1로 다시 시도를 해보았는데도 여전히 같은 에러가 출력됩니다.

image

아래에서 확인할 수 있듯이 MySQL은 정상적으로 설치가 되어 있습니다.

image

무엇이 문제일까요?

Github Pages를 이용해 index.html, React app 배포하기

과제0으로 만든 index.html과 react app을 모두가 볼 수 있도록 배포하는 방법에 대해 정리해보았습니다.
과제 스펙에서 요구하지는 않지만 해보시면 재미있을 거예요.

특히 index.html 배포는 정말 쉬우니 한 번 해보세요~~ 👍


Github Pages란?

공식 문서에는 다음과 같이 적혀있습니다.

GitHub Pages is a static site hosting service that takes HTML, CSS, and JavaScript files straight from a repository on GitHub, optionally runs the files through a build process, and publishes a website.

즉, 우리가 만든 index.html, react app 등을 배포할 수 있게 해주는 서비스입니다. 예를 들어, 저는 과제0의 결과물을 https://gina0605.github.io/waffle-rookies-19.5-react-assignment-0/ 에 배포해두었습니다.

이제 Github Pages를 설정하는 방법에 대해 알아보겠습니다.


index.html 배포하기

과제0에서 만든 index.html을 아주아주 쉽게 배포해봅시다.

  1. assignment 브랜치에서 작업한 내용을 push한다.
  2. 깃헙에서 자신의 repository로 간 후, Settings > Pages를 누른다.
  3. Source에서 Branch로 assignment를 선택하고, Save를 누른다.

settings-pages

조금 기다리면 초록색으로 https://username.github.io/waffle-rookies-19.5-react-assignment-0/에 배포가 완료되었다고 뜰 것입니다. 이 링크를 들어가시면 성공적으로 배포 된 페이지를 볼 수 있습니다.

Settings에서 github pages를 assignment 브랜치와 연결시켜놓았기 때문에, 앞으로 assignment 브랜치에 commit을 한 후 push를 할 때마다 해당 내용이 반영된 채 새로 배포가 될 것입니다. commit history에 보이는 초록색 체크 표시는 배포가 성공적으로 되었다는 뜻입니다.


React app 배포하기

이제 과제2였던 React app도 배포를 해봅시다.

방법

  1. 우선 create-react-app 명령어로 만들어진 폴더를 깃헙에 등록해줍니다. 깃헙에서 새 레포지토리를 만들고, git remote add와 같은 명령어를 이용하시면 될 겁니다.
  2. npm install gh-pages --save를 실행시킵니다. gh-pages는 React app을 github pages에 배포하는 것을 도와주는 라이브러리입니다.
  3. package.json 파일을 수정합니다.
    • name 등과 같은 레벨에 "homepage": "http://{username}.github.io/{repositoryname}"를 추가합니다. {username}에는 본인의 깃헙 아이디를 입력하고, {repositoryname}에는 본인의 깃헙 레포 이름을 입력하세요.
    • scripts에 아래 두 속성을 추가합니다.
      "scripts": {
          //...
          "predeploy": "npm run build",
          "deploy": "gh-pages -d build"
      }
    • 완성된 package.json은 이것과 비슷한 형태일 것입니다.
  4. npm run deploy를 실행시킵니다.

깃헙으로 가보면 gh-pages라는 브랜치가 만들어져있고, github pages 설정도 되어있을 것입니다. 조금 기다리면 https://username.github.io/repositoryname/ 에 배포가 될 것입니다. Settings > Pages에서 사이트 링크를 확인할 수 있습니다.

이제부터 무언가를 수정한 후 다시 배포가 하고 싶을 때는, 로컬에서 npm run deploy를 실행하면 됩니다.


Github Actions 추가하기

이제 매번 npm run deploy를 실행하지 않아도, master branch를 기반으로 자동으로 배포가 되도록 해봅시다. 이를 위해서는 Github actions를 활용할 것입니다.

Github Actions는 push 등의 이벤트가 발생했을 때 배포 등과 관련된 코드가 실행되도록 해줍니다.

  1. 우선 Access token이 필요합니다. Accout settings > Developer settings > Personal access tokens으로 들어갑니다. repo와 workflow 권한이 있는 token을 만듭니다.
    access-token

  2. token을 복사하고, 이번에는 repository settings로 갑니다. Secrets에서 New repository secret을 눌러 새로운 Secret을 만듭니다.
    Name은 ACTIONS_DEPLOY_ACCESS_TOKEN로, Value는 조금 전에 복사한 token으로 해주세요.
    github-actions

  3. 이번에는 Actions 탭을 선택한 후, set up a workflow yourself를 누릅니다. (사실 어차피 actions 내용은 복붙할 거라 뭘 누르든 상관 없습니다.)

  4. 이 내용을 복사해 넣습니다. 만약 master가 아닌 main 브랜치를 이용 중이라면 5, 7줄의 mastermain으로 바꿔주세요.

  5. Start commit을 누르고 Commit new file을 누릅니다. 이로써 github action을 설정하는 commit이 이루어졌습니다. .github/workflow/main.yml이라는 파일이 만들어졌을 것입니다. 로컬에서는 pull 받아주세요.
    github-actions

Github actions 설정까지 되었습니다. 이제 master 브랜치를 push하거나 pull_request를 merge할 때마다 해당 내용을 반영하여 배포가 될 것입니다.


원리

과제2에서 우리는 index.html을 만들지 않았고, 대신 src/ 폴더에 index.js 등의 파일이 위치합니다. 이를 배포에 적합하게 만들기 위해서는 npm run build를 실행하면 됩니다. (궁금하면 직접 해보세요. build/ 폴더가 만들어질 겁니다.)

Github Pages에는 이 build/ 폴더의 내용만을 올려서 배포해야 합니다. 이를 하기 위해서는 gh-pages라는 새로운 브랜치를 만들어서 그 브랜치에는 build된 내용만을 넣어놓고, 이 브랜치를 Github Pages와 연결시킬 겁니다.

이제 코드에 수정 사항이 있을 때마다 npm run build를 하고, 그 결과를 gh-pages 브랜치에 적용시키고, gh-pages 브랜치를 push해주면 됩니다. Github Pages를 gh-pages 브랜치에 연결하는 작업도 필요하고요. 귀찮군요.

이 작업을 한 번에 해주는 것이 gh-pages 라이브러리입니다.

우리는 아까 package.json에서 "deploy": "gh-pages -d build"라는 줄을 추가했습니다. 이는 npm run deploy 명령어가 gh-pages -d build를 실행하도록 하겠다는 뜻입니다. 그리고 이 명령어는 React app을 build하고, 그 내용을 gh-pages 브랜치에 적용시키고, push까지 해줍니다. 그렇기에 우리는 npm run deploy만 시키면 되는 거죠.

Github actions는 master 브랜치가 push되었을 때 npm run deploy 명령어가 자동으로 실행되도록 하는 역할입니다. master 브랜치에 push가 이루어지면 우리가 main.yml에 입력한 일련의 명령어들이 runner라는 서버에서 실행됩니다. 실제로 main.yml 파일을 보면 우리의 목적인 npm run deploy 명령어가 적혀있음을 알 수 있습니다.

그리고 이 runner가 gh-pages 브랜치에 push를 하기 위해서는 권한이 필요합니다. 그렇기에 우리가 Access token을 발급받은 것입니다. 이 token을 github secrets에 저장해두었고, runner에서는 이 secret을 사용합니다.





여기까지 github pages로 간단히 배포하는 법에 대해 정리해보았습니다.
제가 잘못 알고 있는 내용이 있다면 알려주시면 감사하겠습니다. 😄

Android Assignment0 에서 intent와 fragment 사용에 관해 질문드립니다.

안녕하세요.

안내해주신 https://developer.android.com/courses/kotlin-android-fundamentals/toc 를 따라해 보며 공부하고 있습니다.
그런데 intent 에 관한 내용은 implicit intent정도밖에 나오지 않는데, 이건 과제에서 제시된 IntroduceActivity로 이동하거나 KotlinPracticeActivity로 이동하는 것과는 다른 내용 같습니다.

저 문서를 통해 배울 수 있는 것 중에서 과제에서 해야될 것과 비슷한 것은 fragment같은데, intent 말고 fragment 만 써서 과제를 해도 될까요?

감사합니다.

Navigation Controller를 사용할 때 title 설정 방법

안녕하세요. iOS 세미나 수강생 박신홍입니다.

오늘 세미나에서 navigationController?.title = "Waffle Studio" 코드가 잘 작동하지 않았었는데요.
그 이유가 궁금해서 조금 찾아보니 Navigation Controller(이하 NC)에 대한 감이 조금 잡히는 것 같아서, 제가 이해한 내용을 공유할 겸 잘못 이해한 부분이 있다면 바로잡기 위해 이슈로 남기게 되었습니다.

아래 내용 중 틀린 부분이 있다면 바로잡아주시고, 없으면 바로 close 해주셔도 될 것 같습니다!


1. NC는 눈에 보이는 화면이 아니다.

image
NC를 임베드하면 위와 같이 스토리보드 상에 화면이 하나 추가되지만, 이것은 실제로 눈에 보이는 화면이 아닙니다.

2. NC에서 출발하는 화살표의 의미

image
NC의 계층 구조가 Linked List로 구현한 Stack과 유사하다는 느낌을 받았습니다. NC 자체는 첫 번째 원소(i.e. 화면)의 객체 주소를 담고 있는 Head 변수와 비슷한 역할인 것 같고, 오른쪽에 있는 화면일수록 Stack에서 가장 마지막에 쌓이는 원소에 대응한다고 보면 될 것 같습니다.

3. NC의 title 설정 방법

위의 내용을 종합하면, NC 자체는 눈에 보이는 화면이 아니기 때문에 navigationController?.title = "Waffle Studio"와 같이 NC 자체의 title을 설정해주는 것은 의미가 없고, NC에 속한 원소들, 즉 화면들 각각의 UIViewControllerviewDidLoad 메서드에서 title = "Waffle Studio"를 하나씩 선언해주어야 하는 것 같습니다. 예를 들어, NC라는 Stack에 속한 원소가 10개라면, 10개의 뷰 컨트롤러 각각에서 title을 따로 설정해주어야 합니다.

여기까지 제가 잘 이해한 것이 맞는지 봐주시면 감사하겠습니다!

Backend seminar0 requirements.txt 설치 issue

wsl2로 ubuntu 18.04를 사용하고 있습니다.
vs code에서 bash 터미널을 사용하는데, pip3 install -r requirements.txt 명령어가 잘 작동하지 않는 것 같습니다.
requirements issue1
requirements issue2
requirements issue3
mysqlclient와 django가 위와 같은 문제로 설치되지 않아 pip install 명령어로 수동 설치를 해 주었는데, 이 이후로 python manage.py migrate나 python manage.py help 명령어도
[django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?]
위와 같은 명령어로 실행되지 않습니다. pip list를 통해 확인하면 mysql과 mysqlclient가 잘 설치되어 있는 것 같습니다.

백엔드 과제 0 makemigrations가 되지 않습니다(m1 - mysqlclient)

안녕하세요. 백엔드 수강생 김시연입니다.

과제 3번 내용까지 모두 마친 후에,
4번을 위해 python3 manage.py makemigrations 명령어를 입력하였을 때 나는 에러 입니다.

스크린샷 2021-08-28 오후 10 10 37

스크린샷 2021-08-28 오후 10 11 08

"Symbol not found: _mysql_affected_rows", "NameError: name '_mysql' is not defined" 같은 메세지를 구글링하며 해결책을 찾아보던 와중에,

https://adamj.eu/tech/2020/02/04/how-to-use-pymysql-with-django/
https://stackoverflow.com/questions/67420897/cannot-connect-django-to-existing-mysql-database-on-m1-mac

에서 비슷한 문제를 겪는 m1 mac 유저들을 발견했습니다.
둘 다 PyMySQL 를 이용하여 문제를 해결할 것을 권유하고 있는데, 아무래도 다른 라이브러리를 사용하는 방법인 것 같아 이러한 해결 방법이 가능할지 여쭤보고 싶습니다.

계속 구글링을 하면서 m1과 mysqlclient 사이의 문제라는 글들을 자주 보고 있는데
혹시 비슷한 경험이 있는 m1 유저분이 계시다면 도움을 주시면 감사하겠습니다.
+) PyMySQL/mysqlclient#496

[백앤드 과제 0] Window에 깔려있는 MySQL Workbench 툴로 리눅스에 있는 MySQL 서버 접근 문제

안녕하세요 19.5기 이재현입니다.

백앤드 과제 0에서 6번을 해결하는 과정에서 'MySQL Workbench 툴로 survey_surveyresult, survey_operatingsystem table의 모든 row의 모든 column을 출력하세요' 에서 막혔습니다. 윈도우에 깔린 MySQL workbench로 리눅스에 있는 mysql 서버에 외부접근을 통해 확인하려 했습니다. 결론부터 말씀드리면 "Failed to connect to mysql at 172.29.20.14 with user waffle-backend, unable to connect to localhost" 라고 에러가 뜹니다.

현재 진행상황은 다음과 같습니다.

  1. wsl remote를 통해 vscode와 연동하였습니다.

  2. 가상환경을 만들고 해당 가상환경에 mysql을 깔았습니다.

  3. mysql에 settings.py에 나와있는대로 'waffle_backend" 라는 database를 만들고 "waffle-backend" 라는 user을 만든 후 권한을 주었습니다.

  4. migrate 후 table들이 추가된 것을 확인했습니다.

  5. Windows에 깔려있는 mysql workbench를 실행한 후 실행되고 있는 리눅스 서버의 mysql에 접근을 시도하였습니다. - 실패

4번의 실패 과정을 구체적으로 말씀드리자면

1. 가상환경에서 mysql 서버 start 후 root 계정으로 접속

2. waffle-backend 계정에 grant privileges on *.* to 'waffle-backend'@'%'; 를 통해 외부 접근 권한을 부여

3. quit 한 후 가상환경에서 ip addr와 mysql service status를 통해 가상환경 ip와 port번호 확인

[ip addr 내용]
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:15:5d:2c:76:41 brd ff:ff:ff:ff:ff:ff
inet 172.29.20.14/20 brd 172.29.31.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe2c:7641/64 scope link
valid_lft forever preferred_lft forever

[mysql server status 내용 중 port 번호 부분]
image

4. windows에서 mysql workbench 실행 후 mysql connections + 아이콘을 클릭 후,
hostname : 172.29.20.14 / port : 0 / username : waffle-backend / password (Store in Vault) : seminar 를 넣고 test connection을 하면

"Failed to connect to mysql at 172.29.20.14 with user waffle-backend, unable to connect to localhost" 라고 에러가 뜹니다.

무엇이 문제일까요..

자주 사용되는 마크다운 문법 모음

Github에서는 issue나 pull request 등 모든 글쓰는 곳에서 마크다운 문법을 지원합니다. 마크다운을 이용하면 아주 간편하게 굵은 글씨, 기울인 글씨, code, link 등을 작성할 수 있습니다.

조금 더 응용하면 아래와 같이

표를 쓸수도
고,



제목 글자도 쓸 수 있고,



  • 항목 단도 나눌 수 있고,
    • 수준 2
    • 수준 2
      1. 순번도 이렇게
      2. 작성할 수 있고,
        • 뭐야 이거
          • 어디까지 내려가
            • 계속 되나
              • 이건 처음알았네요
                • 새 폴더
                  • 가마우지



이미지,



  • 체크박스,



코드 스니펫,

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

신택스 하이라이트를 곁들인

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}



구분선




인용문도 되고



마지막으로이런 것도 돼요















대충 기억나는 대로 썼는데, 나중에 더 생각나면 추가하겠습니다. (댓글로 추가해 주셔도 좋아요)

아무튼 마크다운을 잘 활용하면 더 읽기 좋은 이슈를 작성할 수 있습니다. 사실 코드 블럭 이랑 큰 글씨만 잘 써도, 가독성이 확 올라갑니다. 이슈 작성, 코멘트 작성, PR 생성, 리드미 작성 등등 마크다운을 쓰실 일이 있을 때 참고해 주세요!


끝으로 잘 정리되어 있는 레퍼런스들과 이 이슈 어떻게 썼는지 plain text로 첨부합니다.

이 이슈는 어떻게 썼나요 그냥 쓰면 깃헙이 마크다운으로 알아들어서, 코드블럭으로 한번 감싸서 쓰겠습니다.
Github에서는 issue나 pull request 등 모든 글쓰는 곳에서 마크다운 문법을 지원합니다. 마크다운을 이용하면 아주 간편하게 **굵은 글씨**, *기울인 글씨*, `code`, [link](https://github.com/wafflestudio/19.5-rookies) 등을 작성할 수 있습니다.

조금 더 응용하면 아래와 같이 

| 표를 | 쓸수도 |
|----|---:|
| 있 | 고, |

<br /><br />

# 제목 글자도 쓸 수 있고,

<br /><br />

- 항목 단도 나눌 수 있고,
    - 수준 2
    - 수준 2
        1. 순번도 이렇게
        2. 작성할 수 있고,
                - 뭐야 이거
                - 어디까지 내려가
                    - 계속 되나
                        - 이건 처음알았네요
                            - 새 폴더
                                - 가마우지
                                
<br /><br />

이미지,

<img src="https://wafflestudio.com/_next/image?url=%2Fimages%2Ficon_intro.svg&w=256&q=75" height="200" />

<br /><br />

- [ ] 체크박스,

<br /><br />

코드 스니펫 (깨져서 앞에 띄어쓰기 4개 추가했어요)

    ```
    public class Main {
        public static void main(String[] args) {
            System.out.println("Hello World!");
        }
    }
    ```

신택스 하이라이트를 곁들인

    ```java
    public class Main {
        public static void main(String[] args) {
            System.out.println("Hello World!");
        }
    }
    ```

<br /><br />

구분선

---

<br /><br />

> 인용문도 되고

<br /><br />

<details><summary>마지막으로</summary>이런 것도 돼요</details>

질문 등록 방법

질문 등록 방법

세미나와 관련된 질문은 현재 위치인 rookies repository의 issue로 남겨주시면 됩니다.
모든 세미나가 레포지토리를 공유하므로 labeling을 잘 해주시기 바랍니다.

Labeling

image

Label 은 issue를 생성한 뒤 생성한 issue 창에서 위와 같이 할 수 있습니다. Label은 아래 조건에 맞추어 달아주셔야 합니다.

  1. document 또는 question 둘 중 하나를 꼭 달아 주세요.
  2. 나머지 Label들 중, 분야를 적절히 정하여 달아 주세요.

위 조건에 맞추어 Label 중 두 개 이상을 필수로 달아주셔야 하며, Label이 달려 있지 않을 시 답변을 하지 않을 수 있습니다.

Milestone

image

Milestone도 비슷한 방법으로 설정할 수 있습니다. Label이 어떤 분야의 이슈인지에 대한 내용이라면, Milestone은 언제 생긴 이슈인지에 대한 내용입니다. 같은 방법으로 달아주시기 바랍니다.

기타

이와 같이 Label과 Milestone을 부탁드리는 이유는 루키 여러분의 검색 편의 및 세미나장분들의 로드를 줄이기 위함입니다!

Label과 Milestone 말고는 달아주시지 않으셔도 괜찮습니다.

MySQL, Postman 입출력 형식 관련 질문입니다.

  1. 과제 (2)번에서 Python 3.8.3을 설치하라고 하셨는데 3.8.5 버전으로 진행하여도 괜찮을까요?

  2. (해결) 과제 (6)번에서 survey_surveyresult table을 출력할 때 mysql에서는 os_id가 출력이 정상적으로 되지 않는 문제가 발생합니다.
    정확한 원인은 모르겠지만 os_id만 뽑아서 따로 출력했을 때는 정상적으로 출력이 되고, DataGrip에서는 전체 table을 출력할 때도 정상적으로 출력이 됩니다.
    mysql에서 table 캡처 시에 혹시 이 부분을 무시해도 될지, 혹은 해결방법이 있을지 알고 싶습니다.
    --> 테이블이 커서 mysql Client 상에서 줄이 밀린 듯 합니다. 정상적으로 출력됩니다.

6-3
6-9

  1. (9), (10)번에서 예상 외의 parameter가 입력되었을 때,
    즉 (9)번에서의 status code가 404가 되도록 할 때와 (10)번에서 status code가 400이 되도록 할 때,
    Postman에서 status code가 404, 400를 반환하는지 여부 외에 따로 출력해야할 것이 있을까요?
    혹은 첨부한 사진처럼 빈 화면만 출력해도 괜찮을까요?

10-3

  1. (해결) (10)번에서 os가 될 수 있는 것이 Windows, MacOS, Linux라고 하셨는데
    os가 Linux인 데이터는 없고
    Linux 대신 Ubuntu (Linux)를 입력해야 제대로 출력이 되는 것 같습니다.
    이 부분 확인해주시면 감사하겠습니다.
    --> os 이름을 Linux가 아닌 Ubuntu (Linux)로 입력하면 된다고 합니다.

Backend 과제 7번 관련 질문

7번에서 postman을 통해 get api/v1/results/{surveyresult_id}를 호출하라고 기재되어 있어서, 제가 따로 구현해야 하는 부분이 없는 것으로 이해했습니다. 그러나, 호출해보면 아래 사진들 처럼 나옵니다.

스크린샷, 2021-09-02 14-34-00

vscode 터미널에 가보면 아래와 같이 나오는데,
스크린샷, 2021-09-02 14-33-59

처음에는 오류라고 생각해서, primary key row와 관련하여 구글링해보았으나, 위와 같이 { ~~~ }를 통해 primary key row를 호출해내는 방법론은 찾아내지 못했습니다.

vscode 터미널에서 {surveyresult_id}를 'id'의 일종으로 인식하는 것으로 보아, urls에 제가 추가적인 구현을 해야하는 것으로 보여지는데, 문제의 의도가 맞는것인지 아니면 제가 오류에 봉착한 것인지 여쭙고 싶습니다.

Backend 과제 질문(6번, 8번, 번외)

안녕하세요 과제 중 질문이 생겨 이렇게 남깁니다.
저는 wsl2를 이용해 ubuntu를 사용하고 있습니다.

survey_surveyresult 1
질문

6번의 경우, 제가 survey_surveyresult, survey_operatingsystem table을 DataGrip을 이용해 출력하고자 했는데
1번째 사진과 같이 한글이 깨졌습니다. 구글링 결과 utf-8로 출력하면 해결되야 한다고 해서, 2번째 사진과 같이 setting에서 encoding 부분을 전부 utf-8로 바꿔주었음에도 여전히 깨져서 출력되었습니다. 혹시 해결책이 따로 있나 궁금합니다.

8번에서는 이미 짜여져 있던 get_survey_results 함수에서 GET request를 받았을 때 params =request.GET.get('os')라는 코드가 있는데 이 코드의 역할을 이해하지 못했습니다. 구글링으로도 명확한 답을 얻기 어려워 질문 드립니다.

번 외로, mysql을 사용하려 할때, 어떤 페이지에선s mysql -u root -p를 사용하라 하고, 어디서는 sudo /urs/bin/mysql -u root -p를 사용하라고 합니다. 후자가 정확히 경로를 지정해서 sudo로 강제실행시키는 느낌인데, 저는 후자만 정상적으로 기능하고 전자는 작동하지 않았습니다. 특별한 이유가 있을까요?

backend 과제 8번 operatingsystem id 접근 관련 질문입니다.

안녕하세요. backend 과제에서 views.py를 수정하던 중, 어떻게 operatingsystem_id에 접근할 수 있는지 모르겠어서 issue를 남기게 되었습니다. operatingsystem 내 id는 멤버 변수가 아닌데 어떻게 접근할 수 있는지 궁금합니다! 과제에서 주어진 부분을 참고하여 첨부한 사진과 같이 해보고자 했는데, 이렇게 하면 TypeError: 'OperatingSystem' object is not iterable와 같은 에러가 뜹니다. 처음부터 접근 방식이 잘못된 것 같은데, 힌트 주시면 감사하겠습니다.
issue

[React Assignment 0] keyup과 한글입력 관련 질문

안녕하세요?
19.5기 루키 조형근입니다.
React 과제 0번에서 학생입력을 'Enter'키로 구현하는 과정에서 생긴 궁금증입니다!

처음 Javascript 코드 작성 시
EventTargetaddEventListener() 메서드 옵션을 keyup으로 설정하여 실행해보았습니다.
그 결과 영어는 별 문제 없이 작동이 되는데,
한글을 입력하고 Enter를 누르면 학생 추가 이벤트가 두 번 중복으로 실행되었습니다.

현재는 keyup 대신 keypress 로 변경해 해결한 상태이긴 합니다만,
keyup 옵션에서 한글입력 시 이벤트가 두 번 실행되는지 궁금하여 issue로 올리게 되었습니다~!
감사합니다!

우분투 듀얼 부팅 설치에 관해 질문이 있습니다

안녕하세요, 루키 오이석입니다.
리눅스를 구동시키기 위해 듀얼 부팅에 대해 알아보고 있는 가운데, 궁금한 점이 생겨 질문 드립니다.

  1. 우선 일반적으로 USB에 Linux를 깔아서 듀얼부팅을 한다고 알고 있는데, 혹 이를 micro SD 카드로 하면 지장이 있을까요? micro SD 카드의 속도가 더 느려 문제가 생길지가 걱정입니다. (서피스 프로 7을 사용하는데, 찾아보니 최소 30MB/s ~ 최대 100MB/s의 읽기 속도 정도의 성능을 낼 수 있을 것 같습니다.) 이번 백엔드에서 장고 세미나에 참여할 것 같은데, 이 정도 수준에서 보시기에 지장이 있을 것 같나요?

  2. 내장 SSD에 용량이 얼마 남지 않아 내장 SSD에 파티션을 주기보다는 리눅스를 설치할 USB/SD 카드에 파티션을 주어서 OS와 저장공간 둘다 사용하려 하는데, 이 역시 혹 지장이 있나요?

시간 내어 읽어주셔서 감사합니다.

mysql service start fail

pip list에서 mysqlclient가 존재하는 것도 확인했고, sudo apt-get을 통해 mysql-server와 mysql-client도 설치하였는데, 다음과 같이 mysql이 시작되지 않습니다.

혹시 해결 방법을 아시는 분이 계시면 알려 주시면 감사하겠습니다.
image

Python 가상환경 버전 변경

requirements에 python의 버전이 3.8이어야 한다고 나와있는데 제 컴퓨터에는 3.9, 3.8이 모두 설치되어 있는 것으로 나오는데, 3.8로 가상환경을 만들려고 하면 에러가 뜹니다. 어떻게 해결해야 하나요? 위에는 python3.8이 설치되어 있는 경로에서 3.8이 있음을 확인한 것입니다.
스크린샷 2021-09-03 오후 12 09 43

ReactJS 세미나의 참여 요건이 궁금합니다.

안녕하세요. 이번 Rookie로 활동하게 된 정성태입니다.
어떤 세미나에 참여할지 고민하던 중 궁금한 점이 생겨 질문 올립니다.

Frontend의 ReactJS 세미나에 참여하기 위해 갖추어야 할 요건에는 어떤 것들이 있을까요?
이를테면
▶ HTML과 CSS를 간단히 다뤄주신다고 하셨는데, 그렇다면 이에 대한 사전지식이 어느 정도 필요한 것인지
▶ Javascript의 기본적인 문법은 모두 알고 있다고 가정하고 세미나가 진행되는 것인지
같은 것들이 궁금합니다!

백엔드 과제 0번 질문입니다.(mysql command 문제)

안녕하세요. 백엔드 세미나를 수강하고 있는 김남태라고 합니다.

세미나0에서 진행했던것 처럼 터미널에서 pip3 install -r requirements.txt 를 통해
mysqlclient를 설치했습니다.
스크린샷, 2021-08-29 14-55-44

터미널에서 설치가 되었다고 나타났고, python packages에서도 mysqlclient 2.0.1버전을 확인할수 있었습니다.
스크린샷, 2021-08-29 14-58-47

하지만 터미널에서 mysql.server start 를 실행했을 때, 'mysql.server: 명령을 찾을 수 없습니다.' 라고 뜨는 상황입니다.
스크린샷, 2021-08-29 15-10-08

이에 관련해서 'mysql.server cant find command'로 검색했을 때, mysql폴더를 path를 설정해주는 방식을 사용하라고 나와있는데(https://phoenixnap.com/kb/mysql-command-not-found-error) 가상환경에서 mysqlclient를 설치한 상태에서도 이러한 해결책이 유효한지 궁금해서 이슈를 올립니다.

GitHub Desktop에 관한 질문

저번 OT 때도 git을 사용할 때 cmd 등 프롬프트 창?을 이용해서 여러 기능들을 사용했었던 것 같은데,
GitHub Desktop 이라는 프로그램을 사용하면 비슷한 기능이 생각보다 많이 사용이 가능하더라고요 (repository 만들기, close, push, commit 등등...)
프롬프트 창을 이용하는 것이랑, GitHub Desktop을 이용하는 것이랑 각자의 장단점이나 Desktop에서는 사용할 수 없는 기능 등이 있나요??

backend 과제 9, 10번 status code 관련 질문입니다.

과제를 할 때 response의 status code를 특정하게 설정하는 것, 특히 에러를 일으키는 것과 관련해 궁금한 점이 생겼습니다.
과제의 요구사항으로 특정 status code 를 반환하는 것'만' 신경쓴다면, 아래처럼
raise Http404
return HttpReponseNotFound
return JsonReponse(~~~ , status=404) 나 이와 유사하게 직접 response 인스턴스에 status code를 설정해주는 것 등등등
모두 Postman에서 확인했을 때 status code 는 의도한 대로 반환이 됩니다. (다만 Http404 같은 경우는 django에서 제공해주는 standard error page 를 볼 수 있었고, 나머지는 제가 원하는 메시지를 넣으면 그것이 나타나는 정도의 차이가 있었습니다. 이는 장고 공식 문서의 view관련 문서에서도 설명을 찾아볼 수 있었습니다.)

  1. 그 외에도 어떤 에러를 나타내는 status code를 반환하며 response 를 전달하는 여러 가지 방법이 있을텐데 그러한 방식들의 차이나, 특정한 상황에 맞는 선택이 있을까요?? (django에 대한 이해가 부족해 질문이 다소 막연해서.. 읽어볼 만한 관련 문서를 추천해주신다면 감사하겠습니다!)

  2. 또한 get_object_or_404를 사용하지 말라고 하신 게 학습 목적 외에 특별한 이유가 있는지도 궁금합니다!

mysql migrate access denied

저번 세미나 영상을 다시 보면서 해보고 있었는데, migrate를 하면 다음과 같은 에러가 뜹니다.
에러메세지가 너무 길어서 처음과 끝만 첨부합니다.
스크린샷 2021-09-03 오후 8 41 19
스크린샷 2021-09-03 오후 8 41 36

Git push 할 때 username과 password가 잘못되어 authentication error가 발생합니다.

안녕하세요 authentication 이슈로 git push가 되지 않아 질문합니다

Personal Access Token을 발급받아서 keychain 암호도 해당 암호로 변경 완료했는데

chaeminlee@Chaeminui-MacBookPro 19.5-rookies % git push origin master
Username for 'https://github.com': chaemin2001
Password for 'https://[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/chaemin2001/19.5-rookies.git/'

계속해서 authentication fail 이 떠서 해결 방법 문의드립니다ㅜ

[PyCharm] Invalid Python interpreter selected for the project 오류

안녕하세요 백엔드 세미나를 듣고 있는 이민규입니다.

어차피 runserver 등의 명령들은 venv 가상환경에서 진행되므로 일단 과제0은 정상적으로 완료했습니다. 그런데 에디터에 문제가 있는 것 같습니다. system interpreter를 사용하면 제가 가상환경에 깔아놓은 library들이 인식이 되지 않아서 자동완성이 작동하지 않고, 원래대로 venv/bin/python 파일을 interpreter로 설정하면 Invalid Python interpreter selected for the project 라고 뜨네요... 구글링을 통해서도 마땅한 해결책을 찾지 못했는데 혹시 무엇이 문제인지 알 수 있을까요?
Screen Shot 2021-09-02 at 12 31 45 AM

Backend 과제 10번 관련 질문드립니다

10번에서 get()을 사용하라고 되어있는데 이 방법으로 작성한 코드를 assignment0에 포함시켜야 하는것인가요?
혹은 get_object_or_404를 사용한 코드를 assignment0에 포함시키고 10번은 따로 결과만 스크린샷으로 제출하면 되는 것인가요?

(예시) Array.prototype.map이 작동하지 않습니다.

이 질문은 예시입니다.

안녕하세요, 세미나 1 과제를 진행중인 18.5기 루키 우현민입니다.
배열의 map함수를 이용하여 구현하고 있는데, 결과가 예상대로 나오지 않아 질문드립니다.
아래는 저의 코드입니다.

const studentList = ['우현민', '김김김', '이이이'];

const items = studentList.map((item, index) => { 
    id: index, 
    name: item 
});

console.log(items); // [undefined, undefined, undefined]

데이터 가공 과정에서 문제가 생긴 것 같은데, 이 문서와 같은 map함수에 대한 레퍼런스를 아무리 찾아봐도 이유를 모르겠습니다. 어떤 부분에서 문제가 생긴 건가요?

세미나 4에 사용될 서버 배포 스택 관련 질문

안녕하세요, 프론트엔드 세미나 진행중인 우현민입니다.

프론트엔드 세미나 4 과제 출제를 위해 작은 서버를 하나 파고 있는데, 배포 스택을 아직 결정하지 못했습니다.
먼저 현재 사용된 스펙은 다음과 같습니다.

DB: postgresql, (typeORM)
Framework: NestJS

나머지 계획중인 부분은 다음과 같습니다.

Docker: 고민중
server: EC2 t3.nano
DB: server 인스턴스에 그냥 띄움 (크리티컬한 데이터도 아니고 용량도 얼마 없어요)

도커를 띄우는 게 맞을지 없어도 될지, DB는 저대로 인스턴스에 같이 띄워도 괜찮을지, EC2를 굳이 사용해야 할지 아니면 더 저렴한 방안이 있을지 고민중입니다.

루키분들 계정을 수동 생성해드려야 하기 때문에, psql 접속은 할 수 있어야 합니다.

스토리보드 구현과 코드 구현의 Best Practice가 궁금합니다.

안녕하세요. iOS 세미나 수강생 박신홍입니다.

과제 0번을 하면서 묘한 불편함이 좀 느껴졌었는데요.
곰곰이 생각해보니 가장 큰 이유가 스토리보드 구현과 코드 구현이 서로 연동이 안된다는 점인 것 같습니다.

예를 들어, 화면 전환은 스토리보드에서 쉽게 구현할 수 있지만 navigationController?.pushViewController(controller, animated: true)와 같이 코드로도 구현할 수 있다고 배웠는데요. 문제는 코드로 구현하게 되면, 스토리보드 상에서 Navigation Controller와의 연결이 끊어지기 때문에 스토리보드 Inspector를 이용하여 Navigation Item의 값들을 조정할 수 없게 됩니다.

이처럼 어떤 View의 일부 속성을 스토리보드 Inspector로 조정하고, 다른 일부를 코드로 구현하게 되면, 나중에 이 View를 유지보수하게 됐을 때 스토리보드 Inspector를 봐야할지, 코드를 고쳐야할지 꽤 헷갈릴 것 같다는 생각이 들었습니다.

저만 이런 불편감을 느끼는 건 아닐 것 같은데, 혹시 Xcode 개발을 할 때 주로 사용되는 기준이나 Best Practice가 있다면 공유해주시면 도움이 될 것 같습니다. 스토리보드를 아예 사용하지 않을 수 있다면 좋겠지만, UIKit에 익숙하지 않은 지금 단계에서는 효율이 많이 떨어질 것 같아서요.

감사합니다.

WSL이 무엇인지 정확히 이해가 안 됩니다.

안녕하세요.

저는 현재 Windows 노트북을 사용하고 있는데, OT 때 Linux 환경을 갖추는 게 좋다고 말씀하셔서 WSL2를 설치했습니다.
그런데 이게 어떤 역할을 하는 것인지, 어떻게 사용해야 하는 것인지 잘 이해가 되지 않아 질문글을 쓰게 되었습니다.

어떤 프로그램을 설치했을 때, Linux 환경에서 실행하고자 한다면 Windows 버전을 설치하는 것이 아니라 Linux 버전을 따로 설치해야 하나요?
이를테면 Backend 세미나에 참여하기 위해 필요하다고 말씀해주신 mySQL을 어떻게 설치해야 하는지를 모르겠습니다. 일단은 Linux 터미널을 이용해서 설치를 해보긴 했는데 맞는지 잘 모르겠네요.
VSCode의 경우 WSL extension을 따로 설치해서 Linux 환경으로 연결할 수 있는 것 같던데, 이런 식으로 각 프로그램마다 알맞은 방법을 찾아서 따로 적용해주어야 하는 것인지 궁금합니다.

구글링을 해보았는데 WSL을 설치하는 방법에 대한 문서가 대부분이고 자세히 설명된 것은 찾지 못해서 이렇게 질문 드립니다.

Android Kotlin 개념 중 R.drawable의 type에 대한 질문입니다

안녕하세요.
과제와 관련된 질문은 아니지만, 안드로이드장님께서 추천해주신 Android kotlin 기초 codelab 실습을 따라하다 궁금한 점이 생겨 질문 올립니다.
01.3 Image resources and compatibility의 coding challenge를 수행하다 생긴 궁금증입니다.
Challenge link : https://developer.android.com/codelabs/kotlin-android-training-images-compat#7
code link : https://github.com/google-developer-training/android-kotlin-fundamentals-apps/blob/master/DiceRollerFinal-challenge/app/src/main/java/com/example/android/diceroller/MainActivity.kt
Challenge에서 Tip으로 주어진 getRandomDiceImage 함수의 경우 Int를 return type으로 가지는데, 이 구현은 code link 내 57~68 line에 구현되어 있습니다. 여기서 제가 가진 궁금증은, 결국 return으로 보내는 객체(?)가 R.drawable.dice_x 일텐데, 이것이 왜 int type인지 궁금합니다. 결국 이 객체를 setImageResource의 input으로 입력하는 것도 이해했는데, 저 객체가 int type인 게 와닿지 않아 질문드립니다.
현재까지 구글링을 해보았으나, 명쾌한 설명이 없어 질문을 올려봅니다.
감사합니다.

iOS 과제 StackView, AlertView에 관한 질문

  1. 과제 스펙을 보면 모든 View에 Auto Layout을 적용하라고 나와있는데, StackView의 자식 View들에도 적용해야 하나요?
  2. AlertView를 띄워야하는 조건이 이상한 것 같습니다. username이 (1)두 글자 이하일 때 (2)두 글자 이상이어야 한다는 경고를 띄우라고 하셨는데, 둘 중 하나를 (1)한 글자 이하 또는 (2)세 글자 이상으로 바꾸는 것이 적절해 보입니다.

백엔드 과제 8-9번, 10번 형식에 관한 질문

1.8번에 보면 여기까지 개발한 내용을 repository에 포함시켜 달라는 내용이 있는데 그러면 10번에 수정한 내용은 포함시키지 말라는 것인가요???
2.status를 200 Ok로 표현하라는 이야기는 콘솔에 그냥 200이 뜨게하라는 것인가요? 아니면 Ok까지를 요구하는 건가요?
(404 not found, 400 bad requset 등 )

Android assignment0에서 EditText사용에 대해 질문드립니다.

'''kotiln

    numberInput.addTextChangedListener(object : TextWatcher{
        override fun afterTextChanged(p0: Editable?) {

        }
        override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {


        }
        override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
            val number = numberInput.getText().toString() + " "
            numberInput.setText(number)
        }
    })

'''

EditText에 1234를 입력할 때 1 2 3 4 이런식으로 보여지게 하고 싶어서 TextWatcher로 시도해보았는데
에뮬레이터가 멈춥니다... 왜 그런지 알고 싶습니다..(제가 공부가 너무 오랜만이라 너무 기초적인것도 모르겠네요 ㅠㅠ)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.