Kotlin의 모든 variables(변수) 혹은 data structure(데이터 구조)는 data type을 갖습니다.

data type을 선언해주어야 compiler(컴파일러)에서 이해하고 해석할 수 있습니다.

 

값을 변경할 수 있는 변수를 mutable variables이라고 합니다. 즉, var로 선언한 변수입니다.

(mutable은 영어단어로 '변할 수 있는, 잘 변하는' 이라는 뜻을 가지고 있습니다.)

 

반대로 한번 값을 할당하면 변경할 수 없는 변수를 immutable variables라고 합니다.

 

그럼 변수에 값을 할당함에 따라 Data type이 설정되는지 확인해 보겠습니다.

a 변수에 정수 1을 할당하였고, 정수 b에는 "문자"를 할당했습니다. 명시적으로 Data Type을 선언하지 않았지만 할당된 값의 Data type에 따라 변수의 Data type이 결정되었습니다.  

 

위 결과에서 정수는 int라고 출력이 되고 문자열은 class java.lang.String이라고 출력되었을까요?

엄밀히 말하면 둘다 class입니다. 차이점이 있다면, JVM에는 int와 integer가 있습니다.

int는 Primitive 자료형이라고 합니다. 즉, 데이터를 가지는 원시적 자료형을 뜻합니다.

그렇지만 Kotlin에서는 primitive 자료형인 Int에 많은 기능을 부여하여 Integer를 사용하지 않아도 되도록 하였습니다.

오히려 Integer를 사용하면 경우에 따라 예상치 못한 오류가 발생할 수 있습니다.

실제로 위 코드에 Integer로 선언한 부분 왼쪽에 !표가 있습니다.

마우스 커서를 이동해 올려보면 경고 문구가 나옵니다.

기억하세요. Kotlin에서는 Int를 사용합니다.

Kotlin에서 Int가 아닌 Integer로 판단되어야하는 경우 알아서 Integer로 Data type을 설정해줍니다.

코딩을 할때는 Int로 선언하고 사용하면 문제가 발생하지 않습니다.

예를 들어, Int는 primitive 자료형으로 null 값을 할당 할 수 없습니다.

 

그렇지만 Kotlin에서는 ? operator를 제공합니다. 즉 ?를 사용해 null이 될 수 있다고 알려줍니다.

? Operator

실행 결과 null을 할당했을때 a의 Data type도 null 입니다.

a 값을 출력한 결과가 null 인것은 알겠는데, a.javaClass 출력값이 왜 null 일까요?

a?.javaClass는 ? operator에 따라 a가 null이 아니면 a.javaClass를 a가 null 이면 null을 반환합니다.

 

a에 1을 할당했을때  Data type이 Int가 아니라 Integer입니다. 

왜 그럴까요? Kotlin에서 null 할당이 가능한 Integer class로 알아서 제공해준 결과입니다.

그렇지만, 개발자 입장에서는 Int와 Integer를 구분해서 사용할 필요가 없습니다.

Kotlin이 다른 언어에 비해서 사용하기 편한 이유 중에 하나입니다.

(이 외에도 많겠지요... ? operator의 존재도 마찬가지로 Kotlin이 사용하기 편한 이유가 되겠네요.)

'DEVELOPMENT > Kotlin' 카테고리의 다른 글

6. Kotlin, Basic Data Types - Characters  (0) 2024.02.25
5. Kotlin, Basic Data Types - Boolean  (0) 2024.02.25
4. Kotlin, Basic Data Types - Numbers  (0) 2024.02.23
2. Kotlin, Variables  (0) 2024.02.22
1. Kotlin "Hello, world!!!"  (0) 2024.02.22

영어로 'Variables', 우리말로 '변수'라고 합니다.

변수는 데이터를 저장하는 곳입니다.

 

모든 프로그램 언어에는 Variables(변수)가 있습니다. 

Kotlin에서는 funtion(함수)를 선언할때 fun을 앞에 붙이듯이  

변수를 선언할때는 val 또는 var을 앞에 붙입니다.

 

val은 한번 값을 저장하면 변경할 수 없는 변수 선언입니다.

var은 몇번이고 값을 변경하여 저장할 수 있습니다.

 

변수에 값을 설정하는 방법은 operator = 을 사용하면 간단히 해결됩니다.

 

Kotlin Play에서 val로 선언한 변수의 값을 변경해볼까요.

val로 선언한 변수에 값을 변경하려고 시도

"Val 변수는 값을 바꿀수 없어요." 라고 알려줍니다.

 

그럼 var로 선언한 변수는 어떨까요?

var로 선언한 변수에 값을 변경하려고 시도

문제없이 잘 바뀌어서 출력됩니다.

 

Kotlin 공식 문서에서는 변수에 할당할 내용을 변경하지 않으면 val을 사용하라고 권장합니다.

변경하면서 사용해야하는 경우, 그러니까 필요한 경우에만 var을 사용하여 변수를 선언하라고 합니다.

 

Kotlin 변수 선언에 대해서 알아보았습니다. 

변수를 선언하거나 사용하는 것에는 다양한 방법이 있습니다.

우선은 Kotlin의 val과 var을 이해하는 것으로 마무리하겠습니다.

 

'DEVELOPMENT > Kotlin' 카테고리의 다른 글

6. Kotlin, Basic Data Types - Characters  (0) 2024.02.25
5. Kotlin, Basic Data Types - Boolean  (0) 2024.02.25
4. Kotlin, Basic Data Types - Numbers  (0) 2024.02.23
3. Kotlin, Data Types - Basics  (0) 2024.02.22
1. Kotlin "Hello, world!!!"  (0) 2024.02.22

모든 언어에서 최초 시작은 "Hello, world!!!"

나의 첫번째 Kotlin

 

실행을 하면 예상대로 아래와 같은 문구가 출력됩니다.

실행 결과

 

한 땀 한 땀 살펴보면 간단하지만, 많은 걸 배울 수 있습니다.

구분 살펴보기
fun "내 뒤에 온 것은 function이야"라고 선언하기 위해 사용합니다. funtion은 우리말로 함수입니다. 즉, main 함수를 선언했습니다.
Kotlin에서는 "펀"이라고 읽습니다. 즐거운 코딩일까요?
main() 앞에 fun을 붙임으로 인해서 함수의 이름을 main으로 선언했습니다. Kotlin 프로그램은 기본적으로 mian() 함수에서 시작합니다.
{ } 영어로 'curly braket' 우리말로 '중괄호'라고 합니다. 함수의 body 영역임을 표현합니다.  
// 한 줄 주석 입니다. 주석으로 처리된 라인은 컴파일러에서 무시하고 넘어갑니다. 쓰고 싶은 말을 쓰면 됩니다.
그럼 참고로 여러 줄 주석은 어떻게 해야 할까요?

/* 이렇게 시작해서
    이렇게 끝을 맺습니다. */

즉, /* */ 사이의 내용이 주석으로 처리됩니다. 
println() 괄호 안에 있는 내용을 출력하라는 함수입니다. 

 

이렇게 그냥 끝내기보다는...

괄호 안에 있는 내용 그대로 "Hello, world!!!" 이렇게 출력한 게 아니고 왜 Hello, world!!! 이렇게 나오지? 라는 궁금증...

 

println은 Kotlin에서 제공하는 함수입니다. 괄호 안에 넣어준 걸 "내가 화면에 출력해줄께"라고 말이죠.

그렇다면, () 안에는 아무거나 다 넣으면 출력해 줄까요? 그렇지는 않습니다.

() 안에 넣을 있는 것은 문자, 문자열, 숫자라고 보시면 됩니다.

 

255는 모두 숫자처럼 보이지만 출력문이 모두 달랐습니다.

여기서 한 가지 더 println()의 ()에 넣을 수 있는 형태는 이외에도 많이 있습니다.

그렇지만 모두가 결국에는 문자와 숫자임을 기억하면 좋겠습니다.

 

println()에 대해서 더 알아볼까요.

Kotlin에는 println()과 print()가 있습니다. print()의 개념과 사용법은 println()과 동일합니다. 

단지 다른 점은 println()은 줄 바꿈이 있고 print()는 줄 바꿈이 없다는 차이입니다.

println vs. print
실행 결과

 

줄 바꿈의 의미를 눈으로 확인했습니다.

그렇다면 print 문을 사용하면 줄 바꿈을 할 수 없는 걸까요? 그렇지는 않습니다. 

Kotlin만이 아니라 대부분의 언어에서 print와 println을 제공하며 줄 바꿈을 위한 특수 문자 "\n"을 사용합니다.

 

\n 사용
실행 결과

 

\n 과 같은 문자를 Escape sequences라고 합니다. C, C++언어로부터 시작되었고 Java, PHP, C# 등 모든 언어에서 차용해서 사용하고 있습니다. JVM 기반인 Kotlin은 당연히 사용하게 되었죠. 하지만, Kotlin에서 모든 Escape sequences들을 사용하지는 않습니다. 잘못 사용하면 에러가 나겠지요.

 

한 가지 더 따옴표나 큰따옴표를 출력하고 싶으면 어떻게 할까요? 간단합니다. \' \" 이렇게 앞에 backslash를 붙이면 출력됩니다.

 

마지막으로, Kotlin에서는 Mutiline strings를 제공합니다. 무슨 말인지 살펴볼까요.

 

별 헤는 밤

                                                      윤동주

계절이 지나가는 하늘에는

가을로 가득 차 있습니다.

나는 아무 걱정도 없이

가을 속의 별들을 다 헤일 듯합니다.

가슴속에 하나 둘 새겨지는 별을

이제 다 못 헤는 것은

쉬이 아침이 오는 까닭이요,

내일 밤이 남은 까닭이요,

아직 나의 청춘이 다하지 않은 까닭입니다.

별 하나에 추억과

별 하나에 사랑과

별 하나에 쓸쓸함과

별 하나에 동경과

별 하나에 시와

별 하나에 어머니, 어머니,​

어머님, 나는 별 하나에 아름다운 말 한마디씩 불러 봅니다. 소학교 때 책상을 같이 했던 아이들의 이름과, 패, 경, 옥, 이런 이국 소녀들의 이름과, 벌써 아기 어머니 된 계집애들의 이름과, 가난한 이웃 사람들의 이름과, 비둘기, 강아지, 토끼, 노새, 노루, '프랑시스 잠', '라이너 마리아 릴케' 이런 시인의 이름을 불러 봅니다.

이네들은 너무나 멀리 있습니다.

별이 아스라이 멀듯이.

어머님,

그리고 당신은 멀리 북간도에 계십니다.

나는 무엇인지 그리워

이 많은 별빛이 내린 언덕 위에

내 이름자를 써 보고

흙으로 덮어 버리었습니다.

따는 밤을 새워 우는 벌레는

부끄러운 이름을 슬퍼하는 까닭입니다.

그러나 겨울이 지나고 나의 별에도 봄이 오면

무덤 위에 파란 잔디가 피어나듯이

내 이름자 묻힌 언덕 위에도

자랑처럼 풀이 무성할 거외다.

 

윤동주 시인님의 "별 헤는 밤",  좋아하는 시입니다.

 

별 하나에 추억과

별 하나에 사랑과

별 하나에 쓸쓸함과

별 하나에 동경과

별 하나에 시와

별 하나에 어머니, 어머니,

 

이 부분을 print 해볼까요. 한 줄로 출력하면 운치 없겠죠.

 

이렇게 \n(line feedback) 특수 문자를 활용해서 출력을 할 수 있지만, 소스 코드를 보니 심란하네요.

 

그래서 Kotlin의 Multiline strings를 사용해서 출력할 수 있습니다. 말 그대로 여러 줄의 문자열을 출력하도록 합니다. 

큰따옴표 3개 즉, """로 앞과 뒤를 감싸주면 됩니다. 

Multiline strings 사용

 

 

'DEVELOPMENT > Kotlin' 카테고리의 다른 글

6. Kotlin, Basic Data Types - Characters  (0) 2024.02.25
5. Kotlin, Basic Data Types - Boolean  (0) 2024.02.25
4. Kotlin, Basic Data Types - Numbers  (0) 2024.02.23
3. Kotlin, Data Types - Basics  (0) 2024.02.22
2. Kotlin, Variables  (0) 2024.02.22

SW사업의 투입인력 기준 대가산정을 위해 한국소프트웨어산업협회 KOSA에서 매해 공표하는 평균임금입니다.

 

'SW기술자 노임단가'로 공표하다가 2014년부터 'SW기술자 노임단가'라는 공표명이 지식 기반 SW산업에 적절하지 않다고하여 'SW기술자 평균임금'으로 변경되었습니다.

 

SW사업 업체의 SW기술자 지금 임금을 매년 6월~7월에 조사하여 매년 8월 31일에 공표합니다.

 

유의사항_및_일러두기.hwp
다운로드
[자료실]2018년_적용_SW기술자_평균임금_공표_엑셀.xlsx
다운로드
[자료실]2018년_적용_SW기술자_평균임금_공표_한글.hwp
다운로드
ITSQF_직무분류_및_직무기술서.pdf
다운로드

 

아래는 '2018년도 SW기술자 평균임금' 공표 내용입니다.

 

2018년 SW기술자 등급별 평균임금은 전년대비 4.6% 증가했으며, 전년도 증가율(2016년 대비 2017년) 3.1%보다 더 높아진 것으로 조사되었습니다. 

 

이번 발표의 특이 사항은 NCS(국가직무능력표준) 기반으로 작성된 ITSQF 28개 직무체계의 직무별 평균임금 조사결과도 발표했다는 것입니다. 이를 ‘SW사업 대가산정 가이드’의 투입공수방식(MM방식)에 적용해 등급별 기준 방식을 대체할 계획을 갖고 있다고 밝혔다는대요. 언제 적용되어 현실화 될지는 미지수 입니다.

 

ITSQF에 대해서는 다시 알아봐야겠네요.

 


 

통계법 제27조(통계의 공표)에 따라 「2018년 SW기술자 임금실태조사(통계승인 제37501호)」의
SW기술자 평균임금을 공표합니다.


【SW기술자 평균임금 - 등급별】

                                                                                                                                                                      (단위: 명, 원, %)

구 분 인 원
일평균임금(M/D)
월평균임금
(M/M)
시간평균임금
(M/H)
2017년
2018년
(증가율)
기술사
295 
452,611  
462,072  
(2.1)
9,611,098  
57,759  
특급기술자
15,526 
391,068  
406,342  
(3.9)
8,451,914  
50,793  
고급기술자
8,742  
305,353  
305,433  
(0.0)
6,353,006  
38,179  
중급기술자
9,104  
239,506  
239,748  
(0.1)
4,986,758  
29,969  
초급기술자
11,363  
191,320  
215,681  
(12.7)
4,486,165  
26,960  
고급기능사
99  
191,177  194,340  
(1.7)
4,042,272  
24,293  
중급기능사
200  
158,490  
158,597  
(0.1)
3,298,818  
19,825  
초급기능사
233  
114,914  
120,948  
(5.3)
2,515,718  
15,119  
자료입력원
204  
113,959  
117,145  
(2.8)
2,436,616  
14,643  
계/평균
45,766  
289,473  
302,665  
(4.6)
6,295,432  
37,833  

 

<평균임금 SW사업대가 활용시 유의사항>
※ 본 조사결과는 SW사업에서 반드시 활용해야 하는 강제사항은 아님
※ 등급별 평균임금은 2019년에는 공표하지 않고, IT직무별 평균임금을 공표할 예정임

 * SW기술자 평균임금은 소프트웨어산업진흥법 제22조(소프트웨어사업의 대가지급) 4항
   ‘소프트웨어기술자의 노임단가’를 지칭함

 * SW기술자 평균임금은 기본급, 제수당, 상여금, 퇴직급여충당금, 법인부담금을 모두 포함한 결과임
 * 월평균임금은 일평균*근무일수(20.8일), 시간평균임금은 일평균÷8시간으로 각각 산정함
 * 월평균 근무일수는 휴일, 법정공휴일 등을 제외한 업체의 응답된 근무일의 평균이며, 이는 개인의
    휴가 사용여부와는 무관함

 * SW기술자 평균임금은 2017년 대비 4.6% 증가함
 * DB구축비 대가기준 가이드에서 활용되는 자료입력원 평균임금 내 기본급은 2018년 93,287원임

   [시행일] 2018년 9월 1일부터 2019년 8월 31일까지 적용


2018년 8월 29일
한국소프트웨어산업협회장



또한 NCS 기반의 ITSQF 28개 직무체계의 IT직무별 평균임금을 공표합니다.

【2018년 SW기술자 평균임금 - IT직무별】
                                                                                                                                                                                (단위: 원)

구 분
일평균임금(M/D)
월평균임금(M/M)
시간평균임금(M/D)
 (1) IT기획자
316,403  
6,581,182  
39,550  
 (2) IT컨설턴트
443,652  
9,227,962  
55,457  
 (3) 정보보호컨설턴트
212,881  
4,427,925  
26,610  
 (4) 업무분석가
413,856  
8,608,205  
51,732  
 (5) 데이터분석가
292,480  
6,083,584  
36,560  
 (6) IT PM
377,354  
7,848,963  
47,169  
 (7) IT PMO
323,207  
6,722,706  
40,401  
 (8) SW 아키텍트
342,701  
7,128,181  
42,838  
 (9) Infrastructure아키텍트
343,040  
7,135,232  
42,880  
 (10) 데이터 아키텍트
339,179  
7,054,923  
42,397  
 (11) UI/UX 개발자
208,809  
4,343,227  
26,101  
 (12) 응용SW 개발자
260,046  
5,408,957  
32,506  
 (13) 시스템SW 개발자
235,596  
4,900,397  
29,450  
 (14) 임베디드SW 개발자
256,186  
5,328,669  
32,023  
 (15) 데이터베이스 운용자
291,249  
6,057,979  
36,406  
 (16) NW엔지니어 316,056  
6,573,965  
39,507  
 (17) IT시스템운용자
247,442  
5,146,794  
30,930  
 (18) IT지원 기술자
307,532  
6,396,666  
38,442  
 (19) SW제품 기획자
253,055  
5,263,544  
31,632  
 (20) IT서비스 기획자
253,563  
5,274,110  
31,695  
 (21) IT기술영업
368,834  
7,671,747  
46,104  
 (22) IT품질관리자
367,144  
7,636,595  
45,893  
 (23) IT테스터
183,091  
3,808,293  
22,886  
 (24) IT감리
238,242  
4,955,434  
29,780  
 (25) IT감사
290,773  
6,048,078  
36,347  
 (26) 정보보호관리자
225,306  
4,686,365  
28,163  
 (27) 침해사고대응전문가
197,358  
4,105,046  
24,670  
 (28) IT교육강사
267,067  
5,554,994  
33,383  
 (29) 자료입력원
117,145  
2,436,616  
14,643  
계/평균
302,665  
6,295,432  
37,833  

 

 * SW기술자 평균임금은 기본급, 제수당, 상여금, 퇴직급여충당금, 법인부담금을 모두 포함한 결과임
 * 월평균임금은 일평균*근무일수(20.8일), 시간평균임금은 일평균÷8시간으로 각각 산정함
 * IT직무 중 (3)정보보호컨설턴트, (24)IT감리, (25)IT감사, (27)침해사고대응전문가, (28)IT교육강사는 유효응답표본이
   적어 활용시 유의해야 함

 * IT직무 중 (12)응용SW개발자 숙련도별 평균임금(숙련도, M/D) : (상) 312,270원, (중) 233,632원, (하) 190,872원
   (숙련도 기준은 응답업체 자체판단으로 분류됨)

 * 자료입력원은 IT직무에 해당되지 않음


[자료 출처 한국소프트웨어산업협회 KOSA 홈페이지]

 

컴퓨터를 키면 커서가 뱅글뱅글 돌면서 부팅이 다 될때가지 느린 경우가 있습니다.

여러가지 이유가 있겠지만, 시작프로그램에 등록되어 있는 프로그램들이 컴퓨터를 키면서 구동되는 영향도 만만치 않지요.


프로그램 마다 설치할때 시작프로그램 등록 여부를 선택할 수 있지만, 거의 대부분 '다음'을 눌러 설치해버리고 맙니다.


불필요한 시작프로그램이 시작되지 않도록 하려면  제거해버리거나 시작프로그램 사용중지를 설정해두면 됩니다.


1.   시작프로그램 사용 설정 방법

    • 작업관리자 실행 (단축키 : Ctrl+Shift+ESC)
    • 시작프로그램 탭 선택
    • 시작프로그램에서 제외하고 싶은 프로그램 선택 후 사용안함 클릭

 



반대로 윈도우 구동시에 자동으로 시작하고 싶은 프로그램은 시작프로그램에 등록해야합니다.


2.   시작프로그램 추가

    • win+r 키를 눌러 실행 입력 창 구동
    • shell:startup(현재 사용자용) 또는 shell:Common startup(모든 사용자용) 입력 후 엔터
    • 윈도우 탐색기 창에 시작하고자하는 프로그램의 실행파일을 복사하여 붙여넣기









저자    : 콜린 스튜어트 (Colin Stuart)

역자    : 이충호

출판사 : 한스미디어

분량    : 228쪽

가격    : 15,000원

발행일 : 2017년 11월 29일


구립 도서관에 들렸다가 신간 코너에서 우연히 발견하여 읽은 책.


영국왕립연구소 크리스마스 과학 강연이란?

영국왕립연구소에서 매해 크리스마스에 일반인들과 어린이를 위해 과학 주제를 정해 해당 분야의 최고 권위자가 강의를 한다고 합니다. 이 강의는 BBC에서 특집으로 방송으로도 볼수 있습니다. 크리스마스 과학 강연은 1825년 마이클 패러데이의 강연을 시작으로 2차 세계대전 기간의 몇년을 제외하고 매년 강연이 열렸으며, 현재까지 약 190년 이어져 오는 강연이라고 합니다.


열세 번의 시공간 여행은 영국왕립연구소 크리스마스 과학 강연(The Royal Institution Christmas Lectures)에서 우주 천문학 관련 주제만을 모아 소개한 책입니다. 1881년 강연부터 시작하여 순차적으로 점점 더 많은 지식과 발견으로 성장해가는 인류를 느낄 수 있는, 그리고 어려운 주제를 쉽게 이해할 수 있는 그런 책이었습니다. 


우주, 천체, 물리학, 시공간, 타임머신, 세상의 근원 등등 궁금하시면 꼭 읽어보세요. 추천드립니다.

주제에 비해 지루하지 않고 재미있습니다. 개인적으로 소장하고 싶은 책입니다.


이 책에서는 전체 13개의 강의를 소개하고 있습니다.


제1강 태양, 달, 행성 로버트 스타웰 볼, 1881년 
제2강 운석 이야기 제임스 듀어, 1885년 
제3강 우주여행 허버트 홀 터너, 1913년 
제4강 시간과 공간 속으로 제임스 호프우드 진스, 1933년 
제5강 일상생활 속의 천문학 해럴드 스펜서 존스, 1944년 
제6강 우주 탐사 버나드 러벌, 프랜시스 그레이엄-스미스, 마틴 라일, 앤터니 휴이시, 1965년 
제7강 타임머신 조지 포터, 1969년 
제8강 행성 칼 세이건, 1977년 
제9강 기원 맬컴 롱에어, 1990년 
제10강 우주 양파 프랭크 클로스, 1993년 
제11강 시간의 화살 닐 존슨, 1999년 
제12강 시간과 공간을 지나는 여행 모니카 그레이디, 2003년 
제13강 우주에서 살아남는 법 케빈 퐁, 2015년 

SW 구현 단계 대가 산정 방식에는 기능점수 방식과 투입공수에 의한 방식이 있습니다.


SW구현 단계 대가 산정 방식 요약 가기


이번에는 기능 점수 방식에 의한 소프트웨어 개발비에 대해 정리해보았습니다.


기능점수 방식이란?

기능점수(FP : Function Point) 방법은 사용자 관점에서 사용자가 요구하는 사용자에게 제공되는 기능을 최대한 정량적으로 산정하는 소프트웨어 규모 측정 방법입니다. ISO/IEC 14143(FSM : Functional Size Measurement)으로 SW 규모에 대한 국제 표준입니다.


기능점수 방식의 특징

- 소프트웨어가 사용자에게 제공하는 기능적 요구사항을 측정

- “소프트웨어가 어떻게 구현되었는지”의 공급자 관점이 아니라 “사용자가 어떠한 기능을 요구했는지”의 수요자 관점에서 측정

- 개발 이전에 업무량을 측정할 수 있음

- 개발은 물론 기획, 운영 등 전 수명주기에 걸쳐서 측정 가능


기능점수 방식 적용이 불합리한 사업 유형 (투입공수 방식 적용)
- 홈 페이지 디자인, 웹 접근성 개선, 동영상 등 콘텐츠 관련 정보화사업
- R&D 성격의 소프트웨어개발 사업
- 사용자에게 식별되는 기능규모에 비해 내부처리 복잡도가 현저히 높아 기능점수 방식 의 대가체계 적용이 불합리한소프트웨어개발 
- 데이터 튜닝 및 최적화, 테스트 등 기능점수 산정이 불가능한 경우
- 소프트웨어개발 관련 예산이 5천만원 미만인 사업


기능점수란 ?

기능점수(FP : Function Point)란 사용자 관점에서 측정된 소프트웨어 기능의 양으로, 사용자에게 제공되는 소프트웨어 기능의 규모를 측정하는 단위입니다. 

소프트웨어 기능은 사용자 관점에서 데이터 측면의 기능과 트랜잭션 측면의 기능으로 구분합니다.


소프트웨어 기능을 좀더 세분화하여 

데이터 기능에는 내부논리파일(ILF : Internal Logical Files), 외부연계파일(EIF : External Interface Files) 

트랜잭션 기능에는 외부입력(EI : External Input), 외부출력(EO : External Output), 외부조회(EQ : External in Inquiry)로 구분합니다.



용어가 입에 딱 붙지도 않고 이름만 보고 무엇인지 알수가 없습니다. 

아마도, 영어 용어를 그대로 직역했기 때문인 것 같습니다.


기능 점수는 차차 별도로 정리해보겠습니다.



SW 사업 구현 단계 대가 산정을 위한 방법입니다.


SW사업 대가산정에 대한 전반적인 내용은 아래를 참조하세요.


SW사업 대가산정 요약 보러가기


우선 구현 즉 개발 단계 대가 산정을 위한 방식은 아래 두가지가 있습니다.


1. 기능점수 방식에 의한 소프트웨어 개발비

개발 대상 업무와 요구 사항을 명확히 정의하고, 개발 규모(기능점수) 산정 방법(정통법 또는 간이법)을 결정하여 규모를 산정하는 방식으로 기능점수 방식으로 소프트웨어 개발비를 산정하기 위해서는 기능점수(Function Point)에 대한 이해와 산출 방법을 알아야 합니다.


기능점수(FP) 방식에 의한 SW개발비 산정 시에는 기능점수 단가에 '제경비' 및 '기술료'에 상응하는 항목이 이미 반영되어 있으므로 별도로 추가 산정하지 않습니다. 

기능점수를 산출하여 기능점수 단가 기준 개발 원가를 산출합니다.

최종 소프트웨어 개발비를 산정하기 위해 개발원가에 약 25%이내를 이윤으로 산정하고, 해당 소프트웨어 개발에 관련된 직접경비를 산정합니다.


산정된 비용을 모두 합하여 소프트웨어 개발비를 산정합니다.


SW개발비 = 개발원가 + 직접경비 + 이윤



2. 투입공수 방식에 의한 소프트웨어 개발비

투입 공수에 의한 방식은 소프트웨어 개발 정의에 따라 개발 대상 업무와 요구사항을 명확히 정의하여 업무별 특성을 고려하여 투입 인력의 기술자 등급을 결정하고 투입 기간을 결정하여 산정하는 방법입니다.


개발업무를 수행할 인력의 직접인건비를 계산합니다.

직접인건비 = 투입인력의 기술자등급별 공수 X 소프트웨어기술자 평균 임금


개발 업무를 수행할 인력의 제경비 및 기술료를 계산합니다.

제경비 = 직접인건비 X 110% ~ 120%

기술료 = (직접인건비 + 제경비) X 20% ~ 40%


소프트웨어 개발에 실제로 소요되는 직접경비를 산정합니다.


산정된 비용을 모두 합하여 소프트웨어 개발비를 산정합니다.

SW개발비 = 직접인건비 + 제경비 + 기술료 + 직접경비 


기능점수로 SW 개발비를 산출하고, 기능점수로 산출할 수 없는 인력 투입 (ex. 디자인, 화면 기획, 테스트 인력 등)은 투입공수 방식으로 별도 산정하여 총 SW 개발비를 산출하기도 합니다.


PC를 사용하다 보면 데스크탑이던 노트북이던 시스템 정보를 알아야 하는 경우가 있습니다.


모델명이 무엇인지, CPU는 무엇인지, 제조사는 어디인지, OS 버전은 어떻게 되는지 등등...


이런 정보는 'msinfo'를 실행하여 한번에 확인할 수 있습니다.


'윈도우 로고' +r 후 "msinfo" 입력 후 확인하면 아래 창과 같이 시스템 정보를 확인 할 수 있습니다.



이벤트 뷰어 실행 방법은 아래와 같습니다.


'윈도우 로고' + 'r' 후 실행창에서 'eventvwr' 입력 후 엔터



이벤트 뷰어 창이 실행되면 윈도우 이벤트 로그를 확인할 수 있습니다.


관리 이벤트 요약에는 이벤트 유형에 따라서 위험, 오류, 경고, 정보, 감사 성공의 리스트가 있습니다.


다른 건 신경쓰지 않더라도 위험으로 되어 있는 이벤트는 신경이 쓰입니다.


위험칸을 클릭하면 이벤트 리스트를 볼수 있으며, 해당 리스트를 더블 클릭하면 실제 발생한 순서에 따른 이벤트 로그를 확인할 수 있습니다.



아래 쪽에 보면 선택한 이벤트에 대한 설명이 있습니다. 그렇지만 설명을 보고 해결책을 찾기는 어렵습니다.


아래쪽 '자세히' 탭을 선택하면 뭔가 전문적인 로그처럼 보이는 내용으로 전환됩니다.



System 부분을 펼쳐서 나온 내용을 검색하는 방법도 있지만, 같은 이벤트에도 수많은 BugcheckCode 가 있습니다.

BugcheckCode는 상황에 따라서 다양하게 발생할 수 있습니다.


즉, 다양한 상황에서 발생할 수있기 때문에 BugcheckCode를 가지고 https://support.mircosoft.com에서 실마리를 찾는 것이 좋습니다.


먼저, BugcheckCode로 원인을 찾기 위해 검색을 하려면 10진수로 표현되어 있는 340이라는 코드를 16진수로 바꾸어 검색해야 합니다.


윈도우에서 간단히 진수 변환을 하는 방법은 윈도우의 계산기를 사용하는 것입니다.


계산기를 실행하여 왼쪽 삼선 메뉴를 클릭하여 '프로그래머'를 선택하면 아래와 같은 계산기로 전환됩니다.

아래쪽에 DEC를 선택하고 변환하고 싶은 십진수를 입력하면 HEC, OCT, BIN으로 자동 변환됩니다.



340을 16진수로 변환하니 154가 되었습니다.


검색어는 'BugcheckCode 0x00000154'로 하시면 관련 결과를 찾을 수 있습니다.


때르는 구글 검색에서 더 많은 정보를 얻는 경우도 있습니다.

+ Recent posts