본문 바로가기

전체 글

(220)
20210128_Python 와 Ruby 비교05 - 객체와 모듈, 다중상속, mixin, 패키지 매니저 Python vs Ruby (루비 위주) Object & Module (객체와 모듈) 모듈내 클래스 객체에 할당하기 Ruby lib.rb라는 모듈 파일을 생성한 상태에서 실행(루비의 경우엔 파일안에서 모듈 자체 이름을 붙여 주어야 함) Ruby에서는 객체에 할당시에는 ::를 사용하여 모듈 이름을 붙여주고 클래스를 같이 할당함 "lib.rb 파일" module Lib class A def a() return 'a' end end end "작업 하고자 하는 파일" require_relative 'lib' obj = Lib::A.new() # 모듈에 속한 클래스를 가져올 경우 ::을 씀 p obj.a() Python lib.py 파일을 만들고 클래스 할당시 모듈이름.클래스이름() ..
20210127_Python 와 Ruby 비교04 - 인스턴스 변수 접근, 클래스 변수(클래스 멤버), 오버라이딩 Python vs Ruby (루비 위주) Object Oriented Programming 02 (객체 지향 프로그래밍) Ruby와 Python의 인스턴스 변수의 접근 지난시간에 말한것과 같이 Ruby와 Python의 경우에는 인스턴스 변수에 대한 접근 특성은 다르다. Ruby의 경우에는 인스턴스 변수에 직접 접근이 불가능하고 간접적으로 접근이 가능하다. 이에 반해, Python의 경우에는 인스턴스 변수에 접근이 직, 간접 모두 가능하다. 그런데 이렇게 인스턴스 변수에 직, 간접 접근에는 장 단점이 존재한다. Python의 경우에는 직간접으로 접근을 허용함으로써 자유도가 좋고 편리하지만, 그 만큼 데이터의 오류를 초래할 수 있다. 또한 Ruby의 경우에는 데이터의 오류를 잘 정제 할수 있지만, 그만큼 불..
20210123_Python 와 Ruby 비교03, 객체지향, class, instance 생활코딩 "python&ruby"강의 참고 Python vs Ruby (루비 위주) 객체 지향 프로그래밍 (Object Oriented Programming) 철학적이지만, python과 ruby의 기능을 배우는 것으로 생각하는게 구체적인 느낌으로 배울수 있을 것이다. 모듈(module)은 함수를 수납하여 복잡도를 단순화 시킨다. 클래스(class)는 모듈처럼 그룹핑을 통한 수납이 가능한데, 모듈과 다르게 연관된 함수와 변수를 수납한다. 과정 class를 복제하여 instance를 만든다. 그런데 이 instance는 class와 똑같은 변수와 함수를 품지만, 변수의 값만 각각 바뀌어 품고 있는 공통된 함수를 이용해 결과를 낸다. 1. 객체 지향 프로그래밍의 사례 1) 문자열(string) 클래스 사용 ..
20210122_Python 와 Ruby 비교02 - Ruby 함수, 블럭, 모듈 생활 코딩 "Python & Ruby 강의" 수강후 정리 1. Python vs Ruby 1) 함수(Function) 여러곳에서 활용가능하게 하고 코드의 중복을 낮추어 재활용성을 높이며 가독성을 높이는 중요한 기능! 복잡해진 프로그램을 함수를 통해 그룹화로 정리해도 좋음 함수 만들기 로그인 애플리케이션 함수 내가 만든 login 함수는 함수안에 넣는 것을 true, false로 반환해준다. 그리고 real_login 함수는 로그인을 실행시키며 입력을 받게하여 true, false에 따라 출력문을 제시한다. def login(id) members = ['tom', 'jerry', 'snoopy'] for member in members do if member ==..
20210121_Python 와 Ruby 비교 01 - Ruby 위주로 환경설정 Python 3버전, Ruby install vscode에서 작업 할거면 tasks.json 파일 있으면 엄청 편하다 언어별 tasks.json 파일 설정 관련 사이트 문서편집기(notepad)를 통한 코딩 실행 터미널로 작업하기에는 복잡한 구조를 못함-> 코드를 파일로 만들어서 작업하는게 좋음 notepad로 print("hello, world!")hellowworld.rb 파일 작성 notepad로 print("hello, world!")hellowworld.py 파일 작성 Ruby의 경우 터미널에서 동작 명령어는 ruby 파일이름 임 python의 경우 터미널에서 동작 명령어는 python 파일이름 임 (물론, 경로에 없으면 경로에 들어가거나 경로까지 모두 쳐줘야 함) Ruby Syntax..
20210120_웹 프론트엔드 기초05 , HTML 및 CSS Reference, 실제 CSS 적용! 웹 프론트엔드 기초 05 강의의 부실함을 느끼고 구글링을 하던 중 강의에서 언급한 Reference를 찾아보기로 했다. 참고서라고 보면 되는데 HTML과 CSS가 뭔지, 그리고 사용할 수 있는 개념과 속성들을 사전식으로 만들어 놔서 찾기 좋았다. HTML관련 사전으로 사용하기 좋은 사이트 공식 CSS Reference 사이트 일단, 깊에 보는 과정이 아니라 단순히 어떻게 전체적으로 돌아가는지 보는 것이기 때문에 나는 강의에 맞게 사이트의 HTML 구조와 CSS를 적용 시켰다. 1. 사이트 클론 _ HTML에 CSS적용 해보기 1) box-sizing: border-box 일단 기본 content-box일 경우 CSS시 복잡해 지고 상속 관련해서 padding, margin 값을 건드리게 되면 문제가 생기..
20210119_웹 프론트엔드 기초04 , CSS 선택자 정리 웹 프론트엔드 기초 04 1. CSS 선택자 공부 반드시 기억해야 하는 CSS 선택자 30개 by Jeffrey Way 를 정리해 보았다. 기본적으로 id , class, descendant 를 알고 있어야 한다. 기본 선택자 "Basic Selecotrs" 1) * The star symbol 페이지의 전체 요소를 선택 TEST 용 권장 "margin , padding 값 0으로 보고 싶을 경우" 실무에서는 비권장 -> 불필요하고, 브라우저 과부화 2) #X id 선택자 비권장 : 유연성 낮음 "요소 1개만 지정 가능해 재사용이 불가하여" 정말로 필요한지 생각해봐야 함 3) .X class 선택자 여러 요소를 지정 가능해 중복 사용 가능 4) X type 선택자 일정한 타입이 있게 요소를 만들고 싶은 ..
20210118_웹 프론트엔드 기초03 , 사이트 분석하여 html 작성 웹 프론트엔드 기초 03 한동안 site 클론 실습(html, css)을 하느라 포스팅을 못하였다. 실습을 하면서 포스팅하기에는 너무 전체적인 맥락이 안잡히고 비효율 적이라서 모든 실습을 진행하고 내가 재정리해서 필요한 부분만 올릴 예정이다. 현재 실습 강의를 모두 수강 하였고 구글링하여 덪붙여 포스팅해야겠다. 1. Clone HTML, CSS 지난 시간에 Django site를 Clone 하기 위해서 사이트의 레이아웃을 분석하고 html의 형식으로 큰 부분으로 구체화 시켰다. 사이트의 HTML,CSS를 만드려면 지난 시간과 같이 분석이 제일 중요하다. 분석을 통해서 전체적인 구성 그리고 각 구성부분의 구체적인 구성요소를 지정하는 것이 중요하며, 또한 CSS를 할 것을 생각하여 공통적인 css 특징을 같..
20210115_웹 프론트엔드 기초02, CSS영역, Reset, 선택자, 사이트 실습 웹 프론트엔드(web front end) 기초02 1. CSS 박스 모델 모든 html 요소는 박스의 형태로 배치가 됨 -> CSS 박스 모델 영역 구성 : 내용(content) 영역 -> 안쪽 여백 영역(padding) -> 테두리 영역(border) -> 바깥 여백 영역(margin) paddig, border, margin 영역 모두 상화좌우 영역 값 조정 가능 1) content 영역 width, height 로 영역 조정 가능(고정, 상대값 모두 가능 -> px , em , %) w,h 값 없으면 글씨 크기 만큼의 영역이 지정 inline 요소의 경우 (a, span) w,h 의 영향을 받지 않음. 단, img 요소와 같은 멀티미디어 요소의 경우 w,h 값의 영향을 받음 2) paddig 영역 ..
20210114_웹 프론트엔드(Web front end) 기초01, HTML, CSS 웹 프론트엔드(web front end) 기초01 1. 서버와 클라이언트 클라이언트 : 정보를 요청하는 자 서버 : 정보의 요청을 받아 응답 하는자(정보 혹은 서비스를 제공하는 컴퓨터 or 프로그램) 주의) 상대적인 개념, 서버도 요청을 보낼 수 있음 그러면 반대 관계가 가능 ex) 클라이언트(웹 브라우저) - 요청 > 서버(웹 서버) 클라이언트(웹 브라우저) < 응답 - 서버(웹 서버 , index.html) 2. 웹 동작 원리 HTTP : 리소스를 주고 받는 형식의 약속(프로토콜) 1) 사용자가 웹 브라우저에 url 입력 2) 웹 브라우저가 url 해석 3) 해석결과로 서버에 HTTP 요청 4) 서버 요청 확인 및 요청 문서 찾기 5) 웹 브라우저로 HTTP 응답 송신 6) 웹 브라우저 수신 받은 H..
20210113_GitHub 복습 및 명령어 정리 1. 리눅스 명령어 pwd : 현재 위치 경로 ls : 현재 파일,디렉 확인 ls -a : 숨김 파일, 디렉 표시 (all) ls -l : 상세정보 함께 표시 (list) ls -r : 정렬 순서 거꾸로 표시 (reverse) ls -t : 작성 시간순 정렬 (time) cd 파일이름 : 해당 디렉으로 이동 2. git 구조와 상태 작업트리(working directory) : 작업 공간 스테이지 (stage) : 버전으로 만들어질 파일 대기 공간 저장소(repotory) : 스테이지 , 저장소 영역이 .git 디렉임 untracked files : 아직 한번도 버전관리 안한 파일 unmodified : 한번 스테이징 되었던 파일 nodified : 스테이징 경험이 있고 수정된 파일 staged : 커밋..
20210113_ Python 입문10(총 활용), 간단한 타이핑 게임 Python 을 활용한 간단한 타이핑 게임 만들기 1. 게임 구상 한컴 타자연습과 같이 게임에서 타이핑 해야하는 문자를 출력한다. 사용자의 입력을 받는다. 사용자의 입력과 게임에서 출제하는 문제 출력과 동일한지 체크한다. 동일하다는 출력문, 다르다는 출력문 출력 중에서 하나 출력 하고 동시에 해당하는 사운드 출력 5문제 정도 반복 후 게임 끝 출력 맞은 개수에 따른 합격, 불합격 출력 맞은 개수, 걸린 시간, 출력 데이터 베이스 연동 (id, 맞은 개수, 걸린 시간, 등록 시간) 2. 필요한 패키지 import import random # 문제 뽑거나 섞을때 무작위 import time # 걸린 시간을 측정하기 위해서 import winsound # 정답, 오답 사운드를 출력하기 위해서 import sq..
20210112_ Adobe XD, 프로젝트 기획,NRC 웹 개발을 하게 되면 프론트 엔드나 백엔드를 나누어서 가고는 하는데, 아직까지 파이썬 문법 밖에 배우지 않았지만 나중에 html , css, js 그리고 여러 프레임 워크 등을 배우게 되면 점점 만들수 있는 능력이 커질 것이다. 그래서 그 능력에 도달하기 전에 먼저 프로젝트 기획서를 만드는 작업이 필요하다고 본다. 기획서를 만드는데 중요한 툴로는 Adobe XD가 있다고 한다. 그래서 유튜브로 Adobe XD를 어느정도 강의를 들었으나,,, 확실히 디자이너의 영역인 것 같다. 내가 하고자 했던 것은 그냥 아버지 과수원에 맞는 온라인 판매 및 과수원 소개용 사이트를 하나 정도를 만들고자 하였다. 물론 판매 목적이라면 SEO도 잘되어 있는 네이버 스마트스토어가 확실히 맞지만, 그냥 도전해 보는 것이다. 회사..
20210111_ Python 입문9, 데이터베이스 연동(SQLite) Python 데이터베이스 연동(SQLite) Python의 경우 기본적으로 sqlite 패키지가 있음 굳이 설치 안해도 됨 DB의 경우 깃허브를 사용하면 잘 알것이라고 생각한다. 저장소 느낌이라고 보면 된다. 장기적으로 보존해야하는 정보를 안전하게 다룰수 있고 복원도 쉬움 데이터 표준화, 독립성 보장, 실시간 처리 가능 1. 파이썬 데이터베이스 테이블 생성, 데이터 삽입 1) datetime 패키지를 활용한 삽입 날짜 생성 import datetime now = datetime.datetime.now() # 나중에 현재시간을 기록할 함수를 써먹기 위해서 알아가는 거임 print('now : ' , now) # now : 연월일 시분초 밀리세컨 까지 출력 '날짜 시간 포맷 변경' nowDatetime = ..
20210110_ Python 입문8,excel, csv 외부 파일 처리 Python 외부 파일 처리_ CSV, XSL, XLSX 1. CSV 파일 읽기 및 쓰기 CSV 파일은 보통 컴마로 구분 되어 있으며 MIME 타입이라고 한다. csv 파일을 사용하기 위해서는 csv를 import 해야 한다.(python에 보통 csv 패키지가 기본으로 있음 pip로 설치할 필요는 없음) 1) CSV 파일 읽기 코드 구분자가 ,인 경우(기본 list 형 반환) import csv # 1. csv import 시켜준다. 함수 호출시 csv 까지 이름을 붙여 호출해줘야함 with open(&#39;./resource/sample1.csv&#39;, &#39;r&#39;) as f: # 2. with 구문으로 csv파일을 read(읽기)모드로 open해 주며 alias를 f로 지칭 reade..
20210109_ Python 입문7, txt파일 읽기 쓰기, 에러 예외 처리 Python 입문 07 Python 파일 읽기와 쓰기 Python에서 파일을 읽고, 쓰려면 기본적으로 open 함수와 with 문을 알아야 한다. 1. open 함수와 with문 open함수를 통해 파일 객체를 생성해야 한다. 파일 객체 = open('./경로.파일이름', '파일 열기 모드') 파일 열기 모드 : r(읽기모드) , w(쓰기모드), a(추가모드) 안그러면 계속 파일이 열려있는 상태이고 다시 파일에 어떤 기능을 수행할때 부딪혀 에러가 난다. 위 close 때문에 with을 통하면 with문이 끝나면 자동으로 닫힌다. 2. 파일 읽기 1) 접근법 f = open('./resource/review.txt', 'r') # 1. open함수를 사용하여 파일 객체를 지정해 본다. print(type(..