일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- V20
- iphone
- wwdc 2020
- 맥
- mysql
- It
- Fan Pro 3세대
- 27UP850N
- 타임머신
- Mac
- LG V20
- iOS 14
- TimeMachine
- 애플
- 맥북
- AWS
- 휴대용 선풍기
- EC2
- 루메나
- 오난코리아
- 웹 프로그래밍
- 코딩
- 프론트
- macbook
- html
- 아이폰12
- 샤오미
- 맥북프로
- LUMENA
- Iphone 12
- Today
- Total
목록개발&코딩 (23)
이것저것 적어보는 블로그
기존에 사용하던 AWS의 Free Tier가 만료되면서 월 $20에 달하는 금액이 나오고 있었다…무료로 사용 가능한 클라우드를 찾다가 구글의 GCP와 오라클 클라우드가 평생 무료라길래 어디로 옮길까 고민하던 중 GCP로 이동해보기로 결정이전을 하려면 DB 및 프로젝트를 백업 후 옮겨야한다. git을 이용하여 옮겨도 되지만 ssh로 접속해 백업 파일을 만들고, 해당 파일들을 새 서버에 넣을 계획이다. DB의 백업은 간단하다mysqldump -u [사용자 계정] -p [패스워드] [원본 데이터베이스명] > [생성할 백업 DB명].sql 반대로 복원의 경우는 >의 방향만 반대로 돌린 mysql -u [사용자 계정] -p [패스워드] [복원할 DB] 테이블만 백업을 할거라면 다음의 명령어를 이용하면 된다mys..
클라우드 사용자가 자체적으로 서버나 저장장치를 구축할 필요 없이 인터넷을 통해 언제 어디서든지 원하는 때 원하는 만큼 접근 가능한 데이터와 컴퓨팅 자원의 모음 대여를 해서 사용하는 방식이라 개개인의 사용량에 따라 비용을 유연하게 조정할 수 있는 장점이 있다 사용자는 자신의 데이터를 클라우드에 저장하고 필요할 때 언제든지 접근하고 처리할 수 있다 클라우드 서비스의 종류는 아래와 같이 크게 3가지로 나눌 수 있다. Infrastructure as a Service(IaaS) : 인프라형 서비스, 하드웨어 등의 물리적인 자원을 제공하는 서비스 고객에게 서버, 네트워크, OS, 스토리지를 가상화하여 제공하고 관리한다. 물리적인 자산을 완벽하게 가상화하여 제공하기 때문에 서버 사양의 변경 등 물리적 자산의 수정이..
uWSGI에 이어서 nginx를 연결할 차례다. ”Client ↔ Nginx ↔ uWSGI ↔ Django”의 구조가 된다. AWS EC2 인스턴스에서 django의 runserver로 실행시켜서 배포하면 되는 거 아니냐?? 싶겠지만 (나도 그렇게 생각했었고) runserver는 "개발 및 테스트"가 목적이라고 한다. 공식 도큐먼트를 봐도 보안이나 성능 테스트를 거치지 않았으므로 배포용으로 사용하지 말라고 되어있고 그래서 대부분 nginx + uwsgi + django 조합으로 구성을 한다. 우리가 사용할 nginx는 대표적인 웹 서버 애플리케이션(WAS)으로 사용자는 웹 브라우저를 통해 웹서버로 HTTP 요청을 하고 nginx나 Apache 같은 웹 서버가 정적페이지를 담당하게 된다. nginx는 동적..
EC2에 git레포 클론해서 가져오는 건 했다고 가정하고, 프로젝트를 웹 서버와 이어주는 작업을 해야 한다. Django는 웹 서버와 직접적으로 통신할 수 없기 때문에 이를 중간에서 이어 줄 python 프레임워크인 WSGI(Web Server Gateway Interface) server를 설치해 주어야 한다. 먼저, 가상환경을 만들기 전에 python3-venv를 설치 sudo apt-get install python3-venv 가상환경의 위치는 현재 사용하고 있는 유저인 ubuntu의 홈 폴더에 만들었다. cd ~ python3 -m venv myvenv 그리고 만든 가상환경을 활성화한다. 활성화가 되면 사용자 이름 앞에 (가상환경 폴더명)이 붙는다. source myvenv/bin/activate..
MySQL 설치도 하고 세팅도 끝냈으니 DBMS를 프로젝트에 연결해야 한다. 그런데 EC2에서 pip를 이용해 mysqlclient를 설치하려니 계속 에러가 발생했다. 이 문제는 pkg-config 패키지가 설치되지 않아서 발생하는 문제다. 따라서 패키지 설치를 진행! sudo apt-get update sudo apt-get install pkg-config 그리고 다시 pip install mysqlclient 를 입력하면 또 에러가 발생한다. 에러가 발생하는 두 번째 이유는 mysqlclient 모듈을 설치하기 위한 의존성 패키지가 없어서 그렇다. sudo apt-get install libmysqlclient-dev 이후 다시 모듈 설치를 진행하면 정상적으로 된다. 만약 설치하는데 누런색 경고문이..
AWS 프리티어의 경우 사진과 같이 사양이 매우 제한적이다. 특히 메모리!! mysql을 설치하고 DB에 데이터를 집어넣고 어느 정도 세팅을 끝내고 테스트를 하는데 서버가 자꾸 뻗는 현상이 발생했다. 그럴 때마다 AWS 콘솔 가서 인스턴스 중지 될 때까지 기다렸다가 다시 켜주고… 굉장히 번거로웠다. 쿼리문 하나 잘못 날려서 대량 검색하면 뻗고 뭐 하다 뻗고… 부팅 직후인데도 메모리 사용량이 80%에 달해서 htop으로 확인해 보니 mysql이 어마어마하게 잡아먹고 있었다. 안 그래도 1기가라는 적은 메모리인데 절반을 잡아먹다니;; 이럴 때 필요한 구원투수가 바로 Memory Swap이다. 디스크의 공간을 가상의 메모리로 사용하여 메모리가 부족한 걸 해결하는 방법이다. 1. 스왑 파일 설정 dd 명령을 사..
EC2에 mysql을 설치해서 이용하려니 설치부터 초기 설정까지 문제 투성이라 열심히 찾아가며 세팅을 했었다. 언젠간 또 찾아볼 수도 있고 같은 문제로 검색을 하는 사람들에게 도움이 되었으면 해서 글을 남긴다. EC2 인스턴스를 생성 후 터미널을 이용해 SSH로 EC2서버와 연결해도 되고 웹에서 연결 버튼을 눌러 터미널을 띄우는 방법도 있다. 어떤 것이던 상관없으니 편한 걸로 하면 된다. sudo apt-get update 명령을 통해 패키지 정보를 업데이트 sudo apt-get dist-upgrade 로 패키지 의존성 검사 및 업데이트도 진행한다. sudo apt-get install mysql-server 를 입력해서 mysql을 설치 후 실행하면 아래 사진처럼 나온다. root계정에 대한 비밀번호..
Java에서 문자열을 다루는 대표적인 클래스로 String, StringBuilder, StringBuffer가 있다. 연산이 많지 않거나, 단일스레드, 단순한 사용 시엔 세 가지 클래스 어떤 걸 사용하여도 큰 문제가 없는데 반복적인 연산 횟수가 증가하거나, 멀티스레드, Race Condition 등의 상황이 빈번히 발생하면 클래스의 특성에 맞게 사용하는 것이 좋다. 1) String String은 다른 두 클래스와는 다르게 Immutable(불변)이다. String 객체는 한번 생성되면 할당된 메모리 공간의 변화가 없다. + 연산과 concat 메서드의 동작 방식을 보면 '기존 문자열 + 새 문자열'의 방식이 아닌, 새로운 String 객체를 생성한 후 새 String 객체에 연결된 문자열을 저장하고 ..
Swift를 공부하면서 매번 제대로 정리가 안되는 개념이 있는데 바로 옵셔널(Optional)이다. 그래서 이참에 포스팅하면서 정리해두려고 한다. 옵셔널이란 변수의 값이 있을 수도 있고 없을 수도 있다는걸 나타낸다. 불편해보이는 Optional 왜 사용할까 싶은데 Objective-C에 아직 nil타입이 존재하며, 프로젝트에서 obj-c와 swift를 혼용해서 사용할 수 있어 obj-c와 상호운용성을 위해 사용한다고 한다. 옵셔널이 필요한 이유 -> nil의 가능성을 명시적으로 표현 Type casting, nil value 체크 등에 있어서 중요한 역할 nil 가능성을 문서화 하지 않아도 코드만으로 충분히 표현가능 문서 / 주석 작성 시간을 절약 전달 받은 값이 옵셔널이 아니라면 nil체크를 하지 않더..
iOS App을 개발하다보면 Strong과 Weak이란 키워드가 쓰이는걸 볼 수 있다. 이 두가지는 메모리 회수 정책과 관련이 있다. 먼저 메모리 관리인 ARC에 대해 알아보면 ARC (Automatic Reference Counting) 자동으로 메모리를 관리해주는 방식을 말한다. 컴파일 시점에 동작하며 참조 카운팅이 0이 될때만 메모리에서 해제한다. 클래스의 새로운 인스턴스를 만들 때 ARC는 인스턴스의 정보를 저장하기 위해 메모리를 할당하며 ARC는 인스턴스가 더 이상 사용되지 (참조 카운팅 0) 않는다고 판단하면 메모리를 해제한다. 레퍼런스 프로퍼티에 인스턴스를 할당하면 ARC는 참조되는 프로퍼티의 갯수를 카운팅하여 참조하는 모든 변수가 인스턴스를 해제하기 전에 ARC는 인스턴스를 메모리에서 해제..