전체 글 89

[swift] swift 언어 정리 (3) - 클래스 & 구조체 & 열거형

OOP (객체 지향 프로그래밍 언어)1. 정의객체(Object)를 중심으로 코드를 설계하고 구성하는 프로그래밍 패러다임데이터(속성)와 동작(메서드)을 가진 객체들로 나누고, 이 객체들이 서로 상호작용하도록 설계하는 방식 2. 특징캡슐화 : 데이터(속성)와 이를 조작하는 함수(메서드)를 하나의 객체로 묶어 보호하는 개념추상화 : 중요한 정보만 보여주고, 불필요한 세부 정보는 숨기는 개념다형성 : 같은 메서드가 여러 객체에서 다르게 동작할 수 있도록 하는 개념상속 : 기존 클래스를 재사용하여 새로운 클래스를 생성하는 개념 Value Type vs Reference Type 값 타입 (Value Type) 참조 타입 (Reference Type)할당 및 전달값이 복사되어 전달참조(메모리 위치)가 전달메모리 위..

개발/swift 2025.03.15

[swift] swift 언어 정리 (2) - 함수 & 클로저

함수클래스, 구조체, 객체와 독립적으로 존재하는 코드 블록특정 작업을 수행하고 값을 반환할 수도 있음전역 함수 또는 지역 함수로 선언 가능 1. 형식func (매개변수 : 타입) -> 출력타입 {}  2. 메서드메서드란 ?클래스(class), 구조체(struct), 열거형(enum) 내부에 정의된 함수특정 객체와 연관되어 있어, 객체가 있어야만 호출할 수 있음인스턴스 메서드와 타입 메서드로 구분됨class Car { var brand: String // 초기화 메서드 (Initializer) init(brand: String) { self.brand = brand } // 인스턴스 메서드 func displayInfo() { print(..

개발/swift 2025.03.14

[swift] swift 언어 정리 (1) - 개념 & 문법

기원2014 : WWDC에서 Objective C를 대체하는 swift 등장2019 : swift UI 디자인 프레임워크 등장  특징세미콜론이 없음타입 안정성 ex) var name : String (타입을 지정해줌)메모리 관리를 자동으로 해줌 (ARC - Automatic Reference Counting)함수형 프로그래밍 언어 (고차 함수 , 클로져)xcode에서 플레이 그라운드 지원LiveView 사용 가능 실시간 UI/UX 확인1. Playground에서 Live View 사용import PlaygroundSupport PlaygroundPage.current.setLiveView(content)​ 장점 빠른 실험 가능코드 실행 후 바로 결과 확인 (SwiftUI 프로젝트가 아니어도 UI 테스트 ..

개발/swift 2025.03.13

[swift] Code Convention

원활한 협업을 위한 코드 컨벤션 여러 개발자들과의 협업 뿐 아니라 혼자 개발하는 것의 가장 중요한 점은 틀이다. 그동안 개발하면서 기반을 튼튼하고 섬세하게 다지는게 중요하다는걸 뼈저리게 느꼈다. 그래서 swift를 공부하면서 제일 기본인 코드 컨벤션부터 먼저 적용해보려고 한다. 나는 xcode, vscode를 사용하여 개발하려고 하는데 코드 포맷이 서로 다르게 설정이 되어있으면 정말 골치 아프다. 따라서 어떤 툴을 사용하더라도 동일한 코드 규칙을 적용하여 일관된 코드 스타일을 유지하고자 가독성을 향상시키고자 한다.  1. SwiftLintSwiftLint는 Swift 코드 스타일과 관련된 정적 분석 도구이다. SwiftLint를 사용하면 Swift 언어에서 규칙에 어긋나는 코드를 찾아내서 경고 또는 빌드..

개발/swift 2025.03.11

코딩 잘하는 침팬지

어느날 난 왜 자꾸 떨어질까 하고 동생에게 물어봤는데 동생 왈" 누나보다는 코딩 잘하는 침팬지를 뽑지 않을까 "  라고 말했다. 큰일이다. 틀린말이 아닐까봐, 맞는 말일까봐 걱정이 되었다. 사실 GPT없이 개발해보라고 하면, 아니 그냥 단순한 알고리즘 문제를 풀어보라고 하면 못 풀것 같았다.. 어렴풋이 가늠이 가는 내 빈곤한 실력을 제대로 한번 테스트를 해봐야겠다는 생각이 들었다.   코딩 테스트그래서 프로그래머스의 코드챌린지에 접수를 했다. 알고리즘에 난다 긴다 하는 사람들은 다 모여서 보는 테스트이기도 하고 알고리즘 공부도 꾸준히 하고 있지 않았어서 큰 기대 없이 봤다. 2시간에 4문제였고 1차에서 1문제 , 2차에서 1문제 풀었다. 나머지 세문제는 아마 시간을 더 준다고 했어도 못풀었을것 같다. 이..

한달 회고 2025.03.04

[서버] 라즈베리파이(1) [나만의 서버 만들기]

일단 시작하면 끝을 봐야하지 않겠나 작년 6월. 뭣도 모르고 웹 프론트엔드에 처음 도전장을 내밀었을때가 생각난다. 사이드 프로젝트를 진행하면서 현재 내가 개발한 서비스를 github 를 사용하여 정적으로 배포하고 cors 에러도 제대로 해결을 못했던 때였다. 네트워크쪽 지식이 너무 부족하다는 생각이 들었지만 급한 우선순위는 아니었기에 대충 로컬에서만 해결하고 넘어갔었다. 제대로 해결도 못하고 얼렁뚱땅 넘어간게 아쉬웠다. 개발을 계속 하면서 네트워크 지식은 필수였고 이제부터라도 제대로 공부를 해야겠다고 생각했다. 제대로 공부하려면 프로젝트를 하나 잡고 몸통 박치기로 직접 도전해보는게 베스트다. 그래서 나만의 서버를 만들어보는걸 목표로 토이 프로젝트를 시작하려고 한다. 이때껏 서버리스(Serverless)..

개발/server 2025.02.26

[Flutter] DraggableList의 아키텍쳐 분석

Flutter 커스텀 리스트 패키지 개발기 저번에 드래그를 통한 아이템 정렬 기능이 핵심인 패키지를 개발하면서 어떤 식으로 구조를 설계했는지 어떻게 동작하는지는 내용이 너무 길어질것 같아서 설명을 하지 못했다. 그래서 이번 포스팅을 통해 설명을 하고자 한다. 사실 엄청난 구조를 설계해서 막 자랑하고 싶고 다른 개발자들이 적용했으면 좋겠고 그런 마음으로 글을 쓰는건 아니다.. (๑ゝω o ๑) 그냥 내가 짠 코드 내가 더 깊이 이해하고자 올리는 것이니 참고바란다! https://heenano.tistory.com/37 [Flutter] draggable_list 패키지 개발대망의 첫 package 개발하기 이번에 설 연휴가 10일이나 된다. 그래서 설 연휴 동안의 일정이 비어버리게 되었다. 이참에 예전부터..

개발/flutter 2025.02.19

[Flutter] final 과 const 차이

1. final 과 const 의 공통점한 번만 값을 할당할 수 있다. (불변 변수) 값이 할당된 이후에는 변경할 수 없다.   2. final 과 const의 차이점 할당 시점 ⏰ final은 실행할 때(런타임) 값이 결정될 수 있다.즉, 값을 할당하는 시점이 코드 실행 중일 수도 있다. void main() { final now = DateTime.now(); // 현재 시간을 실행할 때 할당 print(now);}  ⏲️ const 는 컴파일 시점에 값이 결정된다.즉 실행중 (dynamic)으로 바뀌는 값은 const에 사용할 수 없다.void main() { const pi = 3.14159; // 컴파일 타임에 값이 정해짐 print(pi);}    인스턴스 재사용 🧻 final은 객체..

개발/flutter 2025.02.16

[프로그래머스] H-index

문제 설명H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다.어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.  제한 사항과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다.논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 입출력 예citationsreturn[3..

[프로그래머스] 인사고과

문제 설명완호네 회사는 연말마다 1년 간의 인사고과에 따라 인센티브를 지급합니다. 각 사원마다 근무 태도 점수와 동료 평가 점수가 기록되어 있는데 만약 어떤 사원이 다른 임의의 사원보다 두 점수가 모두 낮은 경우가 한 번이라도 있다면 그 사원은 인센티브를 받지 못합니다. 그렇지 않은 사원들에 대해서는 두 점수의 합이 높은 순으로 석차를 내어 석차에 따라 인센티브가 차등 지급됩니다. 이때, 두 점수의 합이 동일한 사원들은 동석차이며, 동석차의 수만큼 다음 석차는 건너 뜁니다. 예를 들어 점수의 합이 가장 큰 사원이 2명이라면 1등이 2명이고 2등 없이 다음 석차는 3등부터입니다.각 사원의 근무 태도 점수와 동료 평가 점수 목록 scores이 주어졌을 때, 완호의 석차를 return 하도록 solution ..