본문 바로가기

Develop

(7)
PEP8을 기반으로 하는 파이썬 코딩 규약 코딩 규약(Coding Convention) 코드를 작성할 때 지켜야 할 서로 간의 약속된 규칙을 정하여 일관성 있는 코딩을 수행하게 하는 것. - 목적 : 일관성 있는 코드를 통한 가독성 증가에 따른 협업 효율 증대 PEP(Python Enhance Proposal) : 파이썬 개선 제안서. 각 주제에 따라 번호를 부여받고 각 변호 별로 각 주제에 대한 내용들이 상세히 명세되어 있다. ※ 그중 PEP8은 Pythonic 코드 작성을 위해 파이썬 창시자를 비롯한 수많은 파이썬 개발자들의 보편적인 관습을 가이드라인으로서 작성된 문서이며, 파이썬 개발자들이 가장 많이 사용하는 IDE인 Pycharm도 PEP8을 기준으로 코드를 검사한다. 많은 파이썬 초보 개발자들이 해당 문서를 파이썬 코딩 규약 메뉴얼로서 ..
인스턴스 / 클래스 / 스태틱 메서드 인스턴스 메서드 클래스의 생성자를 통해 객체를 생성해야만 호출이 가능한 일반적인 메서드 메서드의 첫 번째 매개변수로 클래스의 인스턴스가 예약어 self를 통해 넘어오고, 이 self를 통해 해당 클래스의 모든 속성에 접근 가능 첫 번째 매개변수인 인스턴스는 자동으로 할당되기에, 메서드에 넘기는 첫 번째 인자는 실제 인스턴스 메서드에서 2번 째 매개 변수에 할당 (자바에서의 일반적인 메서드와 동일) 클래스 메서드 해당 메서드를 사용하기 위해선 @classmethod 데코레이터를 통해 클래스 메서드라고 명시해주어야 함 첫번째 매개변수로 클래스의 인스턴스가 아닌 클래스 '자체'가 예약어 'cls'를 통해 넘어오며, 이 cls를 통해 클래스 속성 및 메서드에 접근 가능 해당 메서드 호출 -> 클래스 호출 -> ..
Packing과 Unpacking Packing - 파이썬 내 함수가 받을 인자의 개수를 유연하게 지정하게끔 하고자, 필수로 넣어야할 인자 이외의 인자들을 하나의 객체로 묶어서 관리할 수 있게끔 파이썬이 지원하는 기능 위치 인자 패킹 : 매개변수 앞에 * 한 개를 붙여서 사용하며, Tuple로 묶어서 관리 ` def print_family_name(father, mother, *sibling): print("아버지 :", father) print("어머니 :", mother) if sibling: print("호적 메이트..") for name in sibling: print(name) print_family_name("홍길동", '심사임당', '김태희', '윤아') ` ` 아버지 : 홍길동 어머니 : 심사임당 호적 메이트.. 김태희 윤..
새로 알게된 Java / Python 문법 차이 변수 1. 전역 변수 사용법 - 함수 내에서 전역 변수 사용 시 global 태그를 앞에 붙이고 전역 변수 명을 선언해주어야 함 -> 이 전역 변수를 사용하겠다는 선언 자료구조 1. row = N, column = M인 2차원 리스트 선언 방법 - 말로 설명하기 어려우니 캡처화면 참고 2. Dictionary - 기존 Java에서 쓰던 HashMap과 비슷한 듯 하나, 배열쓰듯이 index에 key값을 넣으면 value가 리턴이 되어 아주 편리하다. 3. Queue - Python 기본 자료 구조인 list에서 append, pop(0)을 사용한다. 구문 1. 괄호 - 클래스, 함수, 하다못해 반복문, 조건문 모두 괄호를 사용하지 않으며, 오직 들여쓰기 / 내어쓰기를 통한 정렬로 문단을 구분한다. 괄호는..
URL을 통한 api 호출 시 encoding을 잊지 말자 새로운 회사에 새로 입사하여 OJT 교육 대기 중 간단한 python 토이 프로그램을 작성 중 기상청 open api를 사용할 일이 있었다. 활용신청 후 받은 인증키로 api를 호출하였으나, 무슨 이유인지 서비스 인증키가 잘못되었다고 나온다. 서비스키가 등록되지 않았다고 하는데 나는 분명히 기상청 단기예보 api사용을 신청하였고 웹 상에서도 자동 승인이 되었다고 했다. 원인은 바로 encoding이다. URL은 기본적으로 ASCII 코드만을 인식하는데, 문제는 우리가 사용하는 url주소에는 '예약어' 혹은 아스키코드 이외의 언어(ex. 한국어, 중국어, 일본어 등)가 포함되어있다. 예를 들어 url에 = 혹은 &가 있다면 이게 예약어로서 사용된 것인지 단순히 문자열로서 사용된 것인지 컴퓨터로서는 알 길이..
Spring MVC Framework란? MVC 패턴과의 차이는? Spring MVC Framework에 대해 알기전에 먼저 MVC 패턴부터 간단히 알아보자. MVC 패턴이 탄생한 이유 - 기존에 비즈니스 로직과 뷰 로직(랜더링) 등을 모두 서블릿 혹은 JSP가 처리하던 것을 변경 시점이 비슷한 것들끼리 나눠 역할을 가짐으로써 유지보수하기 편하게, 그리고 명확한 역할 구분을 하고자 MVC, 즉 Model, View, Controller 로 나뉘는 소프트웨어 디자인 패턴이 탄생하였다. (참고 : https://zzoyeon.tistory.com/8) Model - 뷰에 출력할 데이터가 담겨있다. View - 모델에 담겨있는 데이터를 통해 웹 UI를 구현한다. Controller - 클라이언트의 요청을 받아 파라미터 검증 및 비즈니스 로직을 실행한다. (사실 더 정확히 말..
정적 웹 그리고 동적 웹 MVC 패턴에 대해 공부하다보니 서블릿을 알아두어야하고, 서블릿을 공부하려니 정적 웹 동적 웹까지 공부하게 되는 줄줄이 소시지 공부법. 먼저 웹 페이지는 크게 2가지가 있다. 정적 페이지(Static Page), 동적 페이지(Dynamic Page) 정적 페이지 - 단순히 웹 서버에 저장된 정적인 컨텐츠(ex. HTML, CSS, 이미지 등의 파일도 포함)을 뿌려주는 페이지 (ex. 회사 소개 페이지) 동적 페이지 - 단순히 HTML을 뿌려주는 정적 페이지와 달리, 상황에 따라 어떠한 작업을 거쳐 가공한 데이터를 보여주는 페이지 (ex. 현재 대부분의 웹 페이지) 정적 페이지와 달리, 클라이언트가 동적 페이지를 요청할땐 웹 서버(ex. Nginx, Apache 등) 선에서 처리할 수 없기에 WAS(웹 애..