달력

12

« 2019/12 »

  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  



 

 

프로그래밍 언어(Programming language)

·         인간과 컴퓨터 사이의 의사소통을 위한 프로그래밍 언어

·         컴퓨터 시스템을 동작시키기 위한 프로그램 작성 언어를 말합니다.

·         컴퓨터 시스템을 구동시키는 소프트웨어를 작성하기 위한 형식언어입니다.

·         기계(컴퓨터)에게 명령 또는 연산을 시킬 목적으로 설계되어 기계와 의사소통을 있게 해주는 언어를 뜻합니다.

·         대표적으로 C, Java, Python, R 등이 있습니다.

 

 

https://bit.ly/2JIn8T5

https://bit.ly/2I2ziD8

https://en.wikipedia.org/wiki/Programming_language

 

 


 


Posted by codedragon codedragon

댓글을 달아 주세요

 

 

 

컴파일(Compile)

·         프로그래밍 언어로 작성된 프로그램을 번역하고, 컴퓨터에서 실행할 있는 기계어 프로그램으로 고치는 과정 말합니다.

·         컴파일이 끝나 기계어로 변환된 파일을 오브젝트 파일(object file)라고 하며 .o .obj 파일 확장자를 가집니다.

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

요구사항 분류(Requirement Classification)

요구사항을 다음과 같은 기준으로 분류합니다.

 

·       요구사항이 기능인지 비기능인지

·       요구사항이 하나 이상의 고수준 요구사항으로부터 유도된 것인지 또는 이해관계자나 다른 원천(Source)으로부터 직접 발생한 것인지

·       요구사항이 제품에 관한 것인지 프로세스에 관한 것인지

·       우선순위가 높은 것인지 여부

·       요구사항의 범위(요구사항이 소프트웨어에 미치는 영향의 범위)

·       요구사항이 소프트웨어 생명 주기 동안에 변경이 발생하는지 여부

 

 

 

기능적·비기능적 요구사항

https://codedragon.tistory.com/9063

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

구현 기법에 따른 분류

구분

설명

컴파일 방식의 언어

·         고급 언어를 기계어로 번역하는 방식의 언어를 의미합니다.

·         FORTRAN, PASCAL, C, C++ 등이 컴파일 방식의 언어에 속합니다.

·         컴파일 방식은 실행에 필요한 정보가 컴파일 시간에 계산되어 실행 속도가 높다는 특징을 가지고 있습니다.

·         실행속도는 빠르지만 운영체제에 종속되어 있습니다.

인터프리터 방식의 언어

·         고급 언어 명령문을 매번 하나씩 번역하고 실행하는 방식의 언어를 의미합니다.

·         BASIC, PROLOG, LISP, SNOBOL, HTML, Javascript, Python 등이 인터프리터 방식의 언어에 속합니다.

·         프로그램 실행 시에 계산된다는 특징을 가지고 있습니다.

·         실행속도가 느리지만 운영체제에 구속을 받지 않습니다.

혼합형 방식의 언어

·         고급 언어를 컴파일 하여 중간 언어로 변환한 , 인터프리터에 의해 번역을 실행하는 방식의 언어를 의미합니다.

·         JAVA 여기에 속합니다.

 

 


'Development > Software Engineering' 카테고리의 다른 글

컴파일(Compile)  (0) 2019.10.12
요구사항 분류(Requirement Classification)  (0) 2019.09.29
구현 기법에 따른 분류  (0) 2019.09.26
특수기호 (영문명, 한글명) 정리  (0) 2019.09.21
REPL(Read–Eval–Print Loop)  (0) 2019.09.21
프로그래머(programmer)  (0) 2019.09.21
Posted by codedragon codedragon

댓글을 달아 주세요




 

기호

영문이름

한글이름

&

Ampersand

[ˈæmpəsænd] (앰퍼샌드)

AND기호

*

Asterisk

[ˈæstərɪsk] (애스터리스크)

별표

/

Slash

[slæʃ] (슬래시)

 

Virgule

[və́:rɡju:l] (버귤)

빗줄표, 슬러시

Back Slash (백슬래시)

역빗줄표, 역슬러시

\

Won

[wɑ́n] ()

원화 표시

@

At

[ǽt] ()

 

골뱅이

!

Exclamation Point (엑스클러메이션 포인트)

[èkskləméiʃən]

 

Exclamation mark

느낌표

#

Crosshatch

[krɔːshæ̀tʃ]  (크로스해치),

 

Sharp

[ʃɑːrp] ()

반올림표

$

Dollar

[ˈdɑːlə(r)] (달러)

달러 표시

?

Question mark

[ˈkwestʃən mɑːrk](퀘스천 마크)

물음표

^

Circumflex

[ˈsɜːrkəmfleks] (서컴플렉스)

꺽쇠, 곡절부호

|

Vertical Bar

[ˈvɜːrtɪkl] (버티컬 )

세로직선

~

Tilde

[ˈtɪldə] (틸드)

물결표

=

Equal Sign

[ˈiːkwəl saɪn] (이퀄사인)

등호

+

Plus Sign

[plʌs saɪn] (플러스사인)

더하기

-

Minus Sign (마이너스사인)

빼기

_

Underscore

[ˌʌndərˈskɔː(r)] (언더스코어)

 

Underline

[ˌʌndərˈlaɪn] (언더라인)

밑줄

{}

Brace

[breɪs] (브레이스)

중괄호

{

Left Brace (레프트 브레이스)

중괄호 열기

}

Right Brace (라이트 브레이스)

중괄호 닫기

[]

Bracket

[ˈbrækɪt] (브렛킷)

대괄호(각괄호)

[

Left Bracket (레프트 브래킷)

대괄호(각괄호) 열기

]

Right Bracket (라이트 브래킷)

대괄호(각괄호) 닫기

()

Parenthesis

[pəˈrenθəsɪs] (퍼렌씨시스)

괄호

(

Left Parenthesis (레프트 퍼렌씨시스)

()괄호열기

)

Right Parenthesis (라이트 퍼렌씨시스)

()괄호닫기

Less Than Sign (레스댄 사인)

표제괄호열기

Greater Than Sign (그레이터댄 사인)

표제괄호닫기

"

Double Quotation Mark(더블 쿼테이션 마크),

 

Quotation Marks

[kwoutéiʃən]

따옴표

이중 따옴표

인용부호

'

Apostrophe(아포스트로피)

[kwoutéiʃən]

작은따옴표

단일 따옴표

생략, 소유격부호

-

Hyphen

[ˈhaɪfn] (하이픈)

 

Dash

[dæʃ] (대시)

붙임표, 이음표

.

Period

[ˈpɪəriəd] (피리어드)

 

Full Stop (풀스탑)

마침표

,

Comma

[ˈkɑːmə] (콤마)

쉼표

`

Grave

[ɡreɪv] (그레이브)

저음부호

;

Semicolon

[ˈsemikoʊlən] (세미콜론; 세마이콜론)

작은 대비표

:

Colon (콜론)

[kóulən]

대비표

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

REPL(Read–Eval–Print Loop)

·         레플

·         명령어를 한줄씩 입력하며 실행 결과를 바로 확인할 있는 대화식방식입니다.

·         다양한 언어에서 REPL 방식의 콘솔을 제공합니다..

·         주피터 노트북이나 파이썬(또는 IPython) 콘솔도 REPL방식으로 동작합니다.

 

 

https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop

https://zetawiki.com/wiki/REPL

 

 

 

 

 

REPL Tool

프롬프트를 통해 사용자로부터 입력을 받아 (Read), 문장을 즉시 해석하고 평가하며 (Evaluate), 출력 결과를 표시한 (Print), 다시 프롬프트로 돌아가는 (Loop) 프로그램을 흔히 REPL 툴이라 합니다.

 

Posted by codedragon codedragon

댓글을 달아 주세요



 

프로그래머(programmer)

·         개발자(developer)

·         프로그램 만드는 일을 하는, 혹은 그게 직업인 사람

·         코딩(프로그래밍) 하는 사람

·         컴퓨터 프로그래밍을 하고 컴퓨터 소프트웨어를 개발하는 사람

 

 

https://bit.ly/2JJFDXm

https://bit.ly/2qkqqAM

https://en.wikipedia.org/wiki/Programmer

 

 


https://bit.ly/2WoYJYE

https://bit.ly/2MdR8bn

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

사용성 테스트(Usability Testing)

·         사용자 관점에서의 기본적인 사용성 테스트입니다.

·         사용자가 쉽게 접근 가능하고 여러 다양한 사용 케이스에서 문제없이 사용 있는지 확인합니다.

·         블랙박스 테스트 연관 있는 테스트입니다.

·         일반적으로 기존 소프트웨어 제품이나 비슷한 다른 제품과 비교 진행합니다.(얼마나 사용하기 쉬운가?, 얼마나 사용법을 파악하기 쉬운가?, 얼마나 편리함을 주는가?)

 

http://bit.ly/2IAmCVM

https://en.wikipedia.org/wiki/Usability_testing

 

 

 

 

 

사용성 테스트의 효과

·         좋은 품질 소프트웨어

·         사용하기 쉬운 소프트웨어

·         사용법을 이해하기 쉬운 소프트웨어

 

 

 

 

 

사용성 테스트의 장점

·         테스트 비용이 많이 들지 않고 비교적 쉽게 테스트하는 것이 가능합니다.

·         사용자 관점에서 테스트를 진행합니다.

·         개발자들이 미처 생각하지 못했던 오류 발견 가능합니다.

·         사용성 향상 품질 향상 기여할 있습니다.

·         파워 유저 레벨의 수준 높은 테스터가 테스트 진행 사용자에게 좋은 소프트웨어 제공 가능

 

 



Posted by codedragon codedragon

댓글을 달아 주세요



 

프레임워크에 대한 이해

https://codedragon.tistory.com/5939

 

 

 

 

 

데이터 저장계층 또는 영속계층(Persistence Layer)에 대한 이해

https://codedragon.tistory.com/6467

https://codedragon.tistory.com/4758

 

 

 

 

 

 

접근 지정자(Access modifier)

https://codedragon.tistory.com/2419

 

 

 

 

 

 

서버 프로그램 테스트하기

Step

설명

테스트 케이스를 작성합니다.

테스트 케이스 작성해야 요소를 작성합니다.

테스트 데이터를 작성합니다.

테스트에 필요한 DB Data 또는 File Data를 규칙에 맞게 생성합니다.

테스트 도구를 설정합니다.

JUnit을 사용하기 위한 Wizard를 선택하고 Next를 클릭합니다.

Test Case의 이름을 입력하고 Finish를 클릭합니다.

테스트 도구를 실행합니다.

테스트 프로그램 오른쪽 버튼 클릭 후 Run As…를 이용하여 수행합니다.

테스트 결과를 명세화합니다.

테스트 결과를 확인합니다.

테스트케이스 계획서에 결과 및 필요사항을 기록합니다.

결함을 보완합니다.

오류 디버깅을 통해 결함을 보완합니다.

https://codedragon.tistory.com/5950

 

 

 

 

 

서버 프로그램 작성 시 요청 URL 생성(접속경로) 예시

server

localhost

port

8080

context root

/system

type

GET

 

@RequestMapping("/test/testMethod.do")

public ModelAndView testMethod(@RequestParam Map<String, Object> params) {

     ModelAndView mv = new ModelAndView();

     // : 315

     int userIdx = Integer.valueOf(params.get("userIdx").toString());

     // : NCS

      String userName = params.get("userName").toString();

     mv.addObject("today", "2017-11-13");

     mv.setViewName("/test/returnPage");

      return mv;

}

https://codedragon.tistory.com/8172

 

 

http://localhost:8080/system/test/testMethod.do?userIdx=315&userName=NCS

 

 

 

 

 

jQuery 통한 문서객체 접근 코드 예시

HTML문서의 [비밀번호 입력][비밀번호 확인] 값을 jQuery 이용해 가져오고,

그 값을 비교하여 다를 경우 경고창을 표시하는 코드 예시입니다.

 

HTML

<label class="block clearfix">

      비밀번호 입력

      <span class="block input-icon input-icon-right">

           <input type="password" id="passwd" name="passwd"/>

      </span>

</label>

<label class="block clearfix">

      비밀번호 확인

      <span class="block input-icon input-icon-right">

           <input type="password" id="rptPasswd"/>

      </span>

</label>

jQuery

var userPw1 = $('#passwd').val();

var userPw2 = $('#rptPasswd').val();

if(userPw1 != userPw2){

      alert("비밀번호가 다름");

      return;

}

https://codedragon.tistory.com/6591

 

 

var userPw1 = $('#passwd').val();

var userPw2 = $('#rptPasswd').val();

if(userPw1 != userPw2){

      alert("비밀번호가 다름");

      return;

}

 

 

 

 

 

비동기 호출을 하는 코드 예시

URL

/weather/getInfo.do

 

Parameter

날짜(date)=20180413,

항목(item)=temp,

구분(type)=avg

Code

$.ajax({

      url:  /wpf/weather/getInfo.do ,

      type: 'POST' ,

      data: {date:20180413, item:temp, type:avg},   

      success: function(result, textStatus, jqXHR) {

      },

      error: function(jqXHR, textStatus, errorThrown) {

      }

});

 

 

(A) /wpf/weather/getInfo.do

(B) {date:20180413, item:temp, type:avg}

 

 

 

 

 

 

서버 프로그램 작성 시 파라미터 전달 오류 분석

434 Line에서 파라미터를 Map에서 꺼내기 위해 get 메서드를 사용하고, 이때 key"userIdx" 입력하였다. 하지만 요청에 해당 key (value) 없기 때문에 Null 반환되었습니다.

Integer.valueOf() 메서드는 String 타입의 값(value) int 형으로 변환(casting) 해주는데 매개변수가 null 이기 때문에 에러가 납니다. , /test/testMethod.do 요청 JSP에서 파라미터를 제대로 입력하지 않아 오류가 발생합니다.

 

호출 방식

GET

호출 URL

http://localhost:8080/grid/test/testMethod.do

Exception

Exception : 

java.lang.NullPointerException

    com.edu.controller.BoardController.testMethod(BoardController.java:434)

    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

  ...

CODE

430      @RequestMapping("/test/testMethod.do")

431      public ModelAndView testMethod(@RequestParam Map<String, Object> params) {

432           ModelAndView mv = new ModelAndView();

433           

434           int userIdx = Integer.valueOf(params.get("userIdx").toString());     // 에러

435           

436           String userName = params.get("userName").toString();

437

438           mv.addObject("today", "2017-11-13");

439           mv.setViewName("/test/returnPage");

440           return mv;

441      }

https://codedragon.tistory.com/5938

https://codedragon.tistory.com/5920

https://codedragon.tistory.com/5941

 

Posted by codedragon codedragon

댓글을 달아 주세요

 

 

디자인 패턴 사용 이유

·         소프트웨어 설계시 디자인 패턴을 고려하는 이유입니다.

·         디자인 패턴은 문제 상황에 대한 해결책을 제시하고 객체 지향 설계 원칙에 대한 가이드를 제공합니다.

 

구분

설명

패턴

패턴은 수학적으로 증명된 알고리즘이 아닌 경험에 의해 축적된 지식 체계입니다. 디자인 문제가 발생하게 되면 소프트웨어 디자인 패턴을 이용해 이용해서 문제를 해결할 있습니다.

체계화

문제상황에 대한 체계회된 해결책을 제공합니다.

일반화될 있는 규칙을 찾고 규칙에 따라 해결책을 분류하여 체계화된 것입니다.

상호 전달

디자인 패턴은 각각의 이름을 가지고 있습니다. 이름을 사용하면 복잡한 커뮤니케이션상의 상호 지식 전달을 용이하게 합니다.

어떤 복잡한 구조를 설명하기 보다는 사용된 패턴의 이름을 가지고 설명을 하게되면 간단하고 정확하게 의사전달을 있어 회의시 시간을 절약할 있습니다.

 

 


Posted by codedragon codedragon

댓글을 달아 주세요