프로그래밍19 플러터(Flutter)로 1인 앱개발을 하려는 이유? for 플러터를 쓸지 고민하는 앱개발자, 앱개발 인문을 플러터로 생각 중인 입문자, 사이드프로젝트를 생각 중인 개발자 or 디자이너 1인 앱개발을 하는 이유? 요즘에는 월급을 제외한 모든 것이 오르면서, 부업이 필수적이라는 생각이 듭니다. 사치스러운 삶을 바라는 건 아니지만, 적어도 하루 세 끼 배달 음식만 시켜 먹는 것으로도 유지할 수 있는 삶이라면 일에 더 집중할 수 있겠다는 생각을 자주 합니다. 개발자는 본인의 전문성을 살리면서 할 수 있는 부업으로 사이드 프로젝트가 있습니다. 이를 여러 지인들과 팀을 이뤄서 하는 경우도 있고 1인으로 하는 경우도 있습니다. 저는 최근 여러 팀 프로젝트를 진행하면서 1인 개발이 다시 하고 싶어져서 1인 개발로 정했습니다. 디자인을 꾸준히 해와서 익숙해질 만한데, 디.. 2023. 6. 26. [코테] 가장 긴 접두어이자 접미어(LPS) 문제 문자열을 입력받아 다음의 조건을 만족하는 LPS*를 찾아 그 길이를 리턴해야 합니다. LPS: 주어진 문자열의 가장 긴 접두어이자 접미어(Longest Prefix which is also Suffix) non-overlapping: 접두어와 접미어는 서로 겹치는 부분이 없어야 합니다. 다시 말해, prefix와 suffix는 문자열의 동일한 인덱스에 위치한 문자를 요소로 가지면 안 됩니다. 입력 인자 1 : str string 타입의 임의의 알파벳 소문자 문자열 ( str.length는 60,000 이하 출력 number 타입을 리턴해야 합니다. 주의사항 prefix(접두어)는 문자열의 첫 인덱스부터 시작하는 모든 부분 문자열을 의미합니다. suffix(접미어)는 문자열의 마지막 인덱스부터 시작하.. 2023. 2. 5. [코테 js] treeBFS 너비 우선 탐색(BFS, Breadth First Search) 문제 임의의 tree를 구성하는 노드 중 하나의 Node 객체를 입력받아, 해당 노드를 시작으로 너비 우선 탐색(BFS, Breadth First Search)을 합니다. 이때, 탐색되는 순서대로 노드의 값이 저장된 배열을 리턴해야 합니다. let bfs = function (node) { // TODO: 여기에 코드를 작성합니다. }; // 이 아래 코드는 변경하지 않아도 됩니다. 자유롭게 참고하세요. let Node = function (value) { this.value = value; this.children = []; }; // 위 Node 객체로 구성되는 트리는 매우 단순한 형태의 트리입니다. // membership check(중복 확인)를 따로 하지 않습니다. Node.prototype.a.. 2023. 1. 18. [코테] 멱집합(Power set) 문제 하나의 집합을 의미하는 문자열을 입력받아 각 문자를 가지고 만들 수 있는 모든 부분집합을 리턴해야 합니다. 입력 인자 1: str string 타입의 공백이 없는 알파벳 소문자 문자열 출력 배열(arr)을 리턴해야 합니다. arr[i]는 각 부분집합의 원소로 구성된 문자열 주의사항 arr[i]는 각 부분집합을 구성하는 원소를 연결한 문자열입니다. arr[i]는 알파벳 순서로 정렬되어야 합니다. 집합은 중복된 원소를 허용하지 않습니다. 부분집합은 빈 문자열을 포함합니다. arr은 사전식 순서(lexical order)로 정렬되어야 합니다. 입출력 예시 let output1 = powerSet('abc'); console.log(output1); // ['', 'a', 'ab', 'abc', 'ac',.. 2023. 1. 16. [코테 js] treeDFS 깊이 우선 탐색 문제 문제 임의의 tree를 구성하는 노드 중 하나의 Node 객체를 입력받아, 해당 노드를 시작으로 깊이 우선 탐색(DFS, Depth First Search)을 합니다. 이때, 탐색되는 순서대로 노드의 값이 저장된 배열을 리턴해야 합니다. 인자1 : node 'value', 'children' 속성을 갖는 객체 (Node) 'node.value'는 number 타입 'node.children'은 Node를 요소로 갖는 배열 입출력 예시 let root = new Node(1); let rootChild1 = root.addChild(new Node(2)); let rootChild2 = root.addChild(new Node(3)); let leaf1 = rootChild1.addChild(new Nod.. 2023. 1. 9. [Android] FragmentManager replace메서드와 add메서드 문제 BottomNavigation과 5개의 fragment로 메인을 구성하였는데 탭을 이동하거나 back버튼을 눌렀을 때 문제가 생겼다. fragment를 전환 할 때마다 화면이 지워지고 다시 생성되는데 앱이 느려지는 문제 뿐만이 아니라, 매번 화면 재생성을 하느라 메모리도 많이 먹고 기존에 하던 작업이나 스크롤 위치가 다 날라갔다.. 원인 화면 재생성을 막으려고 온갖 조건문을 걸고 onCreateView에 있던 순서도 바꿔봤는데 소용이 없었다. 겨우 원인을 찾았는데, 원인은 fragment끼리 이동할 때 서로 visible, invisible 되는 줄알았는데, 이동하면 이전 모든 fragment는 destroy되고 새로운 fragment만 남아서 애초에 삭제된 fragment를 유지하려고 뻘짓을 했던.. 2022. 1. 27. [Kotlin] 데이터 바인딩 class MainActivity : AppCompatActivity() { private lateinit var binding : ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) binding = DataBindingUtil.setContentView(this, R.layout.activity_main) // 1번 방식 - findViewById // val btn = findViewById(R.id.testBtnId) // btn.setOnClickListener { // Toast.mak.. 2021. 9. 7. 이전 1 2 다음