C언어사진
계기 친구를 따라서 동네 조그마한 학원에서 C언어 기본문법을
3년동안 배웠습니다.하지만 친구따라 아무생각없이 간거여서
열정적이지 않았고 노력도 안하였습니다.3년동안 배워도
아직도 헷갈리는것이 많으며 문제를 많이 접해보지
못하였습니다.
C언어란? c언어 창시자들 개발자 사진

⬅왼쪽 부터 데니스 리치,켄 톰프슨

C언어는1972년에 켄 톰슨과 데니스
리치가 벨연구에서 유닉스 운영체제를
만들기 위해 고안한 프로그래밍 언어입니다.
또한 C언어가 나온 이후 언어들에게 간접적인
영향을 미쳤습니다.C언어는 리눅스와 IOS
Android와 같은 운영체제에 핵심 요소인
커널은 C언어로 만들어 져있습니다. C언어는
하드웨어를 직접적으로 제어를 가능하게 하고
프로그래밍 할때 받는 제한이 거의 없다는
장점을 가지고 있지만 제가 생각하기에는
치명적인 단점을 가지고 있습니다.
C언어의 치명적인 단점은 매우 어렵습니다.
그래서 다른 사람들이 언어를 배울때 많은 어려움을
겪고 있습니다.
C언어로 푼 문제들 코드업   C언어는 동네 학원에서 기본 문법들을 다루어
보았고 중학교 3학년 때도 신입생 교육 캠프를
할 때 잠시 배운 적 말고는 따로 시간을 내서
열정적으로 C언어를 연구하고 저의 것으로
만들었던 기억이 없었습니다. 그래서 이번
기회에 코드업이라는 사이트에서 기초 100제
를 풀어보았습니다.앞에는 기초 문제들은 쉽게
풀었지만 뒤로 갈 수록 너무 어렵고 앞에 문제를
너무 생각 없이 풀어서 풀이를 할 정도의 실력은
아닌것 같습니다.
파이썬 로고 사진
라이브러리 & 프로젝트 파이썬도 마찬가지로 문제를 많이 안 풀어보았습니다.
단 파이썬은 다양한 라이브러리를 사용하여서 이것저것
만들어 보았습니다. 중2 때는 웹 크롤러를 사용하여
디스코드봇을 만들어 보았습니다. 하지만 그때 당시에는
이해는커녕 그냥 보는 대로 아무 생각 없이 그래도
사용하여서 적어서 만들어서 크게 의미는 없었습니다.
그래서 젤 최근에 Flask라는 마이크로웹프레임워크를
사용하여서 게임 비평 사이트를 제작을 해보았습니다.
계기

파이썬은 선린영재원 수업에 있어서 그때를 계기로 파이썬을 배워왔습니다.
C언어를 어느 정도 숙지 하고 파이썬을 배운 거여서 아주 어려운 것은 없었고
C언어에서 10줄 짜야 할 코드를 한 줄로 짜서 많이 신기하였고 언어 자체가
가볍다 보니 다른 친구들도 거리낌 없이 하여서 친구들이랑 즐겁게 프로그래밍을
하고 문제를 풀기도 하였습니다.

파이썬이란? 파이썬은 1990년에 귀도 반 로섬이라는
개발자에 의해서 개발된 인터프리터언어
입니다.파이썬은 문법 자체가 간결하고
아주 쉽습니다.또 다른 장점으로는
터틀 그래픽부터 시작해서 웹개발,
인공지능,크롤링등 많은 분야들을
라이브러리를 이용하여서 접근
할 수 있는 장점을 가지고 있습니다.
반면에 파이썬의 단점은 느리다는
단점을 가지고 있습니다.하지만 저는
이 단점을 잘 모르겠습니다.결과적으로는
파이썬은 단점보다는 장점이 더 많은
좋은 언어입니다.
귀도 반 로섬
Flask란? 플라스크(Flask)는 특별한 도구나 라이브러리가 필요 없어서 마이크로웹프레임워크 라고 불려집니다.그리고 장고(Django)랑 플라스크(Flask)를 비교를 했을 때
차이점은 장고(Django)는 구조가 플라스크(Flask)에 비해서 더 복잡합니다.
Flask는 요청 > route > 각 함수 > 템플릿 > 전송(html)이라는 단계를 거치지만 Django는 요청 > URL.py > View.py > ..... 등등 Flask 보다는 더 많은 단계랑 많은 파이썬 파일을 겪고 나서 실행이 되기 때문에 Flask가 비교적 더 구조가 간단합니다. 그 외에는 별 다른 점은 없습니다.
작동원리 플라스크 구조     플라스크는 클라이언트가 URL Request(요청)를 보내어서
각 URL의 함수를 거치고 나서 플라스크가 사용돼있는 파이썬
파일과 Templates 폴더와 연결을 하고 나서 HTML에다가
전송합니다.
간단한 예제 코드 flaskexamplecode < Flask를 import해줍니다.
< Flask 객체를 선언합니다.
< 주소 경로 지정합니다.
< 그 주소에 실행된 함수를 지정합니다.
그리고 함수에서 render_templates을 통해서
index.html파일을 실행합니다.
< 로컬 서버에서 실행을 합니다.
templatesfolder app.py 위 코드를 실행하였을 때의 결과➡
파이썬과 templates는 render_templates이라는 라이브러리를 통해서 서로 데이터를 주고받을 수 있습니다.
파이썬에서 입력받은 값들을 templates를 통해서 html에 나타낼 수 있고 반대로 html에서 입력받은 값들을 파이썬
에서 사용할 수가 있습니다.
resultflask
게임 비평 사이트 프로젝트
만들게 된 계기 우리나라의 많은 사람들이 게임을 이용하지만
권장사양이나 할인 일정 같은 정보들이 부족하여서
할인 일정을 몰라서 게임을 정가로 사여서 손해를
보는 등 많은 문제들을 발견하였습니다.
언어 & 참여한 사람 -10201(권성민) : Flask,html,css,Jinja 템플릿
 팀장 및 발표
flasklogo
-10101(강건우) : 웹 크롤링(Selenium,Bs4)
 ppt 제작

-10107(맹서현) : DB(Firebase) 구축,프로젝트 감수
설명영상(전국 대회때 사용하였던 설명영상)
코드 Code1
설명
@app.route를 통해서 url을 열고 gamesearch
함수를 통해서 제일 메인페이지인 index.html을
실행을 합니다.그리고 2번째 페이지인 infor.html을
엽니다.앞에서 게임 이름을 검색을 하였습니다.
게임 이름을 받는 메소드 방식이 post이므로
if문으로 post 방식이라는 걸 확인 하였습니다.
if문 아래에 있는 코드들은 메타크리틱이라는 사이트에서 셀레니움을 통해
크롤링 하는 코드입니다.이 코드는 제가 설계하지 않아서 따로 해석을 하지는
않겠습니다.그리고 밑에 또 크롤링이랑 firebase에 저장하는 코드들도 있습니다.
마찬가지로 해석하지 않겠습니다.

index.html infor.html
^ index.html              ^ infor.html
Code2
설명 위에서는 생략되어 있지만 셀레니움에서 크롤링을 통해서 게임
평점이라던지 할인정보등을 알아 났습니다.그 정보들을 html
에서 나타내기 위해서는 render_template을 통해서 template
이라는 폴더중에서 infor.html에서 게임이름,게임에 대한 평가
점수,할인을 한다면은 스팀에서의 할인 정보등을 페이지에
보냈었습니다.
그리고 게임에 대한 비평을 할 수 있는 공간인
criticize.html 파일을 열어서 사용자가 비평을 합니다.
그리고 사용자가 값을 입력을 하여서 받기 때문에 메소드
방식이 post가 와야 합니다. 그다음에는 방금 비평
페이지에서 비평을 한 후에 비평했던 값들을 form태그
안에 있는 input의 각 id에서 값을 가져와 firebase에
있는 파일에 변수에다가 값을 저장하고 따로 html에서도
값을 표시를 해줘야 하기 때문에 또 다른 변수에다가
저장을 합니다.

Code4
Code5
설명 계속해서 비평했던 값들을 firebase에 있는 변수에다가 저장을 한 후에 방금 전처럼 firebase에 있는 값들에
저장되고 여기 캡처한 사진에서는 안 보이지만 위에서 firebase DB에다가 보내고 나서 HTML에게 값을 보내주고 코드를 끝냅니다.
비평 화면
HMTL CODE
HTMLCODE2
비평 할 수 있는 페이지 중에서 일부만 코드를 가져와 보았습니다.
이 코드는 왼쪽에 보시면은 조절 창이 있습니다.조절 창으로
1부터 9까지 값을 주었으며 1만큼 증가하는 걸 확인 할 수
있습니다.위에서 input에 있는 id를 a,b,c...등등 쉽게 식별하게
나타 내었습니다.

그 외에도 체크 박스 형태로 비평할 수 있는 란이 있습니다.만약에 사용자가
체크 박스를 선택한다면은 1이 파이썬 파일에 저장이 됩니다. 박스를 선택하지
않는다면은 0이 파이썬 파일에 저장되어서 사용자가 이 장비를 선택을 안 한 것을
알 수 있습니다.
^ 비평 할 수 있는 페이지
CriticizeResult.page

비평 결과 페이지 입니다. 지금 화면에서는 중괄호로 변수명이 감싸져 있는
보실 수 있습니다.(저 화면은 지금 HTML만 구성하였고 실행 시킬때 화면은
아닙니다.)저 중괄호의 의미는 Jinja 문법을 의미를 합니다.
render_template을 통해서 Python에서 HTML에서 쓸 수 있도록 반환해
준 후에 HTML에서 변수를 쓸 때 Jinja 문법을 사용합니다. 그래서 지금
화면에서는 방금 비평한 것에 대한 변수들을 나타내는 것입니다.
HTML&CSS 계기 영재원 때 처음으로 HTML ,CSS를 접해보았습니다. 그때 저는
처음으로 프로그래밍이 게임보다 더 재미있다는 것을 느꼈습니다.
결과가 바로바로 나오고 파이썬과 다르게 5분 정도 배우고 쳤는데
홈페이지의 구조가 보여서 파이썬 보다 더 재미있고 보람차다고
생각을 하였습니다.
HTML란? HTML은 팀 버너스리가 1989년에 개발하였습니다.HTML은
Hyper Text Markup Language의 줄임말 입니다.
HyperText(웹 페이지에서 다른 페이지로 이동할 수 있도록
하는 것) 기능을 가진 문서를 만드는 언어입니다. 구조를 설계할
때 사용되는 언어로 hyper link 시스템을 가지고 있습니다.
CSS란? CSS는 1994년 하콤 비움 리라가 처음으로 제안을
하였습니다.CSS는 Cascading Style Sheets의 약자이며
웹페이지에서 시각적으로 표시를 해주는 기능을 가지고 있습니다.
CSS는 문서의 내용과 표현을 분리하여 CSS 파일 하나만 수정하면
스타일에 해당하는 HTML 문서가 한 번에 수정되는 장점을 가지고
있습니다.
팀 버너스리
HakonWiumLie
^ 팀 버너스리        ^ 하콤 바움리
프로젝트 영재원에서 웹사이트를 구축을 하였는데 프론트엔드를
제가 맞아서 제작을 하였습니다.그리고 포트폴리오도 제가
html , css를 이용하여서 제작을 하였습니다.