전체 글
-
[iOS/SwiftUI] NavigationStack을 왜 사용하는가?Apple🍎/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란 무엇인가 & 메모리 누수Apple🍎/iOS 2024. 8. 23. 19:08
Swift - ARC 한글문서를 참고해서 정리한 문서입니다.2024.08.23 - [iOS] 메모리 구조앞의 글에서 "하지만 ARC도 강한 참조면 메모리 해제 못한다구?!" 에 이어서 ARC를 알아보자!ARC(Automatic Referecne Counting)란?객체의 생명주기와 관계를 모델링한다.이게 뭔 소리야..? 싶겠지만 앞에서 본 heap영역에 올라간 객체(클래스)의 생명주기, 관계를 모델링 해주는 역할이라고 생각하면 어떨까?대부분 Swift의 메모리 관리는 생각할 필요 없이, ARC가 알아서 클래스 인스턴스로 사용된 메모리를 할당/해제 해준다.(유의: 참조 카운팅은 클래스의 인스턴스에만 적용! 구조체,열거형은 참조 타입이 아닌 값 타입이므로 참조로 저장되거나 전달되지 않는다.)ARC의 작동 원..
-
[iOS/OS] 메모리 구조Apple🍎/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 ..
-
[네이버 부스트캠프 9기 챌린지] 최종 회고Today I Learned 2024. 8. 12. 22:28
🧚🏼 느낀점어느덧 4주가 지나버렸다..!끝나지 않을 것 같이 매일이 고되더니,,, 막상 끝나니 시원섭섭하다ㅎㅎ.. 원래 모든 활동이 이런 것이겠지만, 시간이 지날수록 너무너무 좋은 환경이라는 생각에 "이 시간을 더 잘 활용할 순 없었을까?" 라는 생각에 아쉬움이 든다.편입을 하고, 컴퓨터 전공을 했지만 코로나학기에 학교 수업에 따라가기 급급해 제대로 된 과제와 학습을 체득했는지는 의문이 들었던 상태였다. 어느덧 졸업을 하고 취준을 해야하는데... 말로만 듣던 취준은 어떻게 해야할지 솔직히 막막했다ㅜ취준하던 선배들을 보고 다니던 것도 아니고, 자소서랑 면접을 봐야한다는데 무작정 그렇게 면접용 CS를 공부하기 시작했다. 다 배웠던 내용인데 읽어보면 이해가 가는데... 왜 자꾸 까먹고 뭔가 겉도는 느낌이 ..