오늘 한 일

  • <Do it! 알고리즘 입문> 2장 '기본 자료구조와 배열'을 봤다. 어제 작성한 TIL에서 너무나 높은 목표선을 설정해서 성취감이 참 떨어진다.. 하지만 배운 건 많다. 예를 들면 아래와 같은... 이 기본적인 걸 몰라서 코드 짤 때마다 얼마나 고생했던지.
    list('ABC')				# ['A', 'B', 'C']
    list({'name': 'Ann', 'age': '25'}) 	# ['name', 'age']
    if __name__ == '__main__':	# 해당 프로그램을 직접 시작한 경우에만 참, 
    				# 다른 스크립트 프로그램에서 임포트한 경우에는 거짓이 됨 
    				# 따라서 임포트한 경우 이 if문의 suite는 실행되지 않음​
  • 당장 알고리즘 문제를 풀 수 있어야 하는데 이 두꺼운 교재만 잡고 이론만 익히는 게 과연 효율적일까 싶어서 백준(BOJ)에서 단계별 문제를 21개 풀어봤다. 틀리면 맞을 때까지 풀었는데, 의외로 쉬운 문제들에서도 대목마다 고려해 줘야 하는 조건들이 있어 허무하게 틀리는 경우가 다반사였다. 예를 들면 input()으로 들어오는 값은 일단 무조건 문자열이다. 그래서 숫자로서의 입력값이 필요하다면 int()로 바꿔줘야 한다.
  • 그리고 오늘도 이렇게 TIL을 작성했다(뿌듯) 제출해야 하는 건 WIL이긴 했지만 일관되게 밀고 나가기(?) 위해서 어제까지의 TIL을 제출했다.

내일 할 일

  • 게더에서 제공되는 알고리즘 문제 4개를 푼다.
  • <Do it! 알고리즘 입문> 3장 '검색 알고리즘'을 공부한다. 이제부터는 목표를 설정하는 데 있어 욕심을 내지 말자^^제발...
  • BOJ 단계별 문제 10개만 더 풀자.

 

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day8)  (0) 2021.06.15
항해02_알고리즘(Day6)  (0) 2021.06.13
항해02_알고리즘(Day5)  (0) 2021.06.12

오늘 한 일

  • 문풀 위주인 5주차는 제외하고 알고리즘 강의를 4주차까지 들었다. 이해 여부와 상관없이 듣기로 했으니 목표는 완수한 셈이다. 나 같은 왕초보에게는 그저 어려울 따름이라서 개념에 익숙해지는 데 중점을 뒀다. 배열(array), 링크드 리스트(linked list), 재귀함수(recursion),  분할 정복(divide and conquer), 생성자(constructor), 스택(stack), 큐(queue), 해쉬(hash?hashing?), BFS(Breadth First Search), DFS(Depth First Search), 힙(Heap), 동적계획법(Dynamic Programming) 등등...
  • <Do it! 자료구조와 함께 배우는 알고리즘 입문 파이썬 편> 공부를 시작했고, 1장 '알고리즘 기초'까지 봤다. 반복되는 실습 코드, 부가 설명, 그림들을 보다 보니 알고리즘의 모양새(?)에 조금이나마 적응해 가는 것 같다. 기초적인 수준이나마 파이썬을 다루면서도 어느 대목에서 왜 사용하는 건지 어렴풋이만 알았던, 말 그대로 '기본' 개념들을 여기서 한 번씩 짚고 넘어가게 되어 무릎을 탁 치게 된 대목도 많았다. 그럴 때마다 그때 그때 구글링하는 것만으로는 채워지지 않던 갈증을 해소하는 기분이 들었다.

내일 할 일

  • 공식적으로는 휴식을 취하는 일요일이지만, 평소와 같이 오전 9시까지 일과를 시작할 준비를 마친다.
  • 오전 중에 <Do it! 알고리즘 입문> 2장 '기본 자료구조와 배열'을 마친다.
  • 점심 이후에 3장 '검색 알고리즘', 4장 '스택과 큐'를 공부한다.
  • TIL과 WIL을 적고, WIL 링크를 제출한다.
  • 시간과 마음의 여유가 허락한다면, 기초적인 알고리즘 문제를 1개 풀어본다.

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day8)  (0) 2021.06.15
항해02_알고리즘(Day7)  (0) 2021.06.14
항해02_알고리즘(Day5)  (0) 2021.06.12

오늘 한 일

  • 어제 제출한 미니 프로젝트 'MOVIE TALK(무비톡)'에 대한 그룹별, 개인별 회고의 시간을 가졌다. EC2 업로드에 문제가 생겨 제출 기한을 넘긴 게 가장 아쉬웠고, 그밖에는 좀 더 세련된 디자인을 고려하지 못한 점, 폰트 같은 것들의 통일성이 부족했던 점 등 주로 CSS 쪽이 부족하다고 평가했다. 처음이라 미비한 점은 있었다 해도 어쨌든 잠 줄여서 컴퓨터 앞에 잘 붙어 있으니 뭐라도 되는구나 싶었다. 밤새고 따가운 눈 문질러 가면서 해도 코딩은 즐거웠다.
  • TIL 작성의 중요성에 대해 알게 되었다. 그 덕에 지금 키보드를 두드리고 있다. 하마터면 새까맣게 잊어버릴 뻔했지 뭔가. TIL은 'Today I learned'의 줄임말이라는데, 사실 나는 초심자인 만큼 오늘 배운 점을 구체적으로 나열하지 않아도 'TIL' 이 한 마디면 충분할 것 같다. 매일매일 1분 1초가 나에겐 배움의 순간이라서, 말 그대로 오늘 하루는 언제나 'Today I learned(오늘 나는 배웠다)'로 요약할 수 있겠다.
  • 알고리즘 공부를 시작했다. 청년을 대상으로 하는 지원금 지급 업무를 할 때 내 또래 청년들이 너나 할 것 없이 왜 그리 다들 알고리즘이라는 것을 공부하는가 싶었는데 그것을 나도 오늘 접했다. 가뜩이나 수학 싫은데 수학적인 (느낌의) 개념을 코딩으로까지 표현하자니 숨이 턱턱 막힌다. 수업에서 예제로 나오는 것조차 나는 너무 버겁다. 알고리즘에서 내가 이해한 것들은 시간복잡도와 공간복잡도. 코딩에 있어 공간복잡도보다는 시간복잡도가 더 중요하고, 시간복잡도는 N으로 나타내는데 N 앞이나 뒤에 붙는 상수보다는 N 자체의 차수가 중요하다. 여러 경우에 따른 최악의 시간복잡도는 빅오표기법을 써서 O(N)과 같은 형태로 나타낸다.

내일 할 일

  • 무조건 알고리즘.. 문제를 척척 푸는 것까지는 바라지도 않는다. 이제 막 공부 시작한 지가 하루 이틀일 뿐이니까. 적어도 이런 식의 사고방식에 조금이라도 익숙해지고 싶다. 이해가 안 되더라도 강의는 꾸역꾸역 다 듣고 말겠다. 연습은 그 다음부터 해 나가면 될 일이다. 교보문고에서 주문한 알고리즘 책이나 얼른 왔으면 좋겠다. 제발 나 같은 초보를 배려해 주는 책을 알맞게 주문했기를...
  • 내일도 꼭 TIL을 적어보자.

'항해99 > 02_알고리즘(Day5~18)' 카테고리의 다른 글

항해02_알고리즘(Day8)  (0) 2021.06.15
항해02_알고리즘(Day7)  (0) 2021.06.14
항해02_알고리즘(Day6)  (0) 2021.06.13

어디서부터 잘못됐던 건지는 모르겠지만...

앞 부분의 코드를 따라하다가 뭔가 오류가 나서 자꾸 실행이 안되는 바람에

전체 코드를 다 갈아엎고 하느라 예상했던 것보다 너무 많은 시간이 걸렸다...

 

이번에는 컴퓨터에 저장된 이미지 파일의 저장경로를 입력하면,

static 폴더 안에 파일 이름에 현재 시간이 들어가면서 중복되지 않게 저장된다.

동시에 웹페이지에도 해당 이미지가 나타난다.

 

현재 시간을 프린트 할 수 있는 코드!

from datetime import datetime 으로 임포트 해주고,

now = datetime.now()

date_time = now.strftime("%Y-%m-%d-%H-%M-%S")

print(date_time)

 

지난번에도 했지만, 다시 한 번 복습!

git bash를 종료해도 서버가 동작하도록 하는 코드!

nohup python app.py &

 

종료하는 코드!

ps -ef | grep 'app.py' 로 pid 값을 보고,

kill -9 [pid값] 으로 특정 프로세스를 죽인다(2번)

 

 

20조 - 김수연, 방민수, 이동민, 최지혁

 

 

1. 프로젝트 제목

 

MovieTALK(무비톡)

 

 

2. 간단 설명

 

재미있는 영화, 좋아하는 영화를 추천하고 다른 사람들과 함께 나누는 공간입니다.

영화를 골라주시면, 영화 정보와 유튜브 영상 링크가 등록됩니다.

영화에 댓글을 남겨 의견을 공유해 보세요.

마음에 드는 영화를 발견하셨다면, 나만의 리스트에 등록해 보세요!

마이페이지에서 언제든지 찾아볼 수 있습니다.

 

 

3. 와이어프레임

 

 

 

4. 개발해야 하는 기능들

 

기능 Method URL request response
회원가입: 아이디 생성 POST /signup/register {'id':id, 'nickname':nickname, 'pw':pw} 아이디 생성
회원가입: 아이디 중복 조회 GET /signup/idcheck {'id:id} 중복 아이디 존재 여부
회원가입: 닉네임 중복 조회 GET /signup/nickcheck {'nickname':nickname} 중복 닉네임 존재 여부
로그인 POST /login {'id':id, 'pw':pw} 로그인 성공 여부
메인: 영화정보 전체 조회 GET /main/getlist   영화정보 리스트, 댓글
영화정보 등록 POST /postmovie {'id':id, 'url':url} 영화 포스터, 제목, 설명(요약), 유튜브 링크
상세: 영화정보 개별 조회 GET /detail/getmovie {id':id, 'movie':movie} 영화 포스터, 제목, 설명, 유튜브 링크, 댓글
상세: 스크랩 POST /detail/scrap {'id':id, 'movie':movie, 'scrap':scrap} 영화 제목, 스크랩 여부
상세: 댓글 등록 POST /detail/comment {'id':id, 'movie':movie, 'comment':comment} 댓글 등록
마이페이지: 스크랩한 영화정보 조회 GET /mypage/getscrap {'id':id} 스크랩한 영화정보 리스트
마이페이지: 스크랩 삭제 POST /mypage/delscrap {'id':id, 'movie':movie, 'scrap':scrap} 스크랩 삭제

 

 

5. public github repo 주소

 

https://github.com/skylermbang/week1_team20

'항해99 > 01_미니 프로젝트(Day1~4)' 카테고리의 다른 글

항해01_ 웹개발 플러스_1주차  (0) 2021.06.08

아주 기초적인 문법을 포함해서,

웹개발종합반 강의 중간중간 개인적으로 의문을 가졌던 문법들까지 두루 다루고 있어 좋았다.

심화 문법은 코딩을 하는 데 직접 사용하지는 않더라도 다른 사람들이 짜놓은 코드를 열어볼 때 도움이 될 것이다.

 

문자열을 숫자로 바꿀 때, int(...)

숫자를 문자열로 바꿀 때, str(...)

계속 하다 보니 마지막이 오긴 온다.

짧은 시간에 몰아치기 하느라 고생한 내 머리에 박수! xD

물론 기나긴 복습의 과정이 기다리고 있으므로 끝날 때까지 끝난 게 아니다.

아직 헷갈리는 개념들도 있고,

일단 1회독(?)을 하기 위해 슥슥 스쳐 지나간 것들이 많다.

그래도 너무너무 뿌듯하다, 나라는 코알못이 여기까지 오다니.

 

ubuntu에서 서버 구동 시, 터미널인 git bash를 종료하더라도 계속해서 실행되도록

nohup python app.py &

를 입력한다.

파일 업데이트를 하는 등 이 상태를 종료해야 할 경우

ps -ef | grep 'app.py'

kill -9 [PID(프로세스번호)]

를 입력한다.

서버를 구동하기 위한 프레임워크 flask를 설치한 후

.py와 .html을 넘나들며 API를 만들고 POST와 GET 각각의 방식에 따라 코드를 짜는 것에 비하면,

DB에 데이터를 축적해서 불러오고 변경하고 하는 것은 아무것도 아니었다...^^;

강의 흐름을 따라가며 그대로 받아쓰기한 파일들이 있으니 다행이지,

아니었으면 한 글자나 적었을까 싶다.

 

1. API 설계

2. 서버와 클라이언트의 연결 확인

3. 서버 만들기

4. 클라이언트 만들기

5. 핑퐁하며 확인

 

작은 오타 하나에도 작동 자체가 이루어지지 않을 수 있으므로 오타 주의!

신경쓰지 않은 오타로 중간중간 얼마나 애를 먹었는지 셀 수가 없다.

특히, 소괄호, 중괄호, 대괄호에 신경쓸 것.

+ Recent posts