본문 바로가기
728x90
반응형

분류 전체보기336

노드 기초 강의 (1) - NODE JS와 EXPRESS JS 다운로드 1. 정의 1) Node.js : 브라우저 속에서만 사용하던 자바스크립트를 서버사이드에서 사용할 수 있게 도와줌 2) Express.js : Node.js를 쉽게 사용할 수 있게 도와주는 프레임워크 3) BoilerPlate : 컴퓨터 프로그래밍에서 최소한의 변경으로 반복적으로 비슷한 형태를 띄게 되는 것을 말하며, 여러 곳에서 재사용 가능한 코드를 의미함 ex) 로그인, 회원가입, 버튼 등 여러가지 비슷한 형태의 코드를 반복적으로 작업하는 경우가 많기 때문에 이런 코드들을 보일러 플레이트로 미리 템플릿을 만들어서 갖추어 여러 곳에서 재사용하여 편리 및 용이함 2. 설치 - 터미널을 활용하여 'node -v'를 쳐서 node 설치 되어 있는지 확인 - node.js 홈페이지에서 설치 - 설치되었는지 터미.. 2022. 2. 26.
2. SpringBoot에서 테스트 코드 작성 1. 테스트 코드 - TDD : 테스트가 주도하는 개발로, 테스트 코드를 먼저 작성하는 것 - 단위 테스트 : TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것 TDD와 달리 테스트 코드를 꼭 먼저 작성하지 않아도 되며, 리팩토링도 포함되지 않음 2. 단위 테스트 - 개발단계 초기에 문제 발견을 도와줌 - 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인할 수 있음 - 기능에 대한 불확실성을 감소시킬 수 있음 - 시스템에 대한 실제 문서를 제공하며, 단위 테스트 자체가 문서로 사용할 수 있음 3. 테스트 코드 작성을 도와주는 프레임워크(xUnit) - 개발환경(x)에 따라 Unit 테스트를 도와주는 도구 - JUnit - Java - D.. 2022. 2. 26.
1. IntelliJ 활용한 SpringBoot 시작하기 1. IntelliJ IDEA 프로젝트 생성 - New Project 버튼 클릭하여 새로운 프로젝트 생성 - 프로젝트 유형으로 Gradle을 설정하며, Gradle에서 Java 체크한 후에 next 버튼 클릭 - ArtifactId는 프로젝트 이름 - Location은 설치 경로 - 프로젝트 그룹명과 아티펙트명 등록 화면 - Gradle 프로젝트를 SpringBoot 프로젝트로 변경 buildscript { ext{ //build.gradle에서 사용하는 전역변수를 설정하겠다는 의미 springBootVersion = '2.1.7.RELEASE' //spring-boot-gradle-plugin라는 // 스프링부트그레이들 플러그인의 2.1.7RELEASE를 의존성으로 받겠다. } repositories .. 2022. 2. 25.
소프트웨어 설계 - 4. 인터페이스 설계 4. 인터페이스 설계 1) 시스템 인터페이스 요구사항 분석/검증 - 구성 : 이름, 시스템, 범위(내용), 방식, 송신 데이터, 인터페이스 주기, 고려사항 - 요구사항 분석 절차 요구사항 선별 별도의 인터페이스 요구사항 목록 제작 자료 준비 시스템 인터페이스 요구사항과 관련된 자료 준비 요구사항 분류 기능적/비기능적 요구사항으로 분류 분석 및 수정 내용을 추가 및 수정 / 세분화 / 우선순위 부여 - 요구사항 검증 요구사항 검토 계획 기준과 방법, 참여자, 체크리스트, 관련자료, 일정 등. 검증 방법 동료검토, 워크스루(사전검토 후 회의), 인스펙션(검토 전문가). 프로토 타입 제작/ 관련 툴 사용. 검증 항목 완전성(누락여부) / 일관성(충돌여부) / 명확성(이해여부). 기능성 / 검증가능성 / 추적가.. 2022. 2. 25.
소프트웨어 설계 - 3. 어플리케이션 설계 3. 어플리케이션 설계 1) 소프트웨어 아키텍쳐 - SW아키텍쳐 - 뜻 : 기본구조, 개발기반 - 역할 : 품질유지, 원칙, 지침 - 모듈 : 부품 - 기본원리 - 모듈화 : 유지관리에 좋음.(많으면 통합 비용 증가, 적으면 개발비용 증가) - 추상화 : 포괄적 개념. 구체화하기 위해 피룡. 가성비. 구조파악 용이. - 단계적 분해 : 하향식. 추상화의 반복으로 더 많은 단계의 분해 가능 - 정보은닉 : 접근금지. 별도의 인터페이스 사용. 유지보수에 용이 - 품질속성 : 시스템(성능,보안) / 비즈니스(비용,자원) / 아키텍쳐(결함) - 설계과정 : 목표-시스템타입-아키텍쳐패턴-시스템구체화-검토 - 아키텍쳐패턴 : 미리 만들어 둔 공식 2) 아키텍쳐 패턴 - 레이어 : 상/하위 계층끼리 상호작용 -.. 2022. 2. 25.
소프트웨어 설계 - 2. 화면설계 2. 화면설계 1) 사용자 인터페이스 - 사용자 인터페이스의 3가지 분야 : 제어, 구성, 기능 - 사용자 인터페이스의 특징 - 만족도에 큰 영향을 끼치기 때문에, 가장 많이 변경됨 - 편리성과 가독성, 이해도를 높임 - 최소한의 노력으로 결과를 얻을 수 있도록 함 - 소프트웨어 아키텍처를 숙지해야 함 - 사용자 인터페이스의 구분 : CLI(텍스트, Command Line Interface), GUI(마우스, Graphical User Interface), NUI(말, 행동, Natural User Interface) - 사용자 인터페이스 기본 원칙 : 직관, 유효, 학습, 유연 - 사용자 인터페이스의 설계 지침 - 사용자 중심, 일관성, 단순성, 결과 예측 가능, 표준화, 접근성 - 명확성, 가시성, .. 2022. 2. 24.
소프트웨어 설계 - 1. 요구사항 확인 1. 소프트웨어 설계 1) 요구사항 확인 A. 소프트웨어 생명주기 : 소프트웨어 개발과정을 단계별로 나눈 것 폭포수 모델(Waterfall Model) 각 단계를 한번씩만 거침(되돌릴 수 있음). 단계별 철저한 검증 필요/매뉴얼 작성 불필요. 프로토타입 모형(Prototype Model) 디자인과 기능 중심으로 견본 개발 후 최종 개발 추후 발견될 오류 방지 스파이럴 모델(Spiral Model) 계획-분석(검증)-개발-평가(오류방지)의 단계를 반복 폭포수와 프로토타입의 장점 흡수하여 점진적 개발. 많은 사람의 요구사항을 반영하는 소프트웨어 개발에 용이. 스파이럴 모델(Spiral Model) 요구사항 반영 및 고객과의 의사소통 빈도를 낮추는 것이 목표. 여러 개발방법을 아우르는 모델. a. 폭포수 모형.. 2022. 2. 24.
Android_Java(36) - UsingMediaStore package kr.co.usingmediastore; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import android.Manifest; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.widget.ImageView; import android.widget.Toast;.. 2022. 2. 23.
Android_Java(35) - BatteryStatus 1. 서비스 1) 사용자 인터페이스 없이 백그라운드에서 실행되는 컴포넌트 - 배경 음악을 재생 - 웹 사이트에서 주기적으로 데이터를 읽어오는 경우 - 주기적으로 폰의 사용량을 계산 2) 시작 타입의 서비스 - 액티비티가 startService()를 호출하여서 서비스를 시작 3) 서비스의 생명 주기 - 서비스 요청 startService()를 호출 2. 브로드캐스트 리시버(Broadcast Receiver, BR) 0) 안드로이드 장치에서는 많은 이벤트들이 발생하는데, 이벤트를 받는 컴포넌트가 방송 수신자임. - 예) 안드로이드 시스템에서 배터리가 부족합니다 (ON AIR) => 방송 수신자 (앱), 방송 수신자 (앱) .... 1) 문자 메시지 도착, 배터리 방전, SD 카드 탈부착, 네트워크 환경 변화.. 2022. 2. 23.
Android_Java(34) - ServiceLifeCycle package kr.co.servicelifecycle; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Intent intent; Button btnStart, btnStop; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedI.. 2022. 2. 23.
728x90
반응형