천객만래 [千客萬來] (It has an interminable succession of visitors)
반응형

Could not find a suitable TLS CA certificate bundle python

google 인증서 문제

lib/requrests 폴더에 cacert.pem 파일을 복사하라고 하는데
작동안된다.

결국, /dist 폴더에 복사했더니 문제가 발생하지 않는다.

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

프로젝트 방법론, 관리를 위한 유용한 툴

 

GitHub : Web용 프로젝트관리 시스템 ( https://github.com/ )

Source Tree : GUI용 버전관리 시스템 ( https://www.sourcetreeapp.com/ )

Trac : Web용 버전관리, 버그추적 시스템 ( https://trac.edgewall.org/ )

South Django : DB 마이그레이션 Tool ( https://south.readthedocs.io/en/latest/ )

Redmine : 도입 장벽이 비교적 낮은 오픈소스 티켓 관리 시스템 ( https://www.redmine.org/ )

Mockito : DB와 연계된 테스트가 가능한 오픈소스 테스트 프레임 워크 ( https://site.mockito.org/ )

Vagrant : 가상화 소프트웨어를 고 관리하는 도구 ( https://www.vagrantup.com/ )

Chef : 원하는 환경을 구성하기 위해 서버나 미들웨어를 설정하는 도구 ( https://docs.chef.io/cookbooks/ )

Jenkins : 지속적 통합을 제공하는 툴 ( https://jenkins.io/ )

Selenium : 웹 어플리케이션 기능 테스트나 통합 테스트를 자동화하는 도구 ( https://www.selenium.dev/ )

 

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

장고 쿼리셋 API 가이드가 잘 설명되어 있습니다.

QuerySet 을 작성하는데 단순한 것은 자주 사용되며 문제없이 작동하지만
SQL이 복잡해지는 경우에 난감해 지는 순간을 맞이 하게 됩니다.

이 때 이 페이지를 이용해서 SQL Query와 QuerySet의 변환을 자연스럽게 하면서 확인할 수 있습니다.

이 페이지를 참조해서 시원스럽게 문제를 해결했습니다.

docs.djangoproject.com/en/2.2/ref/models/querysets/

 

QuerySet API reference | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

 

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

장고 웹서버 백그라운드 실행

  1. 우선 서버를 실행시킵니다.

  2. control + Z를 통해 해당 프로그램을 정지합니다.

[8]+ Stopped python3 manage.py runserver 0.0.0.0:8000 --settings=config.settings.deploy

  1. 아래 명령어를 통해 프로그램을 백그라운드로 보냅니다.

bg

  1. 아래 명령어를 통해 ssh 연결이 끊어져도 해당 프로세스가 돌아가도록 합니다.

disown -h

  1. 실행중인 프로세스를 확인하면 존재하는 것을 알 수 있습니다.

ps -l

장고 웹서버 백그라운드 실행

1. 우선 서버를 실행시킵니다.

2. control + Z를 통해 해당 프로그램을 정지합니다.

[8]+  Stopped python3 manage.py runserver 0.0.0.0:8000 --settings=config.settings.deploy

3. 아래 명령어를 통해 프로그램을 백그라운드로 보냅니다.

bg

4. 아래 명령어를 통해 ssh 연결이 끊어져도 해당 프로세스가 돌아가도록 합니다.

disown -h

5. 실행중인 프로세스를 확인하면 존재하는 것을 알 수 있습니다.

ps -l

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

위의 quaggaJS   라이브러리는 github 에서 현재에도 계속 업데이트가 이루어지고 있는 라이브러리 입니다.
실시간 인식 과 캡쳐 등의 기능외에 다양한 기능을 지원하고있구요.

핸드폰에서 해당 라이브러리 기능이 있는 웹 사이트에 접속할시에,
핸드폰의 카메라로 해당 바코드를 캡쳐없이 바코드에 가져다 대면 QR 코드 인식하듯이 
바코드를 인식해 숫자로 디코딩해서 나옵니다.

HTML5 와 자바스크립트로 이루어져있기때문에 모바일기종에서는 제약이 없어 보입니다.
(전면 카메라/ 후면 카메라 선택가능 여러가지 기능이 있어요)

인식된 바코드 숫자를 여러개 누적해서 , 서버에 전송할지
인식된 바코드 숫자를 한개씩 건바이 건으로 서버에 전송할지 등은 개발자의 몫이구요.

모바일로 위의 예제 사이트에 접속하여서 확인해보세요. (QR코드도 지원됩니다)

 

https://serratus.github.io/quaggaJS/examples/live_w_locator.html 

https://a.kabachnik.info/a-javascript-barcode-reader-with-bootstrap-3-and-quaggajs.html 

캡쳐된 바코드 이미지를 서버로 대량업로드하여 처리하는 방법도 있습니다.
사용 용도에 따라 바코드가 필요없게 설계를 할수도 있습니다.

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

파이썬 가상환경 설정

파이썬 가상환경 설정은 아주 간단하게 할 수 있습니다.
가상환경을 설정한 후에 작업을 하는게 훨씬 안정적으로 편리하게 이용할 수 있습니다.
아래의 에는 Mac에서 파이썬 가상환경을 설정하는 방법입니다.

# 현재 폴더는 startprojecct 폴더입니다. (manage.py 가 있는 폴더)
$ brew install pyenv # or pip install pyenv
$ pyenv install python3
$ pyenv virtualenv python3 [가상환경이름] 

# 활성화
$ source ~/[가상환경이름]/bin/activate

# 비활성화
$ deactivate

# 가상환경 제거
$ rm -r /경로명

 

다른 방법도 있습니다.

$ python -m venv venvapp
(venvapp) $ source ./venvapp/bin/activate
(venvapp) $ deactivate

 

우분투에서 설정하는 방법은 설치하는 방법만 다릅니다.

$ apt-get install -y python3-venv

가상환경이란
가상 환경(Virtual Environment)은 사용자가 정한 임의의 디렉토리 밑에 Python과 관련 패키지 등을 함께 넣어 그 안에서 독립적인 파이썬 개발 환경을 설정하는 것 입니다. 즉, 가상 환경은 Lightweight, Self-contained 파이썬 개발 환경으로서 필요한 경우 한 개발머신 안에 여러 개의 가상 환경을 만들고 각 가상 환경에서 다른 파이썬 버전이나 다양한 패키지들을 독립적으로 설치 사용할 수 있는 가상적 개발 환경입니다.

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

Mac에서 MariaDB 설치

# mariadb 설치 실행
$ brew update
$ brew install mariadb
$ brew services start mariadb

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

docker container stop 안될 때 또는 docker-compose down 안될 때

 

시스템관리자가 해줘야 할 일:  AppArmor가 일을 똑바로 안해서 발생;

docker 설치 후 발생 할 수 있는 문제

$ docker stop python

Error response from daemon: cannot stop container: python: Cannot kill container c2ea9333f97082d88578268f269657aa43e12d7b561b3503a64aa8b4738ee98a: unknown error after kill: runc did not terminate sucessfully: container_linux.go:392: signaling init process caused "permission denied"
: unknown


아래는 해결책

# For anyone that does not wish to completely purge AppArmor.
# Check status:
$ sudo aa-status

# Shutdown and prevent it from restarting:
$ sudo systemctl disable apparmor.service --now

Synchronizing state of apparmor.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable apparmor

# Unload AppArmor profiles:
$ sudo service apparmor teardown

 * Unloading AppArmor profiles


# Check status:
$ sudo aa-status
# You should now be able to stop/kill containers.

apparmor module is loaded.
0 profiles are loaded.
0 profiles are in enforce mode.
0 profiles are in complain mode.
0 processes have profiles defined.
0 processes are in enforce mode.
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

# 이제 명령어 권한이 동작함
$ docker stop python

 
반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

Documentation

To build the documentation, you'll need to install mkdocs.

$ pip install mkdocs

To preview the documentation:

$ mkdocs serve Running at: http://127.0.0.1:8000/

To build the documentation:

$ mkdocs build

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

python django Testing

IT-개발 2021. 2. 27. 02:02
반응형

Install testing requirements.$ pip install -r requirements.txt

Run with runtests.

$ ./runtests.py

You can also use the excellent tox testing tool to run the tests against all supported versions of Python and Django. Install tox globally, and then simply run:

$ tox

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

python 문자열 변환

IT-개발 2021. 2. 25. 09:01
반응형

python 문자열 변환

type string to bytes

type bytes to string

type string to dict

type string to list  <-- ast.literal_eval() 와 json.loads()함수 2가지 방법이 있습니다.

# bytes type to unicode string type
import json
import ast

str_text = "{\"key\": \"astrg\"}"
# type string to bytes
bytes_text = str_text.encode()
print(bytes_text, type(bytes_text))
# type bytes to string
str = bytes_text.decode()
print(str, type(str))
# string to dict
dict_text = json.loads(str)
print(dict_text, type(dict_text))
# type string to list
x1 = "['B-EXP', 'I-EXP', 'B-SUB', 'I-SUB', 'O']"
x2 = ast.literal_eval(x1)
print(x2, type(x2))
# type string to list
#x2 = json.loads(x1)
#print(x2, type(x2))

반응형

'IT-개발' 카테고리의 다른 글

python 가이드 자동생성  (0) 2021.02.27
python django Testing  (0) 2021.02.27
python 문자열 변환  (0) 2021.02.25
[MySQL] 로그인 오류 / 비밀번호 재설정  (0) 2021.02.10
vscode에서 파이썬 인터프리터 설정  (0) 2021.02.08
JMeter 설치와 실행  (0) 2021.01.25
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

mysql을 docker를 이용한 image에서 container 를 이용한 방법만 사용해서 테스트를 하다보니 

아주 쉽게 사용하고 있었는데.

 mac에 설치해서 DCL 작업을 하는데 에러가 계속나는 것이다. 몇시간을 헤매다가 

반복되는 명령어들 조합으로 처리하는데 root 계정 비밀번호가 드디어 설정되었다.

왜 안되었는지. 왜 되는지 타이밍을 모르겠다. 에러에 도움이 될 만한 것을 기록해 본다.

 

[로그인 오류]

유형 1) ERROR 1045 (28000): Access denied for user 'root@'localhost' (using password: NO)

- 사용자의 비밀번호가 없을 경우 나타나는 오류 문구, 아래 해결 방법에 있는 명령어들 중 하나를 선택해 입력.

[해결 방법]
1. mysql -u 사용자
2. mysql -u 사용자 -p 비밀번호
3. mysql -u 사용자 -p
Enter password : 비밀번호 입력

위 세 가지 방법 중에서 하나 선택 (3번 방법을 추천, 3번은 명령어 실행 후에 비밀번호 입력 필요함.)

 

유형 2) ERROR 1045 (28000): Access denied for user 'root@'localhost' (using password: YES)

- 사용자의 비밀번호가 틀렸을 경우 나타나는 오류 문구, 아래 해결 방법에 나와있는 명령어들을 입력.

[해결 방법]

mysql > use mysql
mysql > update user set password=password('비밀번호') where user='사용자'; // 비밀번호 변경
mysql > flush privileges; // 변경사항 적용

 

[비밀번호 재설정]

만약에 비밀번호를 잊어버렸을 경우 해결방법에 나와있는 대로 진행하면 된다.

[해결 방법]

mysqld --skip-grant // 인증 없이 mysql 진입

위의 유형 2번처럼 비밀번호 재설정

 

 

 

[비밀번호 변경오류]

ERROR 1348 (HY000): Column 'Password' Is Not Updatable [Mysql,Mariadb 오류]

10.4버전부터는 root 계정이 자동으로 안전하게 생성되기 때문에 설치할때 비밀번호를 요구하지않는다고한다.

root 로했을때는 그냥 mysql하면 된다.

root 접속 후 SET 명령어를 사용해서 간단하게 바꿀 수 있다.

set password = password("password");

다른계정으로 접속하고 싶으면 root 비밀번호를 생성 시키거나 sudo mysql 명령어로 접속하면된다.

 

 

 

반응형

'IT-개발' 카테고리의 다른 글

python django Testing  (0) 2021.02.27
python 문자열 변환  (0) 2021.02.25
[MySQL] 로그인 오류 / 비밀번호 재설정  (0) 2021.02.10
vscode에서 파이썬 인터프리터 설정  (0) 2021.02.08
JMeter 설치와 실행  (0) 2021.01.25
크롤링/스크래핑 ? 무슨 차이지?  (0) 2021.01.20
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

vscode에서 파이썬 인터프리터 설정

 

Visual Studio Code로 파이썬 작업을 하게 되면 실행과 디버깅을 해야할 때 정의 해주어야 하는 것이 있습니다.

바로 파이썬 경로 입니다.

파이썬 설치는 다들 쉽게 하셨겠습니다만 Visual Studio Code에서 작업을 하려면

뭔가 부족한 느낌이 듭니다. 뭔가 잊어버리고 작업을 하는 것 같지요.

제 경우는 PyCharm과 Anaconda 모두를 설치하여 사용하고 있습니다.

그래서 별 생각을 하지 않았는데 vscode에서는 설정이 필요하다는 것을 알았습니다.

 

제가 사용하는 환경은 Mac OSX에서 Visual Studio Code 이니까

이 환경에서 설명을 드리겠습니다.

파이썬 실행과 디버깅을 위해서 파이썬 인터프리터라는 것을 설정하게 됩니다.

vscode상에서 "Shift + Command + P"를 클릭합니다.

그러면, Command Palette가 나타나느데 여기에 "Python: Select interpreter"라고 보이실 겁니다.

이것을 선택해 보겠습니다.

많이도 나오네요.

파이썬 인터프리터를 선태할 수 있는 선택옵션이 많습니다.

이 중에서 하나를 사용하시면 됩니다.

선택하시게 되면 vscode에서 언제나 설정할 때 필요한 파일인 settings.json 파일에 추가되어 저장이 됩니다.

선택한 인터프리터에서 import 할 라이브러리(플러그인)이 없는 경우에 해당 경로에서

아래와 같은 방법으로 설치해주시면 쉽게 설치하고 사용할 수 있습니다.

$ pip install subprocess

 

그럼, 즐거운 코딩 하세요.

반응형

'IT-개발' 카테고리의 다른 글

python 문자열 변환  (0) 2021.02.25
[MySQL] 로그인 오류 / 비밀번호 재설정  (0) 2021.02.10
vscode에서 파이썬 인터프리터 설정  (0) 2021.02.08
JMeter 설치와 실행  (0) 2021.01.25
크롤링/스크래핑 ? 무슨 차이지?  (0) 2021.01.20
숫자가 아님 NaN  (0) 2021.01.10
Posted by 사용자 SB패밀리

댓글을 달아 주세요

JMeter 설치와 실행

IT-개발 2021. 1. 25. 17:41
반응형

JMeter 설치와 실행

 

java 설치후

bae@Bae-GroooKorea ~ % javap -version

11.0.10

jdk Path 등록

/Library/Java/JavaVirtualMachines/jdk-11.0.10.jdk

jmeter 설치후

jmeter 실행에서 에러가 난다면

참고 : https://www.programmersought.com/article/7538141221/

bae@Bae-GroooKorea bin % ./jmeter     

./jmeter: line 128: [: : integer expression expected

./jmeter: line 199: /Library/Java/JavaVirtualMachines/jdk-1.11.0.10.jdk/Contents/Home/bin/java: No such file or directory

.bash_profile에 자바 JDK 경로 설정을 확인한다.

그리고 아래에서 jdk 경로를 수정한다.

/usr/local/Cellar/jmeter/5.0/bin

.jmeter 실행에서 에러가 난다면

./jmeter: line 199: 11721 Abort trap: 6           "$JAVA_HOME/bin/java" $ARGS $JVM_ARGS $JMETER_OPTS -jar "$PRGDIR/ApacheJMeter.jar" "$@"
 
반응형

'IT-개발' 카테고리의 다른 글

[MySQL] 로그인 오류 / 비밀번호 재설정  (0) 2021.02.10
vscode에서 파이썬 인터프리터 설정  (0) 2021.02.08
JMeter 설치와 실행  (0) 2021.01.25
크롤링/스크래핑 ? 무슨 차이지?  (0) 2021.01.20
숫자가 아님 NaN  (0) 2021.01.10
go mod 캐시 삭제  (0) 2021.01.04
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

크롤링/스크래핑

크롤링? 스크래핑? 

요즘 뿐만이 아니라 오래전부터 사용해오던 IT계의 용어입니다.

그런데. 이 차이를 명확히 아는 사람들이 없죠.

저도 알고보니 월드컵이 있던 2002년쯤 크롤링을 해봤었네요. 

그 당시에는 스크래핑이라는 단어를 사용하지 않았습니다.

저는 근래에 웹크롤링에 대해서 공부를 하고 있습니다. 

그 때와 지금 사용하는 개발언어가 다르기 때문입니다.

그럼, 크롤링과 스크래핑에 대하여 알아볼까요.

 

크롤링과 스크래핑은 비슷한 목적이지만 상황에 따라 다르게 사용합니다. 그 목적은 다른 웹페이지의 정보를 가져와 활용하기 위한 것인데, 크롤링은 크롤링 서버에서 대상 서버로 요청을 보내 html 형태로 결과물을 가져올 수 있으면 이를 분석해서 원하는 데이터로 변환할 수 있어 상대적으로 간단한데, 대상 서버가 크롤링 서버의 접근을 막아놓은 경우는 스크래핑 방식을 이용해야 합니다.

스크래핑은 크롤링이 안 되는 경우, 브라우져 인스턴스를 생성해서 일반 사용자가 브라우져를 통해 사이트에 접근한 것처럼 해당 웹페이지 정보를 읽어올 수 있습니다. 브라우져 인스턴스를 띄우는 것은 메모리를 많이 사용하기 때문에 크롤링보다 느리고 구현도 번거로워서 비용 차이가 발생합니다. 크롤링을 먼저 시도하고 데이터를 가져오는데 실패하면 스크래핑을 시도합니다.

파이썬으로 작업하다가 보니 Chrome 인스턴스를 이용해서 하는 경우도 있더라구요. 예전에는 IE 인스턴스였는데 말입니다.

추가적으로 멀티 서버 크롤링은 대상 페이지에서 요청이 많은 IP 접속을 막는 경우 AWS 등의 클라우드 서버에서 인스턴스를 재시작하며 IP를 변경해가면서 접속을 시도할 때 사용합니다. 클라우드 운영 및 크롤링 환경 구축을 위해 많은 시간을 투입해야 하므로 비용이 많이 듭니다. 크롤링과 스크래핑은 대상 서비스에 크롤링 허락을 받은 상태 또는 일반적으로 허용되는 상태에만 구현이 가능합니다. 저작권 이슈 발생시 의뢰한 고객사의 책임이기도 하지만 저희 쪽에서도 법적인 이슈가 발생할 가능성이 있는 경우는 개발을 진행하지 않습니다.

반응형

'IT-개발' 카테고리의 다른 글

vscode에서 파이썬 인터프리터 설정  (0) 2021.02.08
JMeter 설치와 실행  (0) 2021.01.25
크롤링/스크래핑 ? 무슨 차이지?  (0) 2021.01.20
숫자가 아님 NaN  (0) 2021.01.10
go mod 캐시 삭제  (0) 2021.01.04
델파이 커뮤니티 무료버전 설치  (0) 2020.12.26
Posted by 사용자 SB패밀리

댓글을 달아 주세요

숫자가 아님 NaN

IT-개발 2021. 1. 10. 22:26
반응형

숫자가 아님 NaN

컴퓨터 연산에서 NaN(Not a Number, not a real number)은 연산 과정에서 잘못된 입력을 받았음을 나타내는 기호이다. ... 예를 들어서, 대부분의 부동소수점 장치는 음수에 대해서 제곱근을 구하려는 연산에 대해서 이것은 불가능(invalid)하다는 메시지와 함께 NaN 값을 반환한다.

 

예를 들면, 0으로 나눈 값

모든 개발언어에서 지원한다. C++, Delphi, Java, Python, C#, VisualBasic, Javascript 등등

// Example code : Assign NAN to a number and then test using IsNaN
var
  float : Double;

begin
  // Set the number to an invalid number
  float := NaN;     // Equivalent to 0.0/0.0

  // Although an invalid number, we can still display it
  ShowMessage('float = '+FloatToStr(float));

  // And we can test to see if it is a valid number
  if IsNaN(float)
  then ShowMessage('float is not a number')
  else ShowMessage('float = '+FloatToStr(float));
end;

출처: WikiPedia

 

참고로 추가로 많이 사용되는 키워드

Nil = Nothing; zero; pointer value to 0. A pointer value that is defined as undetermined

const Nil = Pointer(0);

Null = 정의 되지 않은 값. The Null variable has an undefined value.

var
  Answer : Variant;

begin
  Answer := Divide(4,2);

  // Show the result of this division
  if Answer = Null
  then ShowMessage('4 / 2 = Invalid')
  else ShowMessage('4 / 2 = '+IntToStr(Answer));

  Answer := Divide(4,0);

  // Show the result of this division
  if Answer = Null
  then ShowMessage('4 / 0 = Invalid')
  else ShowMessage('4 / 0 = '+IntToStr(Answer));

end;

function TForm1.Divide(Dividend, Divisor: Integer) : Variant;
begin
  // Try to divide the Dividend by the Divisor
  try
    Result := Dividend div Divisor;
  except
    Result := Null ;    // Assign Null if the division threw an error
  end;
end;

 

반응형

'IT-개발' 카테고리의 다른 글

JMeter 설치와 실행  (0) 2021.01.25
크롤링/스크래핑 ? 무슨 차이지?  (0) 2021.01.20
숫자가 아님 NaN  (0) 2021.01.10
go mod 캐시 삭제  (0) 2021.01.04
델파이 커뮤니티 무료버전 설치  (0) 2020.12.26
mac에서 sciter-sdk 설치하기  (0) 2020.12.24
Posted by 사용자 SB패밀리

댓글을 달아 주세요

go mod 캐시 삭제

IT-개발 2021. 1. 4. 16:41
반응형

go mod 캐시 삭제

사내 네트워크에서

git 버전 변경이나 저장소 변경 등으로 사용중이 go.mod 의 변화가 있을때

빌드시 다음과 같은 패키지를 가져오지 못하는 403 에러가 발생한다.

$ go: github.aaa.com/ysoftman/sample@v0.1: unrecognized import path "github.aaa.com/ysoftman/sample" (https fetch: Get https://github.ysoftman.com/ysoftman/sample?go-get=1: Forbidden)

proxy 환경 변수 중 no_proxy 에 추가한다.

$ export no_proxy=github.aaa.com,github.bbb.com

참고로 패키지 경로를 찾지 못하는 경우

https://github.com/golang/go/issues/27238#issuecomment-432793244

mod 로 다운로드 받은 모든 패키지 삭제

$ go clean -modcache

테스트 결과물 캐시 삭제시

$ go clean -testcache

빌드 결과물 캐시 삭제시

$ go clean -cache

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

윈도우, 안드로이드, iOS, 맥 OS용 앱을 한 번에 개발하고 싶어요.

 

요즘은 안드로이드 버전, iOS 버전 개발을 별도로 해야하기 때문에 

둘 다 정직원을 쓰거나 (인건비 비용이 엄청나죠) 

하나는 정직원, 하나는 프리랜서 또는 두 버전 모두 프리랜서를 고용해서 제품 개발을 하는 경우가 있습니다.

앱 개발이 부담이 되어서 하이브리드 앱 버전을 개발하는 사례도 빈번합니다.

 

이러한 문제를 해결해주는 개발툴이 몇 가지가 있습니다.

Cross-X-platform 또는 Multi-platform 개발툴이라고 합니다.

제가 개발 해오던 개발툴 Delphi 7.0부터 주로 개발해 오던 개발 언어 IDE툴이 있습니다.

(Fotran, assembly, C/C++, visual C++, visual Basic, visual C#, PowerBuilder, C++Builder, Delphi, 웹언어는 제외)

자바나 파이썬, golang은 요즘 배우고 있습니다. 주 언어가 아니면 개발 속도가 떨어지기는 합니다만

다양한 언어를 배우다 보니 프레임워크가 갖추어진 팀과 일할 때는 별 무리 없이 일하게 됩니다.

 

이야기가 옆으로 나갔군요.

크로스플랫폼이 되는 네이티브 앱 개발툴 이야기를 해야하죠.

윈도우, 안드로이드, iOS만 되는 것만 해도 대단하다는 생각이었습니다.

하지만, 여기에 iMac, Linux까지 가능하다뇨. 정말 정말 대단하다는 생각입니다.

이 모든 것이 가능한 개발툴이 바로 

엠바카데로의 Rad Studio XE 버전입니다.

이미지 출처: devgear.co.kr

 

개인적으로 이 개발툴을 구입해서 개발을 하기에는 개발툴이 너무 비싸서 포기하고 있었는데요.

그런데 희소식이 날아듭니다. 무료버전이 나왔습니다. 트라이얼이 아닙니다. 무료입니다.

"커뮤니티 에디션은 개인이 비영리 목적으로만 완전 무료"

우선 개인적으로 개발을 계속 해볼 수 있는 기회가 생겨서 무척 기쁩니다.

이미지 출처: embacadero.com

Rad Studio로 개발 비용 절감과 개발기간 단축, 고려해 보시지 않겠습니까?

저라면 해보고 싶습니다.

무료버전 Rad Studio Community Edition 은 아래 사이트로 가서 다운로드 받을 수 있습니다.

devgear.co.kr/archives/products/delphi_ce#qualificationaaa

 

델파이 – 커뮤니티 에디션 | 데브기어

 

devgear.co.kr

 

 

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

if you have following error message, go and download sciter-sdk [http://sciter.com/download/].

"[sciter-x-api.c] Unable to load library: dlopen(sciter-osx-64.dylib, 5): image not found"

And then, click and move to preference > language and framework > go > go modules.

Now, fill it up. environments : "DYLD_LIBRARY_PATH=/설치 경로/sciter-sdk/bin.osx"

intelliJ IDEA 나 vscode를 사용하신다면 환경변수 선언도 해주시기 바랍니다.

$ export "DYLD_LIBRARY_PATH=/설치 경로/sciter-sdk/bin.osx"

사용자의 .bash_profile 에 설정해 주시면 편리하구요.

그렇지 않으면 개발하기 전에 설정해주시고

$ echo $DYLD_LIBRARY_PATH 

로 확인해주세요.

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요

반응형

[apache] HTTP/HTTPS 리다이렉트(Redirect/Rewrite) 하는 방법

 

1. 개요

Apache에서 HTTP/HTTPS 프로토콜 별로 리다이렉트/라라이트 하는 방법.

 

2. 활용

RewriteCond %{HTTPS} on/off 설정을 이용하여 프로토콜 별로 처리할 수 있다.

 

Rewrite를 추가하는 부분에서 SSL 인증서를 사용하고 있다면 [P] 옵션을 사용하기 때문에  (P=Proxy)

SSLProxyEngine On 설정을 추가해줘야 한다.

 

Proxy를 사용하지 않아도 될 경우에는 [P,R,L] -> [R=301,L] 사용

 

ㅁ HTTP를 HTTPS로 리다이렉트 

   <IfModule mod_rewrite.c>

        RewriteEngine On

        RewriteCond %{HTTPS} off

        RewriteRule (.*) https://%{HTTP_HOST}/$1 [P,R,L]

   </IfModule>

 

 

ㅁ  HTTPS를 HTTP로 리다이렉트

 SSLProxyEngine On    => SSL 인증서를 이용하고 있다면 넣어줘야 한다.

   <IfModule mod_rewrite.c>

        RewriteEngine On

        RewriteCond %{HTTPS} on

        RewriteRule (.*) http://%{HTTP_HOST}/$1 [P,R,L]

   </IfModule>

 

 

ㅁ HTTP/HTTPS를 고려하여, 받은 URL 그대로 리다이렉트.

 SSLProxyEngine On  => SSL 인증서를 이용하고 있다면 넣어줘야 한다. 

   <IfModule mod_rewrite.c>

        RewriteEngine On

        RewriteCond %{HTTPS} on

        RewriteRule .* https://%{HTTP_HOST}/$1 [P,R,L]

        RewriteCond %{HTTPS} off

        RewriteRule (.*) http://%{HTTP_HOST}/$1 [P,R,L]

   </IfModule>

 

 

ㅁ 

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%/$1 [L,R=301]

 

1)  RewriteCond %{HTTPS} off

    - HTTP로 접속 된 경우,

 

2) RewriteRule의 [R,L]

[L]은 정의의 마지막 줄(Last)을 의미함. 이 줄 아래의 RewriteRule은 모두 무시. 가장 마지막 행에 씀.

[L]을 쓰지 않아도 동작은 함.

[R]은 리다이렉트 실행함. 

 

 

=============================================================================[apache] http -> https로 리다이렉트 처리

 

ㅁ httpd-vhosts.conf 수정

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 

1. RewriteEngine On

   - RewriteEngine 활성화

 

2. RewriteCond %{HTTPS} off (or !=on)

   - 조건 : HTTPS 가 아니면   

 

3. RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

   - R=301은 301 리디렉션이라는 뜻이고, L은 마지막이라는 뜻입니다.

     L은 반드시 필요한건 아니지만 R=301은 반드시 해줘야 합니다. 저게 빠지면 302 리디렉션이라고 감지합니다.

     (301은 영구적인 이동, 302는 일시적인 이동)

 

ㅁ 유사한 처리 방식

Redirect permanent / https://hanajava.net

 

 

참고 : https://httpd.apache.org/docs/2.4/ko/mod/mod_alias.html 

 

(https://%{HTTP_HOST}/$1 이랑 https://%{HTTP_HOST}%{REQUEST_URI}  둘 다 잘 작동함)

https://%{HTTP_HOST}/$1 (O - 올바른 설정)

https://%{HTTP_HOST}$1 (X - 잘못된 방식) : 이렇게 설정하면 최상위 도메인까지만 되고 그 이하 페이지는 리다이렉트가 안됨.

 

 

 

4. 그 외

- https://(도메인)\.(도메인)/$1 [R=301,L] 이런 방식이 있는데, 이것도 잘 작동합니다.

 

(.*)이 아니라 ^(.*)$라고 되어 있는것도 많은데 별 차이는 없다고 하네요

 

Redirect permanent / https://example.com

 

 

ㅁ NGINX 설정 방법

# Redirect non-https traffic to https

if ($scheme != "https") {

return 301 https://$host$request_uri;

} #

 

[출처] [apache] HTTP/HTTPS 리다이렉트(Redirect/Rewrite) 하는 방법|작성자 하나자바

반응형
Posted by 사용자 SB패밀리

댓글을 달아 주세요