[CS] 동시성 프로그래밍 vs 비동기 프로그래밍
·
CS
비동기 프로그래밍과 동시성 프로그래밍.. 말로만 들으면 말장난 마냥 두 개가 뭐가 다르지? 둘 다 여러 일을 한 번에 처리하는거 아닌가? 라는 생각이 들었다.. 이 애매모호한 개념을 확실히 하기 위해 정리를 해보겠다. 둘의 차이점을 제대로 이해하기 위해서 비동기, 동시 각각의 단어의 반대말을 찾아보았다. (보통 이렇게 비슷한 단어가 있으면 각각의 반대말을 찾아서 비교하는 것이 도움이 될 때가 많다.)먼저 비동기의 반대말을 알아보자. (찾아봤는데 크게 와닿는 설명이 잘 없어서 내가 이해한대로 작성해보고자 한다..)비동기(Asynchronous)의 반대말은 동기(Synchronous)이다.비동기(Asynchronous)적이라는 것은 하나의 작업을 실행시키고 해당 작업이 끝날때까지 기다리지 않고 바로 다음 작..
[회고] boostcamp 챌린지 3주차 회고
·
회고
벌써 3주 차 회고라니.. 누가 내 시간 훔쳐갔어.(범인은 챌린지..) 1, 2주차랑 동일하게 회고에 들어가기 전 이번 한 주도 잘 지낸 나에게 칭찬의 박수를..👏👏먼저 이번 한 주를 돌아보며 내가 잘 한 점에 대해 말해보고자 한다. 잘 한 점이라기보단 만족했던 점이라고 말하는 게 더 적합할 듯싶다.. 이번주를 보내면서 가장 만족했던 점은 미션을 즐겼다는 점이다 ! 이게 무슨 소린가 싶을 수도 있는데.. 정말 말 그대로이다. 1, 2주 차때도 막 미션이 하기 싫고 그런 느낌은 없었지만 하면서 즐기고 있다는 생각은 받지 못했었던 것 같다. 근데 이번 주차때에는 뭔가.. 첫 번째 미션을 할 땐 정말 '몰입'해서 미션을 수행하였고, 그 과정에서 굉장히 뿌듯하기도 했다. 물론.. 구현도 다 못했고.. 설계도..
[회고] boostcamp 챌린지 2주차 회고
·
회고
오왕 벌써 챌린지 2주차가 끝났다 .ᐟ.ᐟ 🥳 👏 🥳 👏 🥳 👏 진지한 회고에 들어가기 전.. 2주차도 무사히 잘 마친 나 자신에게 잘했단 칭찬 한 번하고 시작하겠다 🍀 2주차 회고도 1주차때 했던 KPT 회고 방법을 사용해서 회고해 보는 시간을 가져보려고 한다. (뭔가 KPT회고 굉장히 깔끔하고 간결해서 나랑 잘 맞는 듯싶다. KPT 회고 방법 알려주신 8기 수료생님 감사합니당🙇🏻‍♀️) 일단 2주차를 되돌아보며 내가 잘 한 점에 대해 생각해 보았고 가장 먼저 떠오른 점은 동료 피드백이었다 ! 정말.. 1주차에 비하면 거의 다른 사람이 되었나 싶을 정도로 많이 발전한 것 같다. 저번주 회고를 하면서 가장 아쉬웠고 또 고치고 싶던 부분이었기 때문인지 이번주에는 정말 열과 성을 다해서 피드..
[회고] boostcamp 챌린지 1주차 회고
·
회고
네부캠 챌린지 1주차가 마무리되었다🫠1주차를 보내고 난 후 회고를 작성하려 하는데, 수료생분께서 추천해주신 KPT 회고 방법을 사용해보고자한다. 한 주를 돌아보며 나의 챌린지 과정을 생각해보았을 때 정말 힘들고 고된 매일매일의 연속이었음에도 끝까지 포기하지 않고 매일매일 최선을 다해 미션을 해결해 나간 나에게 칭찬의 박수를 보내고 싶다 ㅎㅎ👏👏👏 하지만 첫 주이기도 하고 미숙한 부분이 많이 있어서 내가 잘 했던것 보다는 아쉬웠던 점, 개선해야할 점이 훨씬 많이 남는 것 같다.  먼저, 현재 만족하고 있는, 계속 이어갔으면 하는 부분에 대한 것들을 생각해보았다. 내가 이번 한 주 동안 챌린지를 하면서 스스로 만족했던 부분이 있는가 했을 때, 가장 뿌듯했던 점은 '기록'이다. 챌린지에 들어오기 전 베..
[CS - iOS] 프로세스와 스레드 관리
·
CS
iOS에서의 프로세스와 스레드 관리는 애플리케이션의 성능과 효율성을 크게 좌우한다.프로세스 관리iOS는 단일 프로세스 모델을 사용한다.따라서, 애플리케이션의 프로세스 관리는 기본적으로 앱의 생명주기와 관련이 깊다.앱이 시작되면, 시스템은 앱의 메인 스레드를 생성하고, 이 스레드는 앱의 주요 이벤트 루프를 실행하게 된다.앱이 종료되면, 시스템은 해당 프로세스를 종료한다.스레드 관리스레드는 애플리케이션 내에서 동시에 열 작업을 수행할 수 있게 해준다.iOS에서는 NSThread 클래스를 사용하여 스레드를 관리할 수 있다.스레드는 애플리케이션의 메인 스레드와 별개로 실행되며, 메인 스레드가 UI 업데이트를 처리하는 동안 백그라운드 작업을 수행할 수 있다.스레드 생성 및 관리메인 스레드: 앱의 시작점이며, UI..
반복문 for문 주의할 점
·
Python
망할 파이썬에서는 반복문 for문 돌 때 변수 변환이 안된다....for i in range(10): print(i, end = " ") if i == 5: i += 1'''결과값 : 0 1 2 3 4 5 6 7 8 9 '''이건 몰랐지...암튼 중간에 i 값을 변경하고 싶다면 while문을 쓰도록하자
소수 판별
·
코테/알고리즘
소수를 판별하는 알고리즘을 짜라고 한다면 누구나 반복문을 사용하여 모든 수를 나눠보는 것을 생각할 것이다. 나도 그걸 제일 먼저 생각해냈으나 너무나 당연하게도 시간복잡도 측면에서 아웃이다.. 하지만 완전히 틀린 이야기는 아니다. 먼저 소수 판별하는 방법을 생각해보자. 소수 판별 알고리즘 반복문을 사용하여 하나하나 나눠봐야하는 것을 사실이다. 하지만 굳이 1 부터 n까지 모두 나눠볼 필요는 없다. 힌트는 제곱근이다. 16라는 숫자의 약수를 생각해보자. [1, 2, 4, 8, 16] 4를 기준으로 양 옆을 곱한 수가 해당 숫자가 되는 것을 알 수 있다. (2 X 8) 과 (8 X 2) 이런식으로 대칭이 된다는 것이다 여기서 4라는 숫자는 16의 제곱근이다. 즉, 제곱근 이상의 숫자는 굳이 또 나눠볼 필요가 ..
퀵 정렬 (Quick sort)
·
코테/알고리즘
퀵 정렬 이란? 기준값(pivot)을 잡고 데이터를 2개의 집합으로 쪼개어가며 정렬하는 방법이다. 시간복잡도는 평균적으로 O(NlogN)이며 최악의 경우 O(N^2)가 된다. 퀵 정렬 과정 pivot 설정(사용자 마음이며 위 그림의 경우 맨 오르쪽을 pivot으로 잡음) pivot을 기준으로 다음 과정을 거쳐 2개의 집합으로 분할 start 포인터가 가르키는 데이터가 pivot보다 작을 경우 start 포인터 오른쪽으로 이동, 아닌 경우 멈춤 end 포인터가 가르키는 데이터가 pivot 보다 클 경우 end 포인터 왼쪽으로 이동, 아닌 경우 멈춤 start 포인터와 end 포인터 모두 멈춘 경우 두 데이터 swap start 포인터와 end 포인터가 만날 때 까지 위 과정 반복 start 포인터와 end..