본문 바로가기

분류 전체보기

(22)
RequestParam, RequestBody, MyBatis 는 어떻게 객체를 매핑할까? 1. Controller RequestArgument Test 🚫 NoArgsConstructor curl http://localhost/test353?name=a @Controller public class ConstructTestController { @GetMapping(value = "/test353") public void test(ConstructTest test) { System.out.println(test); } } public class ConstructTest { private String name; private String regCd; private String carNo; } b. ✅ ArgsConstructor curl http://localhost/test353?name=a ..
가비지 컬렉션 작동 원리 가비지 컬렉션 이란? Garbage Collection 쓰레기 수집, 여기서 쓰레기는 프로그램이 동적으로 할당 했던 메모리 영역 중에서 필요없게 된 영역을 의미한다. 필요 없게 된 영역을 그대로 둔다면, 사용하지 않지만 선점하고 있는 메모리의 양이 늘어나게 되며, 그만큼 메모리가 낭비된다. 이런 현상을 메모리 누수 ( Memory Leak ) 라고 한다. Unmanaged 언어인 C, C++ 등은 이런 메모리 누수 현상을 직접 다뤄야 하지만, Managed 언어인 Java 는 가비지 컬렉션이라는 개체가 알아서 이를 해결해 준다. name 이라는 변수에 "홍길동" 이라는 객체가 담겨 있다가 "강백호" 객체를 name 에 할당해주면, "홍길동" 객체는 참조되지않는 객체가 된다. 이런 객체들을 Java 의 G..
1-4 인터페이스 설계 시스템 인터페이스 요구사항 분석 독립적으로 떨어져 있는 시스템끼리 서로 연동하여 상호작용하기 위한 접속 방법이나 규칙 인터페이스 이름, 주기, 연계 대상 시스템, 연계 범위 및 내용, 연계 방식, 송신 데이터, 기타 고려사항 등 시스템 인터페이스 요구사항 분석 기능적 요구사항 비기능적 요구사항 요구사항 명세 시스템 인터페이스 요구사항 분석 절차 요구사항 목록 관련 자료 준비 기능적, 비기능적 요구사항으로 분류 요구사항 분석 이해관계자에 전달 인터페이스 요구사항 검증 요구사항의 명세서를 검토하고 베이스라인을 설정하는 것 요구사항 검증을 통하여 인터페이스 설계 및 구현에 오류를 줄여 비용을 절감할 수 있다. 요구사항 검토 계획 수립 검토 기준 및 방법 참여자 선정 검토 체크리스트 작성 관련 자료 수집 검토 ..
1-3 애플리케이션 설계 소프트웨어 아키텍처 소프트웨어의 골격이 되는 기본 구조 이해관계자들의 의사소통 도구, 비기능적 요구사항의 제약, 기능적 요구사항의 구현 모듈의 기능, 인터페이스의 결정 모듈화 : 시스템의 기능을 모듈 단위로 나눔 추상화 : 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화 단계적 분해 : 하향식 설계 전략으로 구체화 정보 은닉 : 정보를 감추어 접근, 변경 못하게 함 품질 시스템 성능 요청을 적절하고 빠르게 처리 보안 허용되지 않은 접근 막음 가용성 장애 없는 서비스 기능성 요구 기능 만족하게 처리 사용성 사용자가 명확하고 편리하게 사용 변경용이성 다른 하드웨어나 플랫폼 동작 확장성 용량, 처리능력 확장 기타속성 테스트 용이성, 배치성, 안정성 등 비즈니스 시장 적시성 정해진 시간에 맞춰 출시 비용과 ..
1-2 화면설계 사용자 인터페이스 (UI) 사용자와 시스템 간의 상호작용이 원활하게 이뤄지도록 도와주는 장치나 소프트웨어. 요즈음에는 기능, 정보 전달을 위한 표현 방법 등으로도 사용됨. 특징 변경이 자주됨. 편리하고 가독성을 높임 작업 기능을 구체적으로 보여줌 설계 전 소프트웨어 아키텍처 숙지해야 함 종류 CLI : 텍스트 형태 GUI : 이미지 형태 NUI : 말이나 행동으로 조작 원칙 직관성 : 쉽게 이해 유효성 : 정확하고 완벽 학습성 : 쉽게 배우고 익힘 유연성 : 사용자의 요구사항 최대한 수용 설계 지침 사용자 중심, 일관성, 단순성, 결과 예측 가능, 가시성, 표준화, 접근성, 명확성, 오류발생 해결 UI 표준 및 지침 웹의 3대요소가 고려되었는지 확인. 웹 표준 : HTML, JavaScript 등에 대한..
1-1 요구사항 확인 소프트웨어 생성주기 모델 특징 폭포수 모델 (Waterfall) 1. 각 단계를 확실하게 함 2. 대신 뒤로는 못돌아감 3. 그렇기 때문에 단계마다 메뉴얼을 꼭 작성 해야함 프로토타입 모델 (Prototype) 1. 미리 한번 만들어봄 2. 그래서 폭포수 보다는 나음 3. 요구사항이 애매할때 사용 가능 나선형 모델 (Spiral) 1. 폭포수와 프로토타임 장점 합침 2. 위험 분석 갖춤 3. 큰 소프트웨어에서 좋음 애자일 모델 (Agile) 1. 설계 개발 테스트의 반복 2. 반복과정에서 고객과 의사소통 3. 그래서 수정 용이함 스크럼 기법 스크럼이란 팀이 중심이되어 개발의 효율성을 높인다는 의미. 구성원 제품 책임자 (PO) 백로그 작성 및 우선순위 지정 그래서 제품을 좀 아는 의뢰인이 담당함 스크럼 ..
웹 서비스 작동원리 웹 서비스란 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템 클라이언트 와 웹서버의 통신을 살펴보겠다. 클라이언트와 웹 서버는 HTTP 프로토콜을 통해서 통신한다. HTTP 프로토콜은 서로 통신하기 위한 규약이다. 클라이언트는 요청에 맞게 무엇을 어떻게 등을 표현하는 Method, URL 등을 보내며, 웹 서버는 응답에 맞게 요청이 적절했는지, 어떤형식의 데이터를 보내는지 등에 맞는 Status, Content-Type 등을 보낸다. 웹 서버의 단점은 정적 데이터만 보낼 수 있다는 것이다. 그래서 웹 컨테이너 가 생겼다. Web Application Server, 즉 WAS 는 웹 서버와 웹 컨테이너를 포함한 용어다. 정적 데이터만 응답 할 수 있다는 단점을 Web..
JVM 작동원리 JVM 은 Java Virtual Machine 의 약자로, 자바를 동작하게 해주는 소프트웨어 이다. (겪어 보지 못한) 다른 이전 언어들은 OS 마다 개발을 달리 해줘야 했다고 한다. 그러나 Java 언어 창시자는 OS 마다 개발하기 귀찮았던건지 아주 편리하게 OS 에 상관없이 개발할 수 있게 만들어 줬다. 그 역할이 JVM 이 하는 가장 큰 역할이라고 생각한다. JVM 을 살펴보겠다. JVM 은 클래스 파일을 읽는다. Class Loader 는 클래스 파일을 가져오는 역할을 한다. Execution Engine 은 가져온 클래스 파일을 번역하는 역할을 한다. Runtime Data Areas 는 코드를 진행하여 OS 에 명령을 내리는 역할을 한다. 한 단계 더 들어가 보겠다. Execution Eng..