원서 접수
온라인 접수를 통해 지원한다. 인적 사항과 간단한 자기 소개를 작성하고 1분 자기 소개 영상도 제출해야 한다. 영상도 내야 하는 줄 몰라서 제출 마지막 날에 부랴부랴 영상을 찍어 제출했다.
자료 배부 & 개별 공부
입학 시험으로 과제가 나오는데 이를 위한 공부 자료를 제공해준다. 2주 동안 주어진 자료를 열심히 공부한다. 자료에는 프론트엔드부터 백엔드, 데이터베이스 설치 및 사용법 그리고 배포 과정까지 설명 되어 있다.
입학 시험
하루 동안 요구 조건에 맞는 웹사이트를 만들어 제공해야 한다. 간단한 웹 사이트를 만들어 제출한다. AWS에 도메인과 함께 올려 제출해야 하는데, 늘 그렇듯 배포하는 과정에서 시간을 꽤나 소비했다. Backend, Frontend 개발부터 배포까지 완료한 후 제출하는데 이 부분에서 Frontend의 매력을 느끼게 되었다. 시간 내 완성하여 제출했다.
화상 인터뷰
줌을 통해 인터뷰를 진행한다. 원하는 날짜와 시간대를 선착순으로 정하는 방식이다. 인터뷰 당일에는 운영자 4분이 다 참석하셨고 지원자는 나를 포함해서 3명이었다. 나중에 들어와보니 같이 면접을 봤던 두분도 합격하여 같은 반에서 만날 수 있었다.
면접 질문은 지원 동기와 지난 활동에 대해 물어보셨다. 나한테는 현재 다니고 있는 회사는 어떻게 할 것인지 등에 대해 물어보셨다.
서류 제출
기숙사에 들어가기 위해선 제출해야 하는 서류들이 몇가지 있었다. 폐결핵 정상 소견서, PCR 음성 확인서, 백신 접종 증명서 등 몇가지 서류를 제출했다.
입학 자료 정리글
1) 가상 환경 활성화하기
# 새 가상 환경 만들기
python3 -m venv .venv
# 외부 코드 실행 허용하기 (Powershell로 실행)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# 가상환경 활성화 시키기
.venv\Scripts\activate
# 필요한 패키지 설치하기
pip install requests beautifulsoup4 pymongo flask
2) Frontend
- 보통 css style을 적용하고 싶으면 class, function을 지정하고 싶으면 id를 사용
- Popovers는 버튼 클릭 시에 나타나는 설명을 구현하고 싶을 때, Tooltips는 커서를 개체 위에 위치하면 나타나는 간단한 설명을 구현하고 싶을 때 사용
// 사진 가운데로 가져오기
background-position: center;
// 사진 꽉차게 배치하기
background-size: cover;
- 객체를 가운데로 가져오고 싶을 때 전체 요소를 감싸는 div를 만들고 이것에 width 준 다음 margin: auto 지정
- form 태그 안에 button이 있을 경우 버튼 클릭 시 자동으로 새로고침되어 문제가 될 수 있으니 form 태그는 div 태그로 변경하여 사용하는 것을 권장
// 리스트 + 반복문
fruits = ['사과','배','감','귤']
for i in range(len(fruits))
fruit = fruits[i]
print(fruit)
- val()은 input box값 변경할 때, text()는 button 텍스트값 변경할 때, append()는 html 요소 추가할 때 사용
$("#post-box").css("display", "none");
$("#opencloseButton").text("포스팅 박스 닫기");
// 로딩되자마자 실행되도록
$(document).ready(function(){
alert('페이지가 로딩되었습니다.')
});
// Javascript의 GET API 받기
function gettest () {
$.ajax({
type: "GET",
url: "/test?title_give=봄날은간다",
data: {},
success: function(response){
console.log(response)
}
})
}
// Javascript의 POST API 받기
function posttest () {
$.ajax({
type: "POST",
url: "/test",
data: { title_give:'봄날은간다' },
success: function(response){
console.log(response)
}
})
}
3) Backend
- 파이썬은 증감연산자가 없다. i++, i--
- 불 자료형에서 첫글자는 대문자여야 한다. True, False
# 리스트 + 반복문
fruits = ['사과','배','감','귤']
for fruit in fruits:
print(fruit)
# Flask의 GET API 작성
@app.route('/gettest', methods=['GET'])
def test_get():
title_receive = request.args.get('title_give')
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
# Flask의 POST API 작성
@app.route('/posttest', methods=['POST'])
def test_post():
title_receive = request.form['title_give']
print(title_receive)
return jsonify({'result':'success', 'msg': '이 요청은 POST!'})
4) AWS 서버 배포
1. AWS 인스턴스 생성 후 인바운드 규칙 생성
- 80 - HTTP
- 5000 - Flask
- 27017 - MongoDB
2. 서버 접속
// Git bash를 관리자 권한으로 실행하지 말 것
ssh -i 키 ubuntu@54.180.31.95
// python 이라는 명령어로 3 버전 이상을 실행하도록 하는 명령어
sudo apt install python-is-python3
// pip3 설치
sudo apt update
sudo apt install -y python3-pip
// 버전 확인
pip --version
// 패키지 설치하기
pip install requests beautifulsoup4 pymongo flask
3. MongoDB 설치
curl -sS https://pgp.mongodb.com/server-6.0.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-6.0.gpg
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update
sudo apt install -y mongodb-org
sudo service mongod start
// mongoDB 쉘에 들어가기
mongosh
// admin으로 계정 바꾸기
use admin;
// 계정 생성하기
db.createUser({user: "jiwon", pwd: "jiwon", roles:["root"]});
// mongoDB 쉘에서 나오기
exit
// MongoDB 재시작
sudo service mongod restart
sudo vi /etc/mongod.conf
0.0.0.0
security:
authorization: enabled
// 재시작
sudo service mongod restart
4. 코드 업로드 후 실행
// 포드포워딩 룰 입력
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
// 해당 디렉토리에서 파이썬으로 코드를 실행
nohup python app.py &
http://54.180.31.95:5000
http://54.180.31.95
// 중지하기
// 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'
// 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]
5. 도메인과 아이피 매핑
http://jiwonseo.site
해당 도메인으로 접속하여 서비스가 잘 동작하는지 확인 후 보기 좋게 데이터 몇가지 입력한 후 제출
'그냥 하기 > in the 정글' 카테고리의 다른 글
[정글] WEEK 03 | 이제 좀 감이 오는 것 같기도 (0) | 2023.11.03 |
---|---|
[정글] WEEK 02 | 분할 정복을 정복해보자 (2) | 2023.11.03 |
[정글] WEEK 01 | 두뇌를 말랑하게 만들어보자 (0) | 2023.11.03 |
[정글] 특별한 과제 | 에세이 작성 (1) | 2023.11.03 |
[정글] WEEK 00 | 생각보다 더 재밌잖아~!~! (0) | 2023.11.03 |