전체 글
-
상속과 다형성 with pyhton코테/그 외 2022. 4. 18. 11:39
상속 - 하나의 클래스가 다른 클래스의 속성과 메서드를 얻는 과정을 말하며 새롭게 형성된 클래스는 자녀 클래스, 자녀 클래스가 파생된 클래스 를 부모 클래스라고 부른다. 다형성 - 부모 class에서 상속받은 같은 이름의 method를 overriding하여 기능을 확장하거나 변경하는 것을 의미 - overriding: super클래스를 상속받은 서브클래스에서 super클래스의 메소드를 같은 이름, 같은 반환값, 같은 인자로 메소드 내의 로직을 새롭게 정의하는 것 class Point: def __init__(self): self.x = int(input('x=?')) self.y = int(input('y=?')) def disp(self): pass class Circle(Point): def __i..
-
RDBMS vs NoSQLCS/데이터베이스 2022. 4. 13. 12:07
관계형 데이터베이스 시스템 vs 비관계형 데이터베이스 시스템 RDBMS pros 관계형 데이터베이스는 데이터를 더 효율적이고 체계적으로 저장하고 관리할 수 있다 미리 저장하는 데이터들의 구조(테이블 스키마)를 정의함으로써 뎅이터의 완전성이 보장된다. 트랜잭션(transaction) 기능을 제공한다. cons 테이블을 미리 정의해야 하므로 테이블 구조 변화 등에 덜 유연하다. 확장이 쉽지 않다. 테이블 구조가 미리 정의되어야 하고 ACID를 보장해야 하다 보니 단순히 서버를 늘리는 것만으로 확장하기가 쉽지 않고 서버의 성능 자체도 높여야 한다 서버를 늘려서 분산 저장하는 것도 쉽지 않다. 주로 스케일 아웃보다는 스케일 업으로 확장해야 한다. NoSQL pros 데이터 구조를 미리 정의하지 않아도 되므로 저..
-
inconsistent use of tabs and spaces in indentationweb/backend 2022. 4. 13. 10:44
Flask프레임워크를 사용하여 API 구현하기 위해 app.py에 아래와 같은 코드를 작성했다. @app.route('/tweet', methods=['POST']) def tweet(): payload = request.json user_id = int(payload['id']) tweet = payload['tweet'] if user_id not in app.users: return '사용자가 존재하지 않습니다.', 400 if len(tweet) > 300: return '300자를 초과했습니다', 400 user_id = int(payload['id']) app.tweets.append({ 'user_id' : user_id, 'tweet' : tweet }) 저장하고 API 콜을 했는데 오류가..
-
macOS shell을 bash에서 ZSH로 바꾸기CS/OS 2022. 4. 11. 16:58
Shell(셸) 터미널 환경에서 운영체제의 커널과 사용자의 유저 스페이스를 이어 주는 인터페이스 역할을 하는 프로그램이다. 인터페이스 역할 외에도 셸 스크립트(Shell Script)라는 셸 전용 프로그래밍 언어를 사용해서 터미널 환경에서 다양한 자동화를 실행할 수 있다. Bash(Bourne-Again Shell) 거의 대부분의 리눅스 기반 운영체제에서 default Shell로 설치된다. ZSH(Z shell) 'Oh My Zsh(설정 관리 툴)로 인해 인기를 얻고 있는 shell이다. 기본적인 기능은 Bash와 큰 차이는 없으나 여러 다양한 편리한 기능을 제공한다. Oh My Zsh이라는 ZSH 설정 매니저 플러그인을 통해서 편리하게 Shell을 설정할 수 있다. Bash -> ZSH 1. ZSH을..
-
'authorizationStatus()' was deprecated in iOS 14.0ios/개발하다가 2022. 4. 9. 21:48
접근 권한 사용자의 위치 정보 서비스에 접근하려면 다음과 같이 작성하면 된다. switch CLLocationManager.authorizationStatus() { case .notDetermined: // blah blah case .restricted: // blah blah case .authorizedAlways: // blah blah case .authorizedWhenInUse: // blah blah @unknown default: break } 하지만 'authorizationStatus()' was deprecated in iOS 14.0 라는 경고가 뜨는데 이 경고는 iOS 14부터 authorizationStatus를 사용하지 않아 수 없어 위 코드가 작동이 안된다는 것을 말한다...
-
Concurrency & Threadingios/Etc 2022. 4. 8. 14:37
모든 작업들은 스레드라고 불리는 곳에서 실행되고 있다. 스레드는 고속도로와 같다고 생각하면 될 것 같다. 차선들은 스레드이고, 이동 중인 차량은 실행되는 작업이다. 1차선은 비교적 깔끔하고 빠르게 이동해야 하는 곳이고 나머지 차선들은 1차선에 비해 그렇지 않다. 1차선은 메인 스레드이고 나머지 차선은 백그라운드 스레드라고 생각하면 될 것 같다. 메인 스레드를 빠르고 깨끗하게 유지해야 하는 이유는 UI가 수행되는 곳이기 때문이다. 만약 메인 스레드가 시간 집약적인 작업으로 막히게 되면 사용자는 앱이 제대로 동작하지 않다고 생각하게 될 것이다. 따라서 우리는 무거운 작업들을 백드라운 스레드에서 수행해서 메인 스레드를 여유롭게 두어 UI가 응답할 수 있도록 해야 한다. 이 조건들을 만족하기 위해서 메인 스레드..