반응형

전체 647

javascript setter/getter naming convention

기본적인 자바스크립트 객체의 속성에 접근은 아무런 제한없이 이루어지면 속성의 변환도 자유롭다. 이런 자유로운 접근은 간혹 잘못된 입력을하는 등의 실수를 초래한다. 어떤 객체의 속성에 넣을 값의 범위를 알거나 제한할 필요가 있다면 속성에 직접 접근은 제한하여 최대한 안전하게 속성값을 사용하도록 만드는 것이 중요한다. 이런 역할을 하는 것이 setter/getter이다. setter/getter는 대부분의 언어들이 문법적으로 지원하며 사용방법도 비슷한다. 이렇게 setter/getter를 사용하면 속성을 비교적 안전하게 사용하도록 하고 좀 더 정교한 추가적인 처리를 할 수 있다. 이 글에서는 setter/getter를 사용하는 핵심을 객체 리터럴 과 클래스 방식 두가지로 설명한다. 먼저 property를 가..

리눅스(Rocky Linux)에서 rust 설치 및 VSCode 설정

리눅스 설치지 과정이지만 윈도우 설치에 대한 내용도 같이 있습니다. 러스트의 설치는 간단하다. 공식문서 참고 $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh $ source ~/.cargo/env 설치를 마친 후 설치 확인 $ rustc --version rustc 1.60.0 (7737e0b5c 2022-04-04) 문서를 보면 일부 러스트 패키지가 C코드에 의존적이기 때문에 링커를 실행할 수 없다는 에러가 발생할 수 있다고 한다. 따라서 C컴파일 환경을 구성하는 것이 좋다. 이 부분은 windows 사용자와 linux 사용자의 구성방법이 다를 수 있다. C 개발환경 설치 windows 사용자 https://visualstudio.mi..

리눅스에서 USB가 안보일 때(인식이 안될 때).

얼마전 USB 부팅 디스크를 만들다가 USB가 시스템에서 보이지 않는 현상이 일어났다. 분명 나의 실수일 듯 한데 원인은 모르겠고 GUI 환경에서는 보이지 않았으나 다음 명령을 치면 콘솔에서는 장치가 확인이 되었다. $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 7.3T 0 disk └─pgdata_sub-pgdata_sub 253:0 0 7.3T 0 lvm sdb 8:16 1 30.2G 0 disk nvme0n1 259:0 0 953.9G 0 disk ├─nvme0n1p1 259:1 0 600M 0 part /boot/efi ├─nvme0n1p2 259:2 0 1G 0 part /boot ├─nvme0n1p3 259:3 0 15.7G 0 part..

Linux 2022.04.09

리눅스에 유니티3D 설치

**유니티 허브**라는 것을 설치하여 유니티 설치 및 프로젝트를 관리할 수 있다. 문서는 https://docs.unity3d.com/kr/2020.3/Manual/GettingStartedInstallingHub.html Unity 허브 설치 - Unity 매뉴얼 Unity Hub는 모든 Unity 프로젝트 및 설치를 관리할 수 있는 관리 툴입니다. 허브를 이용하여 여러 개의 Unity 에디터 설치와 관련 컴포넌트를 관리하고, 새 프로젝트를 생성하고, 기존 프로젝트를 열 docs.unity3d.com 에 자세히 나와 있다 유니티 허브를 실행하면 라이센스를 등록해야하므로 유니티에 가입을 해야한다. 가입 후 유니티 허브에서 로그인을 눌러 가입 또는 로그인을 할 수 있다. - 로그인을 하고 오늘쪽 위 설정(..

게임 2022.04.08

파이썬 강좌 - python abc 추상 클래스

이 강의는 python3 문법입니다. 추상클래스라는 용어는 C++의 추상클래스와 비슷하게 이해할 수 있다. 자바(java)라면 interface라 볼 수 있다. C++이나 JAVA를 몰라도 상관은 없다. 쉽게 말해 추상클래스는 메소드의 구체적인 구현이 없는 클래스를 말한다. 이런 클래스를 왜 만들까 한번 10초만 고민해보자. 추상클래스의 목적은 일종의 틀을 제공해주는 역할을 한다. 이 틀은 추상클래스를 상속하는 클래스들에게 특정 메소드의 구현을 강제하는 효과가 있다. 앞서 말한 C++의 추상클래스라면 메소드를 _순수 가상함수_라는 형식으로 정의하여 이를 상속하는 클래스들에게 순수 가상함수를 강제구현하도록 하는 지시를 하는 것이다. 자바의 경우는 interface가 같은 역할을 한다. 우선 본론에 들어가기..

Rocky linux에서 Ndivia 드라이버 및 cuda 설치

CUDA 설치는 선택사항입니다. CUDA는 GPU를 사용한 병렬처리, 예를들어 텐서플로우에서 병렬처리 사용 등이 아니라면 설치안해도 됩니다. 설치하기 EPEL 패키지 저장소 추가하기 - epel은 추가 패키지 저장소를 뜻한다. $ sudo dnf install epel-release Ndivia driver 저장소를 추가하기 $ sudo dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo kernel devel과 header를 설치 - 그래픽 드라이버를 설치하기 위해서는 kernel devel과 header가 필요하기 때문에 설치합니다. $ sudo ..

Linux 2022.04.06

sql 쿼리 Join시 카테시안 곱 주의(with sqlAlchemy)

보통 JOIN 시에 조건을 주지 않았을 때 발생한다고 한다. 상식적으로 생각해봐도 JOIN 조건이 없다면 기준이 되는 테이블(Outer Table)과 대상 테이블(Inner Table) 간에 관계가 만들어지지 않는다. postgresql 쿼리에서 JOIN 문이 ON 조건없이 조인을 할 수 없으며, 위 내용의 조건이란 다음과 같은 쿼리를 의미한다. 조건없는 조인SECLECT * FROM Table1, Table2; 조건있는 조인SELECT * FROM Table1, Table2 WHERE TABLE1.id = TABLE2.id; 위 예의 조건없는 조인과 같이 관계(WHERE)가 만들어지지 않은 채로 JOIN을 하게 되면 Error가 발생하지 않고 양 테이블의 row간에 대카테시안 곱의 방식의 결합이 일어난..

react-native-reanimated 에러관련 기록

react-navigation/drawer 6.1.6 를 사용할 때 react-native-reanimated 2.x.x 을 설치하면 warning 메세지가 뜬다. 2.x.x 버전 사용을 위해 추가 설정을 하라는 메세지다. 공식페이지 에 가보면 버전별 설정 방법이 나와있으면 그렇게 어렵지 않다. 2.x.x 번대를 설치하고 drawer를 잘 구성하고 debug 모드로 테스트까지 잘 끝났다고 방심하면 안된다. 우리를 release 버전이 제대로 돌아가는지도 테스트해야한다. react-native가 참 개발이 좋게 되어 있지만 이렇게 release 모드에서 앱이 실행시 런타임에러가 나면서 앱이 종료되는 경우가 많이 생긴다. 그래서 라이브러리를 설치한 후에는 반드시 release 모드로 제대로 앱이 빌드되는지 ..

sqlAlchemy, Foreign Key, relationship, remote_side 정리

문서가 너무 방대해서 다 이해하지 못한채로 대략 정리한다. sqlAlchemy는 컬럼에 Foreign Key를 설정한 후 orm을 위한 관계 설정을 relation 함수로 한다. relation 함수는 기본적으로 Foreign Key는 한개로 가정하므로 Foreign Key 설정된 컬럼을 지정할 필요가 없다. 그러나 테이블 내에서 Foreign Key를 2개이상 사용할 경우는 지정해야한다. 지정하는 방법은 relation 함수에서 primaryjoin 설정 또는 foreign_keys 를 설정하는 방법인 듯 하다.참조, 2개 이상의 Foreign key remote_side는 자기참조 관계에서 primary key 지정에 사용되는 것 같다. 지정은 반드시 "자신의모델(클래스명).primaykey컬럼" 을..

react-native release 모드로 배포시 주의할 점(http 안되는 문제).

개발모드에서는 잘 되던 앱이 react-native에서 release 모드로 테스트를 하거나 build를 한 후 먹통이 되는 경우가 있다. 가장 흔히 겪는 문제는 api 호출이 제대로 안되는 경우인데, 원인은 http 프로토콜을 사용하기 때문이다. 기본적으로 react-native는 release 모드에서 http의 호출을 막는다. 따라서 https를 사용하도록 설정해야하는데, 여의치 않을 때 다음과 같은 설정으로 http 모드를 허용해주는 방법을 사용한다. android/app/src/main/AndroidManifest.xml 에서 ... ... android:usesCleartextTraffic="true" 추가

반응형