본문 바로가기

Programing78

Exception Propagation 팀 코드 리뷰를 하면서 나왔던 의문을 팀원이 정리한 내용을 바탕으로 정리한 내용입니다. 들어가며... try { doSomething(); System.out.println("Normal statement."); } finally { System.err.println("From finally block."); } 위와 같은 코드에서 doSomething() 메서드 수행시 Exception 이 발생하면 어떻게 될까라는 의문이 생겼습니다. catch문이 별도로 존재하지 않아 Exception 은 상위로 throw 가 될까요? 아니면 skip 되는 것일까요? Exception Propagation http://docs.oracle.com/javase/tutorial/essential/exceptions/def.. 2016. 7. 28.
PyJNIus 사용기 들어가며... Python 으로 개발을 하다보면 이미 만들어진 Java Class 를 활용해야 할 때가 있습니다. 기본적으로 Python 은 interpreter 언어로 interpreter 만 있으면 되지만 Java 의 경우는 JVM 환경이 있어야 수행이 가능합니다. 따라서 간단히 진행하기가 어렵습니다. Java Class 사용을 위한 Python Packages Java Class 를 사용하기 위해 어떤 것들이 있는지 알아보겠습니다. Py4j - 내부적으로 Java Server 를 구동해서 연동하는 방식 JPype - JVM 을 startup/shutdown 을 Python 에서 관리 JCC - 2.X 버전만 지원 PyJNIus - JVM 실행 파일로 실행 JCC의 경우는 2.X 버전만 지원하기에 고.. 2016. 7. 28.
PEP8 이란? PEP8 란 무엇일까요? 우리가 코드를 작성하다 보면 Coding Convention 이라는 이름으로 공통적인 규칙을 가지고 작성하게 됩니다. 왜 규칙에 맞게 작성해야 하는지는 Coding Convention 의 개념으로 여기서 설명하지 않도록 하겠습니다.(아래 참고 링크에 가면 잘 설명하고 있습니다.) PEP8 는 Python 코드를 작성할 때 공통적으로 지키자고 약속한 Rule 이라고 생각하면 됩니다. 꼭 지켜야 한다는 강제성은 없으나, 혼자 코드를 작성하는 것이 아니라면 협업하는 사람과 협상하여 적절한 수준에서 지켜 주는 것이 좋습니다. PEP(Python Enhance Proposal) 는 말 그대로 “개선 제안서” 를 의미합니다. 그 중에 Coding Convention 에 대한 제안서가 PEP.. 2016. 7. 27.
APScheduler 사용기 Python 에서 Scheduler 기능을 구현하기 위해 사용한 APScheduler 를 소개합니다. Scheduler 기능을 제공하는 Package 는 몇 가지가 있습니다. 제가 조사한 Package 는 총 3가지 입니다. celery - 분산 작업큐 역할을 담당하는 프레임웍 twisted - 비동기 IO 를 이용한 이벤트 방식의 네트워크 엔진 프레임웍 apscheduler 여기서 apscheduler 가 다른 Package 에 비해 간단히 구현이 가능합니다. 또한 기타 다른 Package 와 통합할 수 있는 기능도 제공합니다. (Python 공식문서에도 링크가 등록되어 있습니다.) APScheduler 란? Advanced Python Scheduler 의 약자로 Python code 를 주기적으로 .. 2016. 7. 26.