전체 글
-
누적합Algorithm PS👩🏻💻/개념 2024. 9. 16. 12:27
누적합은, 보통 이중 반복문(배열 문제)으로 시간 초과가 될때 구간합을 O(1)로 줄여주는 경우가 많아서, 종종 쓰인다. 누적합 사용 유형구간 합 구하기: 배열에서 여러 번 특정 범위의 합을 구하는 경우, 배열의 누적합을 미리 계산해 두면 각 구간의 합을 빠르게 구할 수 있습니다.예시: 주어진 배열에서 여러 번 "i번째 원소부터 j번째 원소까지의 합"을 구하는 문제.최소/최대 구간 합: 배열에서 특정 길이의 구간 중 가장 큰 합 또는 가장 작은 합을 구하는 문제에서, 누적합을 활용하면 구간 합을 효율적으로 계산할 수 있습니다.예시: "배열의 부분 배열 중 합이 가장 큰 구간을 찾아라"와 같은 문제.차이 배열: 누적합을 활용하여 배열에서 구간별로 값을 추가하거나 뺄 때, 전체 배열을 매번 갱신하지 않고도 ..
-
[iOS/SwiftUI] NavigationStack을 왜 사용하는가?iOS🍎/iOS 2024. 9. 4. 01:48
NavigationStack으로 link를 타면서 화면 전환을 하다가,,,화면 전환을 하면서 action을 취해야하는 순간이 있었는데 이를 찾다가 .navigationDestination을 봤고....Router 구조체를 만들어서 navigation을 정리하는 것을 보며NavigationStack은 도대체 왜 나타나게 된건지,어떻게 제대로 사용하는 건지를 찾아보게 됐다.NavigationStack & Link로 사용하면 안되는건가?원래는 아래와 같이 NavigationLink만 사용해도, 원하는 화면으로 이동 가능하다.import SwiftUIstruct ContentView: View { var body: some View { NavigationStack { VSt..
-
[iOS] ARC란 무엇인가 & 메모리 누수iOS🍎/iOS 2024. 8. 23. 19:08
Swift - ARC 한글문서를 참고해서 정리한 문서입니다.2024.08.23 - [iOS] 메모리 구조앞의 글에서 "하지만 ARC도 강한 참조면 메모리 해제 못한다구?!" 에 이어서 ARC를 알아보자!ARC(Automatic Referecne Counting)란?객체의 생명주기와 관계를 모델링한다.이게 뭔 소리야..? 싶겠지만 앞에서 본 heap영역에 올라간 객체(클래스)의 생명주기, 관계를 모델링 해주는 역할이라고 생각하면 어떨까?대부분 Swift의 메모리 관리는 생각할 필요 없이, ARC가 알아서 클래스 인스턴스로 사용된 메모리를 할당/해제 해준다.(유의: 참조 카운팅은 클래스의 인스턴스에만 적용! 구조체,열거형은 참조 타입이 아닌 값 타입이므로 참조로 저장되거나 전달되지 않는다.)ARC의 작동 원..
-
[iOS/OS] 메모리 구조iOS🍎/iOS 2024. 8. 23. 17:46
메모리운영체제가 위처럼 보조기억장치(HDD)에서 프로그램 정보를, 메모리 program code 영역에 로드한다.이후 CPU는 프로그램 코드에 있는 메모리를 관리하면서 명령어를 실행한다.위의 RAM(흔히 메모리) 안에는 코드, 데이터, 스택, 힙 이렇게 4가지 영역으로 나뉜다.운영체제는 RAM에서 각각의 영역을, 프로그램이 실행될 때 얼만큼 프로그램에 할당할 것인지를 결정한다.운영체제는 각 프로그램을 “프로세스”로 관리한다.각 프로세스에 대해 가상 메모리 공간을 제공하고 이 공간은 해당 프로세스만이 사용할 수 있는 고유한 메모리 주소 범위를 가진다.가상 메모리각 프로그램이 자신만의 독립된 메모리 공간(가상 주소 공간)을 가지고 있다고 느끼게 하는 것이다. 실제로는 RAM에 프로그램이 필요한 데이터, 코드..
-
FastAPI로 GET, POST, DELETE 실행해보기Today I Learned 2024. 8. 22. 14:09
사전 실행데이터베이스 생성 했는지 확인mysql.server start로 mysql 실행했는지 확인main.py가 있는 곳에서 uvicorn main:app --reload --host 0.0.0.0 실행했는지 확인구현 과정GET 함수@app.get("/users/", response_model=list[User])async def get_all_users(): connection = get_db_connection() try: with connection.cursor() as cursor: # 모든 사용자 조회 sql = "SELECT * FROM users" cursor.execute(sql) use..
-
FastAPI에 pymysql(DB) 연결하기Today I Learned 2024. 8. 21. 20:00
Q: 앞에서 무심코 사용한 uvicorn에 대한 이해가 필요하다.fast api는 GIL문제로 멀티스레딩으로 제대로 된 다중처리가 불가능 하다고 한다..?pymysql 에 연결하려면, 우선 Mysql을 설치해야한다.pymysql은 MySQL 서버에 연결하기 위한 클라이언트 라이브러리일 뿐이기에 MySQL 서버가 실행중이지 않으면, pymysql도 실행할 수 없다.1. MySQL 설치그러므로 먼저 MySQL을 설치한다.brew install mysql후에 밑에 참고 링크를 통해 mysql 설치 & 초기 설정을 해주었다!2. MySQL 데이터베이스 생성미리 mysql로 데이터베이스를 생성하고,pymysql 에서는 미리 생성된 데이터베이스에 연결 -> 데이터 CRUD 가 가능하게 된다.create databa..
-
FastAPI 구현해보기Today I Learned 2024. 8. 21. 02:14
FastAPI 란?HTTP API를 쉽게 만들기 위해 사용되는 python으로 작성되는 웹 프레임워크이다.쉽게 말하자면, 우리가 사용하던 Spotify api, 공공데이터 api 모두 백엔드 단의 서버에 데이터를 요청해서 쉽게 받을 수 있도록 알려주는 명세서 같은 것이다.(API 정의 자체는, 어플리케이션 간의 상호작용을 할 수 있도록 방법이나 규칙을 정의한 것... 이라고 나와있지만 요근래 우리는 백-프론트의 상호작용 용도로 많이 쓰인다)FastAPI를 사용하면 우리가 여러 데이터를 가져올 때 사용하는 Restful API 형태로 쉽게 만들 수 있고,클라이언트-서버 간의 통신을 빠르게 접해볼 수 있게 해준다.구현 과정FastAPI python으로 작성## main.pyfrom typing import ..