StoryCode

'2018/12'에 해당되는 글 13건

  1. EC2 에 Apache/ Tomcat 7/ MySQL 설치
  2. RDS vs EC2 란 ?
  3. (필수) 최초 사용법
  4. VPC 생성
  5. RDS 생성
  6. font awesome with bootstrapcdn
  7. 설치
  8. Serverless Architecture
  9. Reference
  10. 설치

EC2 에 Apache/ Tomcat 7/ MySQL 설치

AWS, 아마존
반응형

[참조] https://medium.com/@rijoalvi/setting-up-an-amazon-ec2-aws-server-with-tomcat7-running-on-ports-80-443-mysql-oracle-jdk-1-68bcc42bdb94

[참조] 2017-468\20180905\AWS\screencapture-medium-rijoalvi-setting-up-an-amazon-ec2-aws-server-with-tomcat7-running-on-ports-80-443-mysql-oracle-jdk-1-68bcc42bdb94-2018-12-12-14_55_03.png


1. EC2 > 인스턴스 시작


2. Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type 선택.


3. putty 로 IP 접속.

user : ec2-user ( 이 부분은 설정에 따라 다를 수도 있을 듯함. )

IAM ppk 필요 - putty.SSH 에 ppk 등록


4. 설치

sudo yum update


# openjdk

> java -version

: 이미 openjdk 1.7 이 설치되어 있음.


# tomcat 설치가능한 목록 확인 및 설치

> yum list installed | grep tomcat

> yum list tomcat*


> sudo yum install tomcat7

> sudo service tomcat7 start

> sudo yum install tomcat7-webapps tomcat7-docs-webapp tomcat7-admin-webapps

> sudo fuser -v -n tcp 8080

> sudo service tomcat7 stop


> vi /etc/tomcat7/tomcat-users.xml # 수정은 하지 말자.

<tomcat-users>

    <role rolename=”tomcat”/>

     <role rolename=”role1"/>

     <role rolename=”manager-gui”/>

     <user username=“myUser” password=“myPass” roles=”tomcat,role1,manager-gui/>

<tomcat-users>


# MySQL - RDS 이용시 불필요.

> sudo yum install mysql-server

> sudo chkconfig mysqld on

> sudo service mysqld start


# Port 8080 443, 8443 오픈

> sudo /sbin/iptables -L -n -t nat

> sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

> sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443


> sudo /sbin/iptables -L -n -t nat

> sudo /sbin/service iptables save

> sudo /etc/init.d/iptables restart


> sudo /sbin/iptables -L -n -t nat


# domain 을 설정하려면, staticIP 가 필요하다.

# EC2 Instance 에서 Public IP가 없다면 Elastic IP 을 추가해야 한다.

# ( 다만, EC2 Instance 를 만드니 Public IP 가 있었다. )

# Amazon Domain Name Server 에 접속해서 Domain 연결하기

# https://console.aws.amazon.com/route53

# Menu > Domains > Registered domains > Register Domain 에서 도메인 등록 가능

# Menu > Hosted Zones : 도메인명으로 생성. ( 도메인 등록하면 자동 생성됨 )

#                               Hosted Zone 명을 클릭해보면, 자동 등록된 Record Sets 확인가능(NS, SOA)

#                               Ex> NS = ns-944.awsdns-54.net. , ns-1668.awsdns-16.co.uk. ,

#                                            ns-1384.awsdns-45.org. , ns-403.awsdns-50.com.

#                                     SOA = ns-944.awsdns-54.net. awsdns-hostmaster.amazon.

# Menu > Hosted Zones > Create Record Set : 아래와 같이 설정. IP 는 EC2 인스턴스의 Public IP


# Tomcat 체크

> curl http://127.0.0.1:8080


# 보안정책에 80 과 8080 을 추가할 것.


# http://domain:8080 접속 테스트해서 되면 성공.


반응형

'AWS, 아마존' 카테고리의 다른 글

설정.EC2 끼리 scp 하기  (0) 2020.05.13
Beanstalk.ssh 접속 키  (0) 2020.04.08
RDS vs EC2 란 ?  (0) 2018.12.12
(필수) 최초 사용법  (0) 2018.12.11
VPC 생성  (0) 2018.12.11

RDS vs EC2 란 ?

AWS, 아마존
반응형

[참조] https://www.bespinglobal.com/bespins-pick-vol-11-aws-rds-vs-ec2/


기존의 서버, 어플리케이션, 데이터베이스 관리 체계는 비용 및 옵션에 대해 고려해야 할 사항이 많지 않았습니다.
단순히 물리적 서버를 선정하고 필요한 OS를 얹고 데이터베이스 및 어플리케이션을 설치하는 것 외에는 별다른 옵션이 없었습니다.
그러나 머지 않아 하이퍼바이저(Hypervisor)를 통해 가상머신(Virtual Machine)을 운영하고
그 위에 OS를 설치할 수 있는 옵션이 생겼고 기업의 서버에 가상머신을 필요한 만큼 빌려 쓸 수도 있게 되었습니다.

2009년부터 Amazon은 관계형 데이터베이스 서비스(RDS)라는 플랫폼 형태의 서비스(PaaS)를 제공함으로써
기업이 더 이상 OS 및 서버에 신경 쓸 필요 없이 데이터베이스를 빌려 쓸 수 있도록 지원하기 시작했습니다.
해당 서비스로 인해 기업은 인프라 관리에 있어서 고려해야 할 옵션이 더 많아진 셈입니다.
AWS RDS에 대해 살펴보고 어떤 기능들이 함께 제공 되는지 자세히 알아봅시다.

AWS RDS는 인프라 및 데이터베이스 업데이트를 관리해주는 것 뿐만 아니라 까다로운 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원하는 서비스입니다.
Amazon RDS는 현재 MySQL, Oracle, SQL Server, PostgreSQL, MariaDB, Aurora(MySQL과 호환)을 비롯한 총 6가지 데이터베이스 엔진을 지원하고 있습니다.

데이터베이스의 크기는 기본(m4), 메모리 최적화(r3), 마이크로(t2), 총 3가지 카테고리로 나뉩니다.
최적화 된 I/O을 실현할 수 있도록 각 그룹마다 특성에 맞게 vCPUs, GiBs 메모리, 네트워크 성능 수준이 설정되어 있습니다.

각 RDS 인스턴스에서 “Multi-AZ” 옵션을 설정하면, 다른 가용영역(Availability Zone)에 복제된 데이터베이스를 필요할 때 바로 사용할 수 있습니다.
이는 주로 프로덕션 데이터베이스에 사용됩니다.
한쪽 가용영역에서 장애 및 에러가 발생할 경우, 문제에 영향을 받지 않게 독립된 다른 가용영역에 미리 복제된 데이터베이스를 자동으로 사용해서 복구(Failover)시키는 기능입니다.

이 뿐만 아니라, Amazon은 Aurora라는 자체 데이터베이스를 제공합니다.
이는 장애(fault) 발생에도 더 안전하고 가용영역을 통해 자체 복구가 가능하며 또한 추가적인 퍼포먼스 기능들을 제공합니다.

RDS는 EC2 인스턴스를 기반으로 운영하는 서비스 입니다.

RDS 인스턴스 요금은 기본 인스턴스 크기, 데이터 스토리지, 멀티 가용영역, 데이터 전송에 따라 달라집니다.
각 데이터베이스(MySQL, Oracle 등) 엔진마다 위의 요소들에 대해 다른 요금을 적용하기 때문에 기업이 비용 측면에서 고려해야 할 부분이 더 많아집니다.
게다가, Aurora를 사용할 경우 추가적으로 I/O에 대한 비용이 발생합니다.

총 비용을 따져보면 고용량 데이터베이스를 사용할 경우 RDS 인스턴스의 비용이 예상보다 높을 수 있습니다.
또한 데이터베이스에서 특히 새로운 어플리케이션에서 필요한 사용량, 스토리지 등에 대해 예측하기 어려울 수 있습니다.
그리고 자체 하드웨어 또는 인스턴스에서 운영하는 것보다 실제 성능이 훨씬 낮을 수 있습니다.

그러나 비용 측면에서 여전히 RDS가 왜 효율적인지에 대해 알아봅시다.

기업이 선택할 수 있는 데이터베이스 사용 방안은 대개 2가지로 좁혀집니다.

기업은 RDS를 사용할 것인지, 아니면 EC2 인스턴스에 사용 중인 데이터베이스를 직접 설치하는 기존 방식을 택할 지 결정해야 합니다.
AWS에 지불하는 비용만 놓고 비교하면 사용 중인 데이터베이스를 직접 설치하는 것이 확연히 저렴합니다.
하지만 이러한 결정을 내리는 데 있어서 기업들이 쉽게 간과하는 부분이 있습니다.

바로 기업이 RDS를 사용할 경우 빠른 시간 내에 가치를 이룸으로써 생기는 비용 절감입니다.
이는 서비스를 시장에 출시하는 시기를 앞당김으로써 얻을 수 있는 잠재적 기회 비용 및 이점과 시간을 의미합니다.
예를 들어 사용 중인 데이터베이스 대신에 RDS를 사용하게 되면, OS 및 데이터베이스의 설치 및 관리 그리고 업데이트를 따로 할 필요가 없어집니다.
게다가, AWS 콘솔이나 AWS API를 통해 손쉽게 백업이나 복구(recovery)가 가능합니다.

기업은 RDS를 사용함으로써 더 이상 스토리지의 LUN을 구성하고 더 나은 I/O를 위해 스트라이핑(Striping)을 최적화하는 데 시간과 노력을 쓸 필요가 없습니다.
또한 간단하게 인스턴스 크기를 축소 및 확장할 수 있으며, 클릭 한번으로 간단하게 높은 가용성을 이룰 수 있습니다.
이러한 모든 기능들을 통해 기업은 데이터베이스 도입 및 관리하는 데 있어서 시간과 노력을 줄일 수 있는 것입니다.
약간의 추가적인 요금이 발생하긴 합니다. 하지만 이를 통해 단축된 도입 시간은 시장에서 두드러진 성과로 이어질 수 있습니다.

모든 PaaS 서비스의 취약점 중에 하나는 사용 중이지 않을 때도 상관없이 계속 비용을 지불해야만 한다는 점이었습니다. RDS에도 예외는 아니었습니다.
하지만 최근 AWS의 RDS 업데이트를 통해 더 이상 사용 중이지 않을 때에 대한 불필요한 비용을 지불하지 않아도 됩니다.

결론

AWS RDS 요금 정책은 다소 복잡하고 어려울 수 있습니다.
또한, 사용 중인 데이터베이스에 대해 정확히 파악하지 않으면 제대로 된 빌링(Billing)을 예측하기 어렵습니다.

그러나 이러한 단점을 보완하는 많은 이점이 있습니다.
RDS는 데이터베이스의 백엔드(Backend)에 대한 관리 및 구축을 지원하면서 기업의 시스템 관리를 간소화 시킵니다.

특히 클라우드로 이전하려는 기업의 경우, 분리된 인스턴스 또는 하이퍼바이저(Hypervisor)에서의 운영보다 RDS를 사용하는 것이 좋습니다.
데이터베이스의 관리보다는 기업의 비즈니스와 어플리케이션에 집중할 수 있기 때문입니다.

인프라 운영을 위한 어플리케이션, 제대로 설계된 자동화 그리고 데이터베이스 전문 관리 팀이 있는 기업의 경우 RDS가 꼭 필요하지 않을 수 있습니다.

사용 중인 데이터베이스에 필요한 딱 맞는 결정을 내리려면 위에서 다룬 것처럼 RDS의 기능, 장단점 그리고 비용 요소를 정확히 파악하는 것이 중요합니다.

TIP. 물론 RDS의 설계와 운영, 어플리케이션 이전은 DBA 전문가의 도움을 받아야 합니다.

RDS를 통한 비즈니스 차별화,
베스핀글로벌의 클라우드 DBA(DB Administration)팀에 문의하세요.



단점 1) ssh 로 직접 서버에 접근할 수는 없는 것 같다.

반응형

'AWS, 아마존' 카테고리의 다른 글

Beanstalk.ssh 접속 키  (0) 2020.04.08
EC2 에 Apache/ Tomcat 7/ MySQL 설치  (0) 2018.12.12
(필수) 최초 사용법  (0) 2018.12.11
VPC 생성  (0) 2018.12.11
RDS 생성  (0) 2018.12.11

(필수) 최초 사용법

AWS, 아마존
반응형

[ 참조 ] https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html


1. https://aws.amazon.com/ 에서 계정 등록

- 이때 "AWS 계정 루트 사용자" 자동 생성됨. 이메일주소와 암호로 로그인.

참고자료) https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_root-user.html


2. https://console.aws.amazon.com/iam/ 

- Root 사용자는 무한 권한이라 위험 하니, IAM 사용자만들어 관리자 권한 부여

- 사용자 추가할 것.

  사용자 : Administrator 입력, AWS Management Console Access 선택

- 그룹 이름에 Administraotors 입력, 필터는 AWS 관리 직무 선택, 정책목록에서 AdministratorAccess 선택


- 마지막에 "이메일 전송"을 클릭하면, 아래와 같은 형태의 접속 주소가 나타남.

  https://13143452553.signin.aws.amazon.com/console


3.https://13143452553.signin.aws.amazon.com/console 주소로 접속하여 로그인

계정 : 13143452553

사용자 이름 : Administrator

암호 : 암호


4. Key Pair 생성 - 로그인용

- 리전별로 Key pair 생성.

- Public Key 는 아마존에 Private Key 는 사용자가 보유.

- 상단 메뉴에서 "EC2" 콘솔 접속

  왼쪽메뉴에서 "네트워크 및 보안" > "키 페어" 선택

  키페어 생성 누르고 "아무 이름" 을 입력후 "키페어생성" 클릭

  "아무이름.pem" 파일이 다운로드되니 PC 에 안전하게 저장


5. Key Pair 로 인스턴스 연결

"참조 URL" 참조할 것. 너무 길다.



반응형

'AWS, 아마존' 카테고리의 다른 글

Beanstalk.ssh 접속 키  (0) 2020.04.08
EC2 에 Apache/ Tomcat 7/ MySQL 설치  (0) 2018.12.12
RDS vs EC2 란 ?  (0) 2018.12.12
VPC 생성  (0) 2018.12.11
RDS 생성  (0) 2018.12.11

VPC 생성

AWS, 아마존
반응형

[ 참고 ]

https://www.slideshare.net/awskorea/2-vertical-data-center


https://www.44bits.io/ko/post/communication_between_vpcs__aws_vpc



SSH 접속 - https://brunch.co.kr/@topasvga/358

반응형

'AWS, 아마존' 카테고리의 다른 글

Beanstalk.ssh 접속 키  (0) 2020.04.08
EC2 에 Apache/ Tomcat 7/ MySQL 설치  (0) 2018.12.12
RDS vs EC2 란 ?  (0) 2018.12.12
(필수) 최초 사용법  (0) 2018.12.11
RDS 생성  (0) 2018.12.11

RDS 생성

AWS, 아마존
반응형

[ 참조 ]

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html


https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_ConnectToMariaDBInstance.html


1. 보안 그룹을 설정해야 한다.


2. utf8 설정 - 먼저 utf8 을 위한 새 파라미터 그룹을 만들어야 한다.

( 디폴트 파라미터 그룹은 수정이 안되는 듯 하다. )

- RDS 대시보드 > 파라미터 그룹 > 파라미터 그룹 생성

- "파라미터 검색"을 "CHARACTER_SET" 으로 검색

- 전부 UTF8 로 변경, 단, character_set_filesystem은 engine-default 로 그냥 냅두기


3.

"AWS > 서비스 > RDS > 인스턴스" 로 접속하면 아래와 같은 그림이 나타나는데, 중간즈음에

엔드 포인트 확인한다.




4. mysql 접속시

ip : 엔드포인트

port : 3306

사용자 : rds 에 db 생성시 작성한 사용자




반응형

'AWS, 아마존' 카테고리의 다른 글

Beanstalk.ssh 접속 키  (0) 2020.04.08
EC2 에 Apache/ Tomcat 7/ MySQL 설치  (0) 2018.12.12
RDS vs EC2 란 ?  (0) 2018.12.12
(필수) 최초 사용법  (0) 2018.12.11
VPC 생성  (0) 2018.12.11

font awesome with bootstrapcdn

Web Dev, HTML, CSS, SVG, BootStrap/Tool
반응형

1) https://www.bootstrapcdn.com/fontawesome/





2) https://fontawesome.com/v4.7.0/icons/



반응형

설치

Serverless/BasS.Go
반응형

1. http://www.golang.org


시작메뉴 > Go Programming Language > GoDocServer 가 설치됨.


godocserver = http://localhost:6060



버전보기 >

CMD> go version

CMD> go run main.go // 실행

CMD> go build main.go // 실행파일 생성




Install the Go tools

If you are upgrading from an older version of Go you must first remove the existing version.

Windows

MSI installer

Open the MSI file and follow the prompts to install the Go tools. By default, the installer puts the Go distribution in c:\Go.

The installer should put the c:\Go\bin directory in your PATH environment variable. You may need to restart any open command prompts for the change to take effect.

Setting environment variables under Windows

Under Windows, you may set environment variables through the "Environment Variables" button on the "Advanced" tab of the "System" control panel. Some versions of Windows provide this control panel through the "Advanced System Settings" option inside the "System" control panel.

Test your installation

Check that Go is installed correctly by setting up a workspace and building a simple program, as follows.

Create your workspace directory, %USERPROFILE%\go. (If you'd like to use a different directory, you will need to set the GOPATH environment variable.)

Next, make the directory src/hello inside your workspace, and in that directory create a file named hello.go that looks like:

package main

import "fmt"

func main() {
	fmt.Printf("hello, world\n")
}

Then build it with the go tool:

C:\> cd %USERPROFILE%\go\src\hello
C:\Users\Gopher\go\src\hello> go build

The command above will build an executable named hello.exe in the directory alongside your source code. Execute it to see the greeting:

C:\Users\Gopher\go\src\hello> hello
hello, world

If you see the "hello, world" message then your Go installation is working.

You can run go install to install the binary into your workspace's bin directory or go clean -i to remove it.

Before rushing off to write Go code please read the How to Write Go Code document, which describes some essential concepts about using the Go tools.

Uninstalling Go

To remove an existing Go installation from your system delete the go directory. This is usually /usr/local/go under Linux, macOS, and FreeBSD or c:\Go under Windows.

You should also remove the Go bin directory from your PATH environment variable. Under Linux and FreeBSD you should edit /etc/profile or $HOME/.profile. If you installed Go with the macOS package then you should remove the /etc/paths.d/go file. Windows users should read the section about setting environment variables under Windows.

Getting help

For help, see the list of Go mailing lists, forums, and places to chat.

Report bugs either by running “go bug”, or manually at the Go issue tracker.



반응형

Serverless Architecture

IT 용어, 인터넷 활용 등등
반응형

[ 참고 자료 ] https://velopert.com/3543


- 서버가 없다는 뜻은 아님. 그렇다고 가상 머신도 아님.


- 굳이 언급하자면, 구글클라우드나 아마존클라우드에 코드를 실행한다.

  달리 서버가 필요한 것도 아님.


- BasS 와 FaaS 가 서버리스임.

  BasS = Backend as a Service = Firebase, Kinvey

  FaaS = Function as a Service = AWS Lambda, Azure Functions, Google Cloud Functions


- 추세

자체 전산실 =>

IaaS (Infrastructure as a Service) : 가상화=>

PaaS(Platform as a Service) : Application 배포 =>

Serverless(BaaS, Faas)

반응형

'IT 용어, 인터넷 활용 등등' 카테고리의 다른 글

CI, DI  (0) 2020.04.20
ab (apache bench) 테스트  (0) 2020.03.26
Javascript.Hoisting  (0) 2020.02.08
whois.com 에서 whois.co.kr 로 이전하기  (0) 2019.07.01
Manage, Unmanaged, Native, JIT  (0) 2018.12.02

Reference

Python, 파이썬
반응형

http://pyqt.sourceforge.net/Docs/PyQt5/


https://opentutorials.org/module/544/4998

반응형

'Python, 파이썬' 카테고리의 다른 글

설치.DJango + Redis + Celery  (0) 2020.01.29
설치.Windows10.Request Module  (0) 2019.08.06
Manage Excel  (0) 2018.12.03
파이썬 설치시  (0) 2018.06.09
Python 3.6.5 Release  (0) 2018.06.09

설치

Python, 파이썬/GUI 프로그래밍
반응형

2018-650

[ 참조 ] https://www.youtube.com/watch?v=YUdlGBAPNrU&t=1350s


0) Python 3.5.2 로 설치.


1) wxPython, PyQt, TkInter 필요


pip install PyQt5

pip install pyqt5-tools # Python 3.6 혹은 3.7 에서 미지원할 수도 있음.


pip install pyinstaller

> pyinstall main.py


설치 추가 참조 : https://opentutorials.org/module/544/5000


2) PyQT 를 이용하는 방법 두가지

2.1) Qt Designer 사용

2.1.1) 방식1. 생성된 XML 기반의 ui => pyuic5 로 python 파일로 변환

- 디자인 변경시 마다 변환이 귀찮다.


2.1.2) 방식2. 생성된 XML 기반의 ui => loadUi() 메서드 사용

- 변환 없이 바로 사용가능

class Form (QtWidgets QDialog):

  def __init__(self, parent=None):

    QtWidgets.QDialog.__init__(self, parent)


    self.ui = uic.loadui("ui,ui", self)

    self.pb = QtWidgets.QPushButton("test')

    self.pb.show()

   

- 코드로 직접 디자인


3) QWidget

3.1) QWidget 은 가장 기본 위젯

- 즉 모든 위젯은 QWidget 을 피상속 ( 윈도프레임/타이틀, 입력이벤트및 출력처리, 위치/크기등 속성)

- Ex>



QPushButton : 눌리는 버튼모양

QAbstractButton : 클릭 가능해.

QWidget : 기본 위젯


3.2) 시그널과 슬롯

위젯 프로토콜은,

- 모든 위젯은 시그널과 슬롯이 있다.

- 시그널은 정의된 기능이 실행되면 결과 값을 보낸다. (실행할 수 있는 함수가 아니다.)

- 슬롯은 시그널이 보낸값을 받아서 설정된 행위를 한다. (슬롯은 시그널과 연결시켜야 상호간의 통신 가능하다.)


3.3) 사용자 커스텀 위젯

방법1) QWidget 상속

방법2) 다른 Widget 확장


아래 그림)

 - 이미 있는 Widget 상속후 기능추가 변경 =>새로운 시그널 및 슬롯 작성

- 여러 위젯 합쳐서 하나의 위젯으로 만들기



4. 예제)

- 창생성 참조

https://github.com/RavenKyu/OpenTutorials_PyQt/commit/b32b434637e7020b3648205a306dc88881c11cde


- 메뉴바 추가

https://github.com/RavenKyu/OpenTutorials_PyQt/commit/ddb11952dcb00645077e6aa2fc3eb67c96a1ce5a


-국제화 한국어 추가 ( 시스템 로케일 따라 국어 변경 )

https://github.com/RavenKyu/OpenTutorials_PyQt/commit/79aca341cfe995af3c9e728dc0a5e57677cd7956

: 언어 지원이 필요한 문자열에 tr() 함수 사용

: pro 파일제작하여, tr() 이 포함된 파이썬 파일명. 생성할 언어파일명

: pylupdate5 -noobsolete notepad_i18n.pro - 명시된 파일에서 tr() 이 있는 부분을 검사. 국가별 ts 파일 생성

: lrelease.exe "translate\ko_KR.ts" qm파일로 변환

: lrelease.exe는 Qt5 를 설치 또는 pip install PyQt_tools 설치


- 국제화 예제 (언어를 자동 및 수동으로 설정)

https://github.com/RavenKyu/OpenTutorials_PyQt/commit/29617f50b8dfa83b8d4aee35221cc28f5f02c3bc


- 텍스트 에디터 추가 (QTextEdit, 확장성을 위해 사용자 커스텀 위젯화)

https://github.com/RavenKyu/OpenTutorials_PyQt/commit/204815dec080b20d1b82e6c6f040e4b3ed9eca36


- 메뉴 활성화 (새로만들기, 열기, 저장)

https://github.com/RavenKyu/OpenTutorials_PyQt/commit/a36866caac5d1dfdf6b6e5628a7087169ff8feb6


- 상태표시바

https://github.com/RavenKyu/OpenTutorials_PyQt/commit/4c3b3f0d0e60024403d4596f99d477666832ec81



- 프린터 추가

https://github.com/RavenKyu/OpenTutorials_PyQt/commit/ffdba77d5ad044dfc07072d075bb1fbd1e07753b






반응형