전체 글

공부와 경험의 기록!
1. 비용 산정 모델 개념 : 소프트웨어 규모 파악을 통한 투입자원, 소요시간을 파악하여 실행 가능한 계획을 수립하기 위해 비용을 산정하는 기법이다. 2. 분류 하향식 산정 방법 : 경험이 많은 전문가에게 비용 산정을 의뢰 ex) 전문가 판단, 델파이 기법 상향식 산정 방법 : 세부적인 요구 사항과 기능에 따라 필요한 비용을 계산하는 방식 ex ) LOC(Lines of Codes). Man Month, COCOMO, Putnam, FP(Function Point) 상향식 산정 방법의 종류 LOC(Lines of Codes) 소프트웨어 각 기능의 원시 코드 라인수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용을 선정 Man Month 한 사람이 1개월동안 할 수 있는 일의 양을..
·iOS
Publishing changes from background threads is not allowed; make sure to publish values from the main thread (via operators like receive(on:)) on model updates. 에러가 났다. 앱이 종료되지는 않았지만 Xcode에서 확실하게 경고를 주고 있다. 의미는 내가 지금 DispatchQueue를 사용해서 비동기 처리를 하려고 하는데, 코드의 위치가 main thread가 아니라 background thread이라는 것 같다. 난 저 이미지들을 IDLE 상태로 모두 바꿔주는 처리를 한큐에 해버리고 싶은데, 왜 이게 위험하다는걸까 ? 1. Main thread Main thread 는 오직 하..
·iOS
레이블러리 앱을 개발하면서 MVVM 패턴을 적용시켜보았는데, 기존에 애플이 지원했던 MVC 패턴을 떠올리며 차이점이 무엇인지 정리해보고 싶어서 글을 쓰게 되었다. MVC 패턴이란 ? Model + View + Controller 구조의 디자인 패턴이다. 그렇다면 각각의 요소에 대해 알아보도록 하자 ~! 1. Model : 앱의 데이터와 관련된 내용을 담고 있다. 그리고 데이터를 관리하는 로직도 Model에 담기게 된다. 네트워크를 통해 받아오는 데이터나 영구적인 데이터를 다루거나 필요한 구조체를 만드는 경우 관련된 코드들은 Model에 담기게 된다. 대체로 Model은 UI와 직접적으로 연결되어 있지는 않다. 데이터 그 자체의 구조를 나타내는게 MVC 패턴에서 일반적이다. - 데이터로 사용하는 구조체 e..
·Algorithm (PS)
자료구조 시간에 트리 구조 배웠을 때 처럼 !! 재귀 함수를 이용하여 트리를 순회할 수 있다. + 트리 자료구조를 다시 정리하자 ! # 1991 트리 순회 n = int(input()) tree = {} # dictionary type for i in range(n): root, left, right = input().split() tree[root] = [left, right] # key, value #preorder root - left - right def preorder(root): if root != '.': print(root, end='') # root preorder(tree[root][0]) # left preorder(tree[root][1]) # right # inorder left ..
도구 설명 xUnit java(JUnit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크 소프트웨어의 함수나 클래스 같은 서로 다른 구성 원소(단위)를 테스트 할 수 있게 해주는 도구 STAF 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임 워크 각 테스트 대상 분산 환경에 데몬을 사용하여 테스트 대상 프로그램을 통해 테스트를 수행하고, 통합하며 자동화 하는 도구 FitNesse 웹 기반 테스트 케이스 설계/실행/결과 확인 등을 지원하는 테스트 프레임워크 사용자가 테스트 케이스 테이블을 작성하면 빠르고 편하게 자동으로 원하는 값에 대한 테스트를 할 수 있는 장점이 있음 NTAF FitNesse와 STAF의 장점을 결합하여 개발된 ..
·개발일기
1. 환경 : HackerLank 2. 시험 방식 및 시간 이틀정도 시간을 주고 응시자가 원하는 시간에 시작할 수 있다. ICT 산학 인턴십 코딩테스트가 12시간이라는 후기를 많이 봤었는데, 절반이 줄었다 ㅋㅋ 문제는 총 5문제였고, 시험시간은 6시간이었다. 사실 6시간도 다른 기업 시험을 생각하면 넉넉하게 주어진 편이다. 3. 시험 문제 및 난이도 해커랭크에서는 영어로 문제가 출제된다. 사실 나는 이번 인턴쉽 기회에 총력을 가하고 있어서 해커랭크 사이트에서 미리 영어로 문제 푸는 훈련을 했다. 그런데 사실 예제 보고 풀게되기 때문에, 영어로 나온다고 하여도 크게 걱정하지 않아도 된다. 기억이 벌써 가물가물한데 1~3번까지는 구현, 그리디 문제가 나왔고 난이도는 백준 silver정도인것 같다. 4번은 선..
·Algorithm (PS)
유형 : DP(다이나믹 프로그래밍) 배열을 뒤집어서 가장 긴 증가하는 수열을 찾는다 예전에 풀었던 문제 11722 가장 긴 감소하는 부분 수열과 똑같은 dp 문제이다. 다만 이번 문제에서는 제외할 병사의 수를 출력해야 하므로 n - dp의 최댓값 (= 가장 긴 수열의 길이) 를 출력해주어야 한다. https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 가장 긴 감소하는 부분 수..
·Algorithm (PS)
백트래킹 문제로 되게 유명하다면서/!??! 그래서 풀어봤다 백트래킹 유형중에 백준에서 푼사람이 가장 많은 문제이기도 하다 백트래킹이란 ? 해를 찾는 도중에 해당 노드가 해가 아니라서 막히면 되돌아가서 다시 해를 찾아가는 기법이다. 첫번째 풀이는 시간초과가 났다 dfs로 퀸을 배치하고, 배치한다음에 시뮬레이션 돌려서 퀸을 공격할 수 있는지 없는지 여부를 true , false 로 반환해서 true 값을 세려고 했다 시간 초과 판정이 떴다. 퀸을 배치하는 과정에서 조금 더 개선해볼 수 있지 않을까 ??? # 9663 N-Queen n = int(input()) graph = [[0]*n for _ in range(n)] dx = [-1, 1, 0, 0, -1, -1, 1, 1] dy = [0, 0, -1, ..
minjiwoo
MJ workspace