11월 30일에 한이음 프로젝트가 공식적으로 종료된다.

마지막으로 한이음에서 프로젝트 성과물 등록을 지원해주는데

우리는 앱 등록을 하기로 했다.

 

구글 플레이스토어 앱 등록 절차 설명 :

https://support.google.com/googleplay/android-developer/answer/6112435?hl=ko#zippy=%2C%EB%8B%A8%EA%B3%84-google-play-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EA%B3%84%EC%A0%95-%EB%A7%8C%EB%93%A4%EA%B8%B0 

 

Play Console 사용 방법 - Play Console 고객센터

도움이 되었나요? 어떻게 하면 개선할 수 있을까요? 예아니요

support.google.com

 

오늘은 개발자 계정 등록까지 해보는걸로~~

 

먼저 구글 계정을 새로 만들었다.

개발자 계정으로 만들기 위해서는 2단계 인증을 반드시 거쳐야한다.

 

2단계 인증을 완료하면 구글 플레이 콘솔에서 개발자 계정 생성을 시작한다.

 

 

개발자 이름(추후 수정 가능), 담당자 이름, 연락처 이메일 주소, 연락처 전화번호, 웹사이트를 입력하고

Google Play 개발자 배포 계약 동의와 Google Play Console 서비스 약관 동의를 한다.

 

입력을 완료하면 결제 화면으로 넘어간다.

VISA 카드 번호와 유효기간, CVC 번호를 입력해서 결제 완료!

 

 

최초 개발자 계정 등록시에 25달러가 결제된다.

등록 수수료 영수증은 이메일로 왔고 결제 금액을 보니 3만원 정도 나왔다.

계정 생성 완료까지는 생각보다 간단했다.

 

 

콘솔을 둘러보니 개발자 계정에 접근할 수 있는 사용자를 추가할 수 있었다.

다음과 같이 각 사용자에 대해 권한을 관리할 수 있었고 모든 권한으로 팀원들을 초대했다.

 

 

지난 9월까지는 개발 마무리 및 사용자 테스트를 진행하고

개발한 앱으로 한이음 공모전 2차 접수ACK 2021 학술발표대회 논문 최종본 제출을 완료했다.

 

한이음 공모전

1차 평가로 200팀이 합격하고 그 중 140팀이 2차 평가에 합격한다.

 

2차 접수는 1차 평가 때 제출한 개발보고서, 제작설계서를 보완하고 시연 동영상을 제출해야했다.

보고서와 설계서는 앱 디자인 변경으로 인해 캡쳐 이미지를 변경하여 간단히 수정을 마쳤다.

 

문제는 시연 동영상 제작이었다. 영상 길이는 1분 내로 제작해야 한다는 조건이 있었다.

앱에서 제공하는 기능이 크게 5가지정도 있는데 이것을 전부 보여주기엔 1분이라는 시간은 부족했다.

따라서 어떤 기능을 중점적으로 보여줄지 정하고 나머지 기능 분량은 최대한 줄여야했다.

 

https://www.youtube.com/watch?v=YxmgPSXDh0c 

2021 한이음 ICT 멘토링 : 학교폭력 문제해결을 위한 앱, 마음이 시연 영상

 

주요 기능인 AI상담과 진단테스트를 중점적으로 보여주고 나머지 기능은 간단하게 보여줬다.

10월 18일까지 2차 접수 마감이었고 우리 팀은 15일에 제출 완료했다.

 

그리고 오늘, 26일에 2차 평가 결과가 나왔다.

 

 

2차 평가 결과 합격한 작품은 입선예정작과 3차 평가 대상작(본상)으로 나뉘는데

우리 팀은 3차 평가 대상작이라고 결과가 나왔다. 최소 장려상!!

2차 평가 합격한 팀은 모두 12월 3일 엑스포 전시에 참가해야한다.

그리고 11월 6~7일에 코엑스에서 3차 평가가 이루어지기 때문에 발표 준비가 필요하다.

 

팀원 모두 열심히 프로젝트에 참여한 덕분에 공모전 2차 합격을 할 수 있었다고 생각한다!

다들 4월부터 고생 많았는데 11월 공모전 수상까지 받으면 너무 좋을 것 같다.

 

 

ACK 2021 학술발표대회

지난 9월 말에 논문 투고를 완료했었고 10월 18일에 '게재 가능' 심사 결과를 전달받았다.

정보처리학회측에서 정말 친절하게 논문 피드백도 해주셨다.

 

기존 서비스의 기능이 분절적으로 제공되고 있다는 점에 착안하여 통합 시스템을 구현한 점,

진단테스트 제작 시 신뢰할 수 있는 문항을 기반으로 설계한 점,

진단테스트와 AI상담 기능의 시너지 효과를 기대할 수 있다는 점에 대해 좋은 평가를 받았고

 

영상 시청을 통한 교화, 게시판 기능 제한 등 논문에 명확하게 표현되지 않은 부분을 짚어주셔서

부족한 점을 보완하여 최종본을 제출할 수 있었다.

 

 

올해 학술발표대회는 코로나로 인해 온라인으로 진행되며 실시간 발표를 대체하여 발표 영상 제출이 요구되었다.

팀원 모두 ICT 학술 논문을 작성하는 것이 처음이라 여러모로 어려움을 겪었는데 게재 수락이 되어 다행이었다.

학술적인 관점에서 글을 작성하는 법을 조금은 익힌 것 같다.

 

공모전 수상도 확정되고 논문 제출도 완료했고...

올해 계속 진행한 프로젝트에 대한 보상을 받는 듯한 느낌

좋은 10월이다 ~_~

최근 한달간 자소서와 포트폴리오를 작성하느라 프로젝트 개발을 많이 못한 듯 하다😅

이번 학기 내에는 웹 메신저 프로젝트를 끝낼 수 있도록 다시 열심히 개발해야겠다.

 

주요 기능 자체는 거의 완성이 되어서 그동안 제대로 고려하지 못했던 디자인을 손대기로 했다.

먼저 웹 사이트 전체 폰트는 Google Fonts(https://fonts.google.com/)에 있는 Noto Sans를 적용했다.

 

웰컴 화면, 로그인 화면, 회원가입 화면을 꾸미기 위해 어떤 배경을 넣을지 고민하다가

무난하게 그라데이션 배경으로 선택했다.

 

https://www.gradient-animator.com/

위 사이트에서 색상, 속도, 그라데이션 적용 방향 등을 선택하면 자동으로 코드를 생성해준다. 매우 편리함!

 

웰컴 화면, 그라데이션 애니메이션이 적용된 배경

배경은 기존 사이트와 유사하게 푸른 계열의 그라데이션을 넣었고

배경 텍스트와 버튼 배경을 흰색으로 변경했다.

 

 

로그인과 회원가입 화면도 마찬가지로 수정했는데 폼 양식은 흰 배경을 줬다.

 

 

 

배경 애니메이션을 영상으로 녹화했다ㅋㅋ 뭔가 볼수록 힐링되는 느낌...

 

웹 프론트엔드 개발자가 되기 위해 디자인 감각을 키우는게 필요하다고 생각해서

프로젝트 진행하면서 UI/UX에 대한 고민을 스스로 많이 해봐야겠다.

1주차에는 웹서버를 구축하고 웹 페이지의 기획서를 작성해보았다.

웹서버 구축을 통해 AWS에 처음 가입하여 사용해보았고 VPC, 서브넷, EC2 등의 개념을 알 수 있었다.

 

기존에 프론트엔드를 위주로 학습하다보니 Google Firebase를 이용하여 간편하게 서버리스 아키텍처를 구현한 적은 있으나

이렇게 직접 네트워크를 설정하고 서버를 열어서 웹 페이지에 접속해본건 처음이었다.

전공 과목 내장형시스템 수업에서 PuTTY를 이용해본 적은 있으나, 왜 사용하는지 잘 이해가 되지 않았는데 이번에 과제를 수행하면서 알게 되었다.

개발 지식에 비해 상대적으로 부족했던 네트워크 개념을 학습할 수 있는 시간이었다.

 

또한, 웹 페이지 기획서를 직접 작성하면서 기획 과정에서 고려해야할 부분에 대해 생각해볼 수 있었다.

AWS Calculator을 이용하여 처음으로 비용 산정을 하는게 낯설었지만 비용 산정 시 고려할 값에는 어떤 것이 있는지 알게 되었다.

 


 

웹서버 만들기

네트워크 설정

VPC 생성하기

  • VPC(Virtual Private Cloud) : 사용자의 AWS 계정 전용 가상 네트워크
  • 하나의 VPC는 하나의 Region 내에서만 생성 가능
  • Default VPC는 실무에서 사용하지 않는다, 큰 서비스 단위로 VPC를 생성하여 사용한다.
  • VPC이름 / IPv4 CIDR 블록 (IP 대역대) 지정 후 생성 완료

서브넷 만들기

  • Public 서브넷과 Private 서브넷으로 나뉘어짐
  • Private 서브넷은 인터넷 inbound/outbound가 불가능하고 다른 서브넷과의 연결은 가능함
  • Public 서브넷 생성하기
    • 생성한 VPC 선택
    • 가용 영역 설정 (프리티어는 a존만 이용 가능하다)
    • IPv4 CIDR 블록 지정

인터넷 게이트웨이 생성

  • VPC의 구성 요소로 인스턴스와 인터넷 간의 통신을 가능하게 함
  • 만들었던 VPC와 연결하는 작업 필요

 

EC2 설정

  • EC2로 AWS의 컴퓨터 한대를 빌려서 사용할 수 있음
  • 원하는 스펙의 가상 서버를 구축하고 사용한 만큼의 비용을 지불함

보안그룹 만들기

  • 만들었던 VPC와 연결하기
  • 인바운드 규칙 : EC2로 들어오는 방향의 제어를 설정함
    • TCP 포트번호 22 (SSH) / 소스 : 내 IP
    • TCP 포트번호 80 (HTTP) / 소스 : 내 IP
  • 다른 사람에게 공개할 목적으로 구축하는 것이 아니므로 내 IP로 설정한 것

EC2 인스턴스 만들기

1단계 : AMI (Amazon Machine Image) 선택하기

  • AMI란 EC2가 만들어낼 때 사용하는 OS 정보가 담긴 이미지 파일
  • Linux2 AMI가 가장 일반적으로 사용된다.

2단계 : 인스턴스 유형 선택

  • EC2의 제품 스펙을 설정하는 단계
  • vCPU란 실제 물리 CPU를 논리적으로 쪼개서 사용하는 가상 CPU임
  • 프리티어로 이용

3단계 : 인스턴스 세부 정보 구성

  • 인스턴스 개수는 1개로, 네트워크와 서브넷은 만들었던 VPC와 서브넷 선택
  • 퍼블릭 IP 자동 할당을 활성화하여 인터넷망을 사용한다.
  • 인스턴스 종료 시 자동으로 삭제되도록 종료 방식 설정

4단계 : 스토리지 추가

  • EBS(Elastic Block Storage)는 EC2에 주로 사용되는 스토리지 유형으로, 용량 증설은 가능하나 축소는 불가능하다.
  • EBS옵션은 GP2나 GP3 중 아무거나 선택
    • GP2 : 일반적인 SSD 방식
    • GP3 : 업그레이드 된 SSD 방식으로, 1TB 미만일 때도 최저 네트워크를 보장한다.
  • 30GB까지 무료로 이용 가능하다.

5단계 : 태그 설정

  • 관리자가 확인하기 편하도록 구분하는 것, 반드시 설정할 필요는 없음

6단계 : 보안 그룹 구성

  • 미리 만들었던 보안 그룹 선택

7단계 : 인스턴스 시작 검토

  • 앞서 선택한 옵션을 확인하고 생성하기
  • 새 키 페어 생성 - 키 페어 이름 설정 후 다운로드 (.pem 파일)
  • 키 페어 파일은 재발급되지 않으므로 잘 보관해야함

 

서버 열기

  • Windows에서는 pem 파일을 직접 사용할 수 없음
  • 따라서 ppk 파일로 변환하는 작업을 거쳐야한다.

PuTTY 다운로드

pem -> ppk 파일 변환

  • PuTTYgen 실행
  • File - Load private key에서 pem 파일을 불러온 후 save private key 버튼 클릭
  • ppk 파일은 C드라이브의 aws 폴더 안에 보관하는게 국룰이라고 함

PuTTY에서 서버 설정하기

  • PuTTY는 서버에 접속할 수 있는 툴
  • 관리자가 작업하기에 가장 좋은 환경은 SSH 클라이언트이다.
    • EC2에서 할 수 있는 대부분의 작업 수행 가능
    • 개발자가 가장 선호하는 서버 접근 방식
  • Connection - SSH - Auth 메뉴에서 ppk 파일 불러오기
  • Session 설정
    • Host Name (for IP address) : EC2 인스턴스의 Public IPv4 주소 입력
    • Saved Sessions에 현재 세션을 Save, 설정한 정보는 Load를 통해 불러올 수 있음
  • Open 버튼을 클릭해서 서버에 접속한다.

EC2 접속하기

  • 아이디는 ec2-user (AWS Linux를 사용할 때 최고 권한을 가진 사용자 계정)
  • EC2를 웹서버로 바꾸기 위해 Apache 다운
sudo yum install httpd -y
  • Apache 시작하기
sudo service httpd start
  • http://(EC2 Public IP):80 으로 웹사이트 접속 가능

 


 

EC2 추가 관리 기능

고정 IP 부여하기

  • 기본적으로 EC2를 중지하면 재시작할 때 IP 주소가 변경됨
  • 이것을 방지하기 위해 고정 IP를 설정함
  • 탄력적 IP 주소 연결 - 생성한 인스턴스 선택해서 연결하기

백업본 이미지 만들기

  • EC2 백업은 AMI + EBS 백업을 통해 이루어진다.
    • AMI : OST 정보가 담겨있음
    • EBS : 스토리지 백업으로 웹서버가 백엄됨
  • 인스턴스 선택 후 작업 - 이미지 및 템플릿 - 이미지 생성 선택
  • 이미지 이름과 설명 입력 후 생성 완료 (AMI, EBS는 자동 생성됨)
  • 백업된 AMI 이미지를 복원해서 새 EC2를 만들 수 있다.

 


웹 페이지 기획하기

1. 웹 페이지 기획 목적

  • 웹 페이지 디자인 및 구현 경험
  • 공부한 기술 스택 목록 정리
  • 진행했던 프로젝트 목록 정리

2. 트래픽 목표 수치 산정

  • 일주일에 한 번 접속, 한 번 접속 시 평균 5분의 사용 시간을 예상함
  • 누구나 접속할 수 있는 페이지이므로 24시간 내내 오픈되어야 함
  • 1개월에 최대 1시간의 사용량을 가질 것

3. 컨텐츠 종류 파악

  • 텍스트 박스
  • 이미지 파일 : 파비콘(.ico) 1개, 픽토그램(.png) 약 5개, 프로필 이미지(.jpg) 1개, 프로젝트 썸네일(.png) 약 5개

4. 기술 선정

  • HTML, CSS, Javascript 언어 사용
  • AWS EC2 웹서버

5. 비용 산정

  • AWS 프리티어 이용 시 처음 12개월 동안은 무료로 사용
  • AWS Simple Monthly Calculator을 이용하여 인스턴스 비용 산정

  • t3.xlarge Linux 유형의 인스턴스 1개가 1개월에 1시간의 사용량을 가진다면 월별 비용은 $0.21일 것으로 나타남

AWS EC2 서버 구입

  • Ubuntu Server 10.04 LTS 선택
  • Key Pair 생성 후 다운로드

 

AWS EC2 접속하기

  • Git bash 실행해서 다음과 같이 입력
ssh -i 받은키페어드롭 ubuntu@AWS에서EC2의IP
  • Key fingerprint 관련 메세지 → Yes 입력
  • Git bash 종료 시 exit 입력해서 ssh 접속 끊기

 

AWS 보안그룹 설정

  • 해당 EC2 인스턴스 보안그룹 설정

→ 80포트: HTTP 접속을 위한 기본포트

→ 5000포트: flask 기본포트

→ 27017포트: 외부에서 mongoDB 접속을 하기위한 포트

 

AWS EC2 세팅하기

FileZilla 접속

  • new site 만들기
  • SFTP 프로토콜로 설정, Host에 IP 주소 입력, 포트 번호 22
  • user 이름 입력, key file 찾기

EC2 한번에 세팅하기

sudo chmod 755 initial_ec2.sh
./initial_ec2.sh

 

AWS 배포하기

Robo 3T

  • Create 클릭해서 접속 정보 세팅
  • Connection : Name, Address - IP주소, 포트 번호 - 27017
  • Authentication : Databse 이름, User Name과 Password (현재는 test, test임)

FileZilla로 작업한 파일 업로드

  • app.py의 pymongo 세팅 부분을 바꿔서 업로드
client = MongoClient('mongodb://test:test@localhost', 27017)

Flask 패키지 설치 후 실행

pip install flask pymongo
python app.py

 

nohup 설정하기

  • SSH 접속을 종료해도 서버가 계속 실행되도록 함
# 실행하기
nohup python app.py &

# 종료하기
ps -ef | grep 'app.py' # pid값 확인
kill -9 [pid값] # 특정 프로세스 끝내기

나홀로일기장 만들기

 

서버-클라이언트 연결 코드 만들기

  • GET : 데이터 조회(Read) 요청 시 사용
  • POST : 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 시 사용
  • 기본 Flask 코드
from flask import Flask, render_template, jsonify, request
app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

if __name__ == '__main__':
    app.run('0.0.0.0', port=5000, debug=True)

GET 요청

  • Javascript 로딩 후 실행
$(document).ready(function () {
	alert("!!");
})
  • GET 요청 Ajax 코드
$.ajax({
	type: "GET",
	url: "/diary?sample_give=샘플데이터",
	data: {},
	success: function(response){
		alert(response["msg"])
	}
})
  • GET 요청 API 코드
@app.route('/diary', methods=['GET'])
def show_diary():
	sample_receive = request.args.get('sample_give')
	print(sample_receive)
	return jsonify({'msg': 'GET 연결 완료!'})

POST 요청

  • POST 요청 Ajax 코드
$.ajax({
	type: "POST",
	url: "/diary",
	data: {sample_give:'샘플데이터'},
	success: function(response){
		alert(response['msg'])
	}
})
  • POST 요청 API 코드
@app.route('/diary', methods=['POST'])
def save_diary():
	sample_receive = request.form['sample_give']
	print(sample_receive)
	return jsonify({'msg': 'POST 연결 완료!'})

 

포스팅 API, 리스팅 API 만들기

포스팅 API 만들기

  • 서버
@app.route('/posting', methods=['POST'])
def posting():
	title_receive = request.form['title_give']
	content_receive = request.form['content_give']

	doc = {
		'title': title_receive,
		'content': content_receive
	}
	db.articles.insert_one(doc)

	return jsonify({'msg': '업로드 완료!'})
  • 클라이언트
function posting() {
	let title = $('#title').val()
	let content = $('#content').val()

	$.ajax({
		type: "POST",
		url: "/posting",
		data: {'title_give': title, 'content_give': content},
		success: function (response) {
			alert(response['msg'])
			window.location.reload()
		}
	});
}

리스팅 API 만들기

  • 서버
@app.route('/listing', methods=['GET'])
def listing():
	articles = list(db.articles.find({}, {'_id':False}))
	return jsonify({'articles': articles})
  • 클라이언트
$(document).ready(function() {
	listing()
})

function listing() {
	$.ajax({
		type: "GET",
		url: "/listing",
		data: {},
		success: function (response) {
			let articles = response['articles']
			for (let i = 0; i < articles.length; i++) {
				let title = articles[i]['title']
				let content = articles[i]['content']
				let temp_html = `<div class="card">
	                         <div class="card-body">
	                           <h5 class="card-title">${title}</h5>
                             <p class="card-text">${content}</p>
                           </div>
                         </div>`
				
				$('#cards-box').append(temp_html)
			}
		}
	})
}

 


파일업로드 준비

  • 파일업로드 라이브러리
<script src="https://cdn.jsdelivr.net/npm/bs-custom-file-input/dist/bs-custom-file-input.js"></script>
  • 파일업로드 코드
bsCustomFileInput.init()

서버 쪽 파일 받기, 클라이언트 쪽 보내기

서버 쪽 파일 받기 코드

file = request.files["file_give"]
save_to = 'static/mypicture.jpg'
file.save(save_to)

클라이언트 쪽 보내기 코드

function posting() {
	let title = $('#title').val()
	let content = $('#content').val()

	let file = $('#file')[0].files[0]
	let form_data = new FormData()

	form_data.append("file_give", file)
	form_data.append("title_give", title)
	form_data.append("content_give", content)

	$.ajax({
		type: "POST",
		url: "/diary",
		data: form_data,
		cache: false,
		contentType: false,
		processData: false,
		success: function (response) {
			alert(response["msg"])
			window.location.reload()
		}
	});
}

파일 이름 설정 (서버)

f-string

myname = '정예원'
text = f'내 이름은 {myname}'

datetime

from datetime import datetime
now = datetime.now() # 현재 날짜 시간
date_time = now.strftime("%Y-%m-%d-%H-%M-%S") # 원하는 형태로 변환하기

파일 이름 변경해서 저장하기

  • 확장자 추출
extension = file.filename.split('.')[-1]
  • 새로운 이름 짓고 저장하기
now = datetime.now() # 현재 날짜 시간
mytime = now.strftime("%Y-%m-%d-%H-%M-%S") # 원하는 형태로 변환하기
filename = f'file-{mytime}'

save_to = f'static/{filename}.{extension}'
file.save(save_to)
  • 변경된 파일 이름으로 DB에 저장하기
doc = {
	'title': title_receive,
	'content': content_receive,
	'file': f'{filename}.{extension}',
}
db.diary.insert_one(doc)

카드 목록 출력 (클라이언트)

function listing() {
    $.ajax({
        type: "GET",
        url: "/listing",
        data: {},
        success: function (response) {
            if (response["result"] == "success") {
                let articles = response['articles']
                for (let i = 0; i < articles.length; i++) {
                    let title = articles[i]['title']
                    let content = articles[i]['content']
                    let file = articles[i]['file']

                    let temp_html = `<div class="card">
                                        <img src="../static/${file}" class="card-img-top">
                                        <div class="card-body">
                                            <h5 class="card-title">${title}</h5>
                                            <p class="card-text">${content}</p>
                                        </div>
                                    </div>`

                    $('#cards-box').append(temp_html)
                }
            }
        }
    });
}

웹서비스 동작 원리

  • 클라이언트가 요청하면 서버가 요청을 받아서 무언가를 돌려준다

API란?

  • 서버가 요청을 받기 위해 뚫어놓은 창구
  • POST (주로 데이터 수정 시), GET (주로 데이터 가져올 때) 등 여러 타입의 요청이 존재

jQuery란?

  • Javascript의 라이브러리 중 하나로 HTML 조작을 쉽게 한다
  • 사용하기 위해서 import가 필요하다

Ajax란?

  • 서버 통신을 위해 쓰인다
$.ajax({
	type: "GET",
	url: "요청할 url",
	data: {},
	success: function(response) {
		// 서버가 준 데이터가 response에 담긴다
	}
})

Flask란?

  • 서버를 만드는 프레임워크
  • 아래 코드를 run 하면 localhost 5000으로 접속 가능
from flask import Flask, render_template, jsonfiy, request
app = Flask(__name__)

@app.route('/')
def home():
	return render_template('index.html')

if __name__ == '__main__':
	app.run('0.0.0.0', port=5000, debug=True)

 

프로젝트 세팅

  • 프론트엔드 → Bootstrap, 백엔드 → Python으로 된 Flask 라이브러리 이용
  • templates, static 폴더와 app.py 생성
  • Windows : file → settings → Python Interpreter → + 버튼
  • Mac : pycharm → preferences → Python Interpreter → + 버튼
  • requests, bs4, flask, pymongo 패키지 설치

PyCharm 라이센스 등록하기

PyCharm 라이센스 코드 발급

  • 스파르타코딩클럽을 통해 라이센스 코드 발급
  • 4개월 간 PyCharm Professional 버전을 무료로 사용 가능

JetBrains 로그인

  • JetBrains 접속해서 로그인 완료 : https://account.jetbrains.com/licenses
  • Purchase Product license(s) 클릭 → PyCharm 오른쪽 끝의 Buy new license 클릭
  • Proceed as new customer 클릭 → Have a discount code? 클릭
  • 파이참 라이센스 코드 입력 완료 후 Place Order 클릭
  • PyCharm Pro 실행해서 email, password 입력 후 Activate

 

필수 프로그램 설치

PyCharm Professional 설치

JetBrains 회원가입

MongoDB 설치

  • 다운로드 링크 : https://www.mongodb.com/try/download/community
  • MongoDB Community Server 탭 → Version 4.4.1 / Platform : Windows / Package : MSI
  • 설치 진행 시 Custom 클릭해서 C:\data\db\ 선택
  • Install MongoDB Compass 선택 해제 후 설치
  • 환경 변수 - 시스템 변수 - Path 편집해서 C:\data\db\bin 추가
  • cmd 창에서 연결 확인
mongod --install --serviceName MongoDB --serviceDisplayName MongoDB --dbpath C:\data\db --logpath C:\data\db\log\mongoservice.log --logappend
mongo

Robo 3T 설치

Filezilla 설치

기타

  • AWS 가입하기
  • Python 설치
  • Git bash 설치

+ Recent posts