학과공부 (14) 썸네일형 리스트형 JAVA 수업 자료 해석 - 3 class A // 클래스 생성 { public A() // 메소드 생성 { System.out.println("생성자A"); } } class B extends A // A 상속 받은 B생성 { public B() // 메소드 생성 { System.out.println("생성자B"); } } class C extends B // B 상속받은 C 생성 { public C() // 메소드 생성 { System.out.println("생성자C"); } } public class ConstructorEx // 파일이름과 유사한 public class 생성 { public static void main(String[] args) { C c = new C(); // 객체 생성 } } JAVA 수업자료 해석 - 2 class Point { private int x, y; public void set(int x, int y) // x,y를 받아 여기 클래스에 있는 x, y에 넣어주는 함수 { this.x = x; this.y = y; } public void showPoint() // 현재 x, y 출력해주는 함수 { System.out.println("("+ x + ","+y+")"); } } class ColorPoint extends Point // ColorPoint를 상속받은 Point 클래스 { private String color; public void setColor(String color) // 컬러를 받아 여기 클래스에 있는 컬러에 넣어주는 함수 { this.color = color; } publi.. JAVA 수업 자료 해석 - 1 import java.io.*; public class BlockBinaryCopyEx { public static void main(String[] args) { File src = new File("C:\\Windows\\Web\\Wallpaper\\ThemeD\\img32.jpg"); // 원본 파일 경로명 File dest = new File("C:/Users/user/Desktop/copyimg2.jpg"); // 복사 파일 try { FileInputStream fi = new FileInputStream(src); // 파일 입력 바이트 스트림 생성 FileOutputStream fo = new FileOutputStream(dest); // 파일 출력 바이트 스트림 생성 byte [] bu.. [데이터베이스] 과제를 위한 백엔드 공부 with flask - final question question = db.relationship('Question', backref=db.backref('answer_set')) 그 다음 question 속성은 답변 모델에서 질문 모델을 참조하기 위해 추가했다. 위와 같이 db.relationship으로 question 속성을 생성하면 답변 모델에서 연결된 질문 모델의 제목을 answer.question.subject처럼 참조할 수 있다. db.relationship의 첫 번째 파라미터는 참조할 모델명이고 두 번째 backref 파라미터는 역참조 설정이다. 역참조란 쉽게 말해 질문에서 답변을 거꾸로 참조하는 것을 의미한다. 한 질문에는 여러 개의 답변이 달릴 수 있는데, 역참조는 이 질문에 달린 답변들을 참조할 수 있게 한다. 예를 들.. [데이터베이스] 과제를 위한 백엔드 공부 with flask - 5-1 SQL과 ORM을 비교해보고자 다음과 같은 형태로 구성된 질문 테이블에 데이터를 입력한다고 가정해보자 이렇게 구성된 question 테이블에 새로운 데이터를 삽입하는 쿼리는 보통 다음과 같이 작성된다 ORM을 이용하면 다음과 같이 작성된다 코드에서 Question은 파이썬 클래스이며, 이처럼 데이터를 관리하는 데 사용하는 ORM 클래스를 모델이라고 한다. 모델을 사용하면 내부에서 SQL 쿼리를 자동으로 생성해 주므로 직접 작성하지 않아도 된다. 즉, 파이썬만 알아도 데이터베이스 처리를 할수 있다. 파이썬 ORM 라이브러리 중 가장 많이 사용하는 SQLAlchemy를 사용해 보자. 이와 더불어 파이썬 모델을 이용해 테이블을 생성하고, 컬럼을 추가하는 등의 작업을 할 수 있게 해주는 Flask-Migrate.. [데이터베이스] 과제를 위한 백엔드 공부 with flask - 4 앞에서 진행한 pybo/__init__.py 파일 내용을 보면, create_app 함수안에 hello_pybo 함수가 포함되어 있다. hello_pybo 함수는 / URL과 매핑되는 함수인데, 이러한 URL 매핑을 @app.route('/')라는 애너테이션이 만들어 준다. 이때 @app.route와 같은 애너테이션으로 URL을 매핑하는 함수를 라우팅 함수라고 한다. 그런데, 지금까지 작성한 대로라면 새로운 URL 매핑이 필요할 때마다 라우팅 함수를 create_app 함수 안에 계속 추가해야 한다. 라우팅 함수가 계속 추가된다면, create_app 함수는 엄청나게 크고 복잡한 함수가 될 것이다. 블루프린트(Blueprint)를 사용하면 함수가 복잡해지는 문제를 해결할 수 있다. 플라스크의 블루프린트를.. [데이터베이스] 과제를 위한 백엔드 공부 with flask - 3 플라스크 앱은 아래 코드에서 보듯 Flask 클래스로 만든 객체를 의미한다 플라스크는 app 객체를 이용하여 여러가지 설정을 진행하는데, 이와 같은 방식으로 app 객체를 전역으로 사용하면 프로젝트 규모가 커질 수록 문제가 발생할 확률이 높아진다. 이러한 오류는 순환 참조(circular import)가 대표적이다 app 객체를 전역으로 사용할 때 발생하는 문제를 예방하기 위해서는 "애플리케이션 팩토리(application factory)를 사용하라"고 권한다 앞에서 만든 myproject/pybo.py 파일을 myproject/pybo/__init__.py 파일로 바꾸어 보자. 먼저 명령 프롬프트에서 아래 명령으로 myproject/pybo 디렉터리를 만든다. 그리고 move 명령어로 pybo.py 파.. [데이터베이스] 과제를 위한 백엔드 공부 with flask - 2 플라스크 프로젝트 구조는 아래와 같다. 일단 눈으로만 보자 저번에 작성한 pybo.py는 pybo/__init__.py로 변경이 가능하다 데이터베이스 처리 --> models.py 서버로 전송된 폼 처리 --> forms.py 화면 구성 (저번에 했던 hello_pybo 함수의 역할은 화면 구성)--> views 디렉터리 css, 자바스크립트, 이미지 파일 저장 --> static 디렉터리 html 파일을 저장 --> templates 디렉터리 파이보 프로젝트를 설정 --> config.py 출처: https://wikidocs.net/81044 2-01 플라스크 기초 다지기 현재 파이보 프로젝트는 `projects/myproject` 디렉터리 아래에 pybo.py 파일만 생성한 상태다. 그런데 이보다 .. 이전 1 2 다음