[네이버 부스트캠프] 멤버십 1 ~ 4주차 회고록
·
✍🏻 회고록
개요부스트캠프에는 베이직 → 챌린지 → 멤버십, 총 3가지 단계가 있다.지난 글에서 2단계 과정인 챌린지를 수료한 내용에 대해 담았는데,현재 나는 챌린지를 수료하고, 멤버십 입과에 성공하여 최종 3단계를 진행하고 있다. 오늘은 네이버 커넥트재단의 부스트캠프 멤버십 과정을 시작한 지 벌써 4주차가 끝나는 금요일 밤이다.지난 1 ~ 4주차 간의 과정을 담아보겠다. 학습 내용확장성을 생각하며 프로그래밍하기미션은 챌린지와 달리 하루 단위가 아닌, 2주 단위이다.깃허브를 통해 1일 1PR을 보내고 팀원들의 PR을 보며 피드백을 하는 시간을 가진다. 매주 월요일마다 1주일에 대한 미션을 공개하기 때문에미션을 시작하는 첫 주에는 다음 주에 어떤 미션이 나올지 모르므로 확장성을 염두에 두고 코드 작성을 해야한다. 첫 ..
[네이버 부스트캠프] 챌린지 수료 회고록
·
✍🏻 회고록
https://blog.naver.com/kyxxn_/223542686446 [회고] 부스트캠프 웹・모바일 9기 챌린지를 마치고, 솔직담백 후기지난 4주간 내가 뭘 했고, 뭘 배우고 느꼈는지, 그리고 이 기간에 만난 좋은 사람들도 자랑할 거다. (본 게...blog.naver.com 글 발행일: 2024년 8월 10일
[ADR] 내 프로젝트에서 겪은 OCP 원칙에 대한 생각 정리
·
🖥️ Computer Science/🏛️ Software Architecture Patterns
ADRArchitecture decision record내 프로젝트에서 겪은 OCP 원칙에 대한 깊은 생각 정리학습 목표객체지향 SOLID 원칙 중 OCP에 대한 고민을 해본 경험을 적는다.현 프로젝트에 아키텍처를 OCP 원칙을 고려하여 생각해본다.학습 내용문제 상황먼저 위와 같은 모델이 있다.Shapable이라는 프로토콜을 도형 종류들이 채택하게끔 추상화 했다.그리고 Factory 패턴을 적용하여 Shapable 프로토콜을 채택한 도형을 만들어서 반환해주려고 한다.나는 여기서 Factory를 어떻게 만들어야 할 지 고민했다.하나의 ShapeFactory vs Shapable마다 Factory팩토리 패턴을 구현하기 위해 위 두가지 방법이 있을 것 같다.내가 생각한 두 가지 방법을 먼저 적어보겠다.하나의 ..
[GitHub] 하나의 PR 메세지에 PR 링크를 올려 잘게 쪼개기
·
🎸 기타/git
학습 목표현재 Upstream의 레포지토리를 Fork해서 작업하고 있다.그리고 PR은 하루에 단 한 번만 보내야 하는 상황이라, 잘게 쪼개서 PR 보내기를 할 수가 없다.Fork한 내 개인 브랜치들 간에 잘게 쪼갠 PR을 하나의 PR 메세지에 올려서 리뷰가 용이하게 해봤다.본 내용은 그 경험을 공유하는 글이다.학습 내용각각의 PR 링크는 모두 Kyxxn/swift-p2-canvas 레포지토리의 브랜치들 간에 PR 작업한 것들이다.Upstream에 1일 1PR을 위한 메인 브랜치를 만든다. ex) Day10Day10을 Base로 분기해서 Feature 혹은 Refactor 단위로 작업 브랜치를 만든다.작업 브랜치 기능 구현이 완료되면 Day10에 Merge 시킨다.1~3번 작업은 모두 내 개인 레포지토리에..
[Swift] struct가 아닌, enum으로 네임스페이스 관리하기
·
📱 iOS/Swift
학습 목표네임스페이스 개념 이해하기struct로 네임스페이스를 만든다면 ?enum으로 네임스페이스 만들기학습 내용네임스페이스란 ?프로젝트를 하다가 static func 정적 메소드를 사용할 일이 많아져서 정적 메소드를 모아둔 구조체를 만들어서 관리하고자 했다.이를 Swift에서는 네임스페이스라 부르는 듯하다. (관련된 애들을 묶어놓는 단위)그러나, 아래 코드는 문제를 가지고 있다.struct RandomUtil { static func generateSize() -> Size { let width = Double.random(in: 100...150) let height = Double.random(in: 100...150) return Size(width: w..
[UIView] frame & bounds (3)
·
📱 iOS/UIKit
아래 좌표계가 나와서 본편의 사진은 소들님 걸로 사용하겠습니다사진 출처: 개발자 소들이학습 목표frame과 bounds를 언제 사용하는지 알아보자ScrollView를 곁들인,,학습 내용1. Frame은 언제 사용할까frame은 UIView의 위치, 크기를 나타낼 때 사용됨SuperView로부터 위치를 계산해서, size에 따라 그려주는 역할즉, UIView의 위치 및 크기 설정 때 사용함ley myView: UIView = .init(frame: frame)이처럼 UIView의 좌표 잡을 때 사용됨2. Bounds는 언제 사용할까UIView의 위치, 크기를 나타낼 때 사용함위치(origin): 자신의 좌표계크기(size): View 영역 자체의 크기a. View를 회전한 후, View의 실제 크기를 알고..
[UIView] frame & bounds (2)
·
📱 iOS/UIKit
아래 좌표계가 나와서 본편의 사진은 소들님 걸로 사용하겠습니다사진 출처: 개발자 소들이학습 목표frame과 bounds 차이 다시 알아보기bounds를 왜 쓰는 건지 알아보기학습 내용frame vs bounds frameboundsorigin (x, y) 기준점Super View의 좌표계자신의 좌표계size (width, height) 기준점View 영역 모두를 감싸는 사각형View 영역 자체지난 주에 하나하나 실습하며 알아봤던 각각의 특징이다.이제 위치 (x, y)를 변경할 때, frame과 bounds가 어떻게 달라지는 지 알아보자frame의 origin 값을 변경하는 경우bounds가 아닌 frame의 origin은 SuperView의 영향을 받음즉, secondView가 바뀌면, thirdView..
[UIView] frame & bounds (1)
·
📱 iOS/UIKit
본 시리즈는 소들이 블로그를 보고,실습을 하며 정리한 글입니다.학습 목표CGRect의 origin, size 두 프로퍼티가 UIView에서 어떻게 쓰이는지UIView의 프로퍼티 frame과 bounds 차이 공부학습 내용Super View 개념여태 나는 뷰컨트롤러가 갖는 뷰, 즉 루트 뷰라고 생각했는데그냥 부모 뷰를 이야기 하는 것이었음뷰는 계층 구조로, 뷰안에 뷰를 넣을 수 있는데second View의 Super View는 firstView인 것.UIView의 frameframe: CGRect에는 origin과 size가 있음origin = (x, y) 좌표, size = (width, height) 크기frame의 origin (x,y)Super View의 원점(좌측 최상단)을 (0, 0)으로 놓고,..
[CoreFoundation] CGPoint, CGSize, CGRect
·
📱 iOS/Swift
학습 목표View의 위치와 크기를 결정하는 방법CGPointCGSizeCGRect학습 내용View 위치와 크기 결정뷰를 그리기 위해선, 위치 결정이 필요함뷰 위치 결정에서 CG로 시작하는 3가지가 필수적인 존재뷰컨트롤러에 있는 self.view (화면에서의 루트 뷰)를 제외한나머지 SubView들은 모두 부모 UIView의 좌측 최상단에서 (x, y)만큼 움직여 그림또한, 어느 크기만큼 그릴 것인지에 대한 Width, Height가 필요함x, y, width, height 모두가 필요한데, CG로 시작하는 3가지가 이 4개를 다루고 있음(x, y) 좌표를 설정하는 CGPointCoreFoundation - CFCGTypesCGPoint 구조체는 x, y를 갖고 있다.소들님 블로그 봤을 땐, x와 y의 타..
[24년 8월 우아한테크세미나] 생성AI로 '우리'가 더 똑똑해지기
·
🎸 기타/세미나
https://www.youtube.com/live/v2icwh-nyl4?si=f9Dvwbjcgg0m6maQ오늘 저녁 무면서 이 세미나를 봤는데,요즘 AI 프롬포트에 관심이 많던 나에게 좋은 주제같아서 정리해보았다. (참고: 아래 내용은 영상에서 말하는 '3가지 스텝'이 아닌, 제 주관으로 유용해보이는 것만 적었습니다)1. 프롬포팅 먼저 하기 (36:38)- GPT를 전문가로 빙의 시켜줌 (실존하는 전문가로 해도 됨)- 전문가로 만들었다면, 내가 요청할 작업을 어떻게 해결해 나가는지 '과정'을 물어보기2. 지피티는 우리에게 질문을 안 하려 함 (41:45)- (발표자 추측) GPT가 질문을 하면 API 비용 증가 때문이다- 우리가 원하는 것에 대해 GPT가 더 잘 답변할 수 있게, 우리가 원하는 바를 G..
kyxxn
컴공 학부생의 공부 일기