트러블 슈팅이란?
2021. 8. 17. 17:40
개발용어
트러블 슈팅이란? 문제가 발생했을 때 원인을 규명하고 해결하는 작업을 의미한다. 트러블 슈팅의 과정은 문제 정의, 사실 정리, 원인 추론, 조치 및 방안 검토, 해결 과정으로 나누어진다. 문제 해결이 되면 해당 프로세스 사이클은 끝난다. 하지만 문제가 해결되지 않으면 원인 추론 단계를 다시 반복한다. 추론하는 방법은 여러가지가 있다. 예시로는 다음과 같다. - 원인을 한개씩 제거 - 가설을 세우고 테스트하기 - 스텝마다 디버깅코드 추가하기 추론과정이 끝나고 결과를 관찰하는 과정에서 테스트 케이스(Test Case)를 만들어서 진행하기도 한다.
컬렉션 프레임워크의 개념
2021. 8. 17. 17:34
개발용어
컬렉션이란? - 배열이 가장 기본적은 자료구조이며, DTO 또한 자료를 담는 하나의 방식이라고 볼 수 있다. 상위 인터페이스는 크게 List, Set, Queue로 분류되며 Map 같은 경우는 Collection 인터페이스를 상속 받고 있지 않지만 Collection으로 분류됨 컬렉션 프레임워크란? - 자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니다. 이러한 컬렉션 프레임워크는 자바의 인터페이스를 사용하여 구현됩니다. 컬렉션 프레임워크 주요 인터페이스 - 컬렉션 프레임워크에서는 데..
PSA란?
2021. 8. 17. 16:34
개발용어
- Spring의 PetClinic 예제를 보면 서블릿 어플리케이션임에도 불구하고 서블릿이 전혀 존재하지 않는다. 단지 @Controller 애노테이션이 붙어있는 클래스에서 @GetMapping, @PostMapping과 같은 @RequestMapping 애노테이션을 사용해서 요청을 매핑한다. 실제로는 내부적으로 서블릿 기반으로 코드가 동작하지만 서블릿 기술은 추상화 계층에 의해 숨겨져 있는 것이다. 이렇게 추상화 계층을 사용해서 어떤 기술을 내부에 숨기고 개발자에게 편의성을 제공해주는 것을 Service Abstraction이라 한다. 더하여 Service Abstraction으로 제공되는 기술을 다른 스택으로 간편하게 바꿀 수 있는 확장성을 갖고 있는 것이 Portable Service Abstrac..
클래스, 객체의 개념
2021. 8. 17. 16:26
개발용어
클래스란? - 객체를 만들어 내기 위한 설계도 혹은 틀 - 연관되어 있는 변수와 메서드의 집합 객체란? - 소프트웨어 세계에 구현될 대상 - 클래스에 선언된 모양 그대로 생성된 실체
인젝션이란?
2021. 8. 17. 16:23
개발용어
- 주입, 삽입이다. 공격자가 신뢰할 수 없는 입력을 프로그램에 주입하도록하는 공격을 의미하며 이를 통해 해당 프로그램의 실행 과정의 변경을 유도하거나 공격자의 변경 질의를 통해 결과값을 다르게 나오도록 할 수 있다. 종류 - SQL Injection 응용 프로그램 보안 상의 허점을 의도적으로 이용해, 악의적인 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격 방법이다. -Code Injection 유효하지 않은 데이터를 실행함으로써 야기되는 소프트웨어 버그의 부당한 사용이다. - DLL Injection 다른 프로세스의 주소 공간 내에서 DLL을 강제로 로드시킴으로써 코드를 실행시키는 기술이다.
오버로딩과 오버라이딩의 차이
2021. 8. 17. 16:20
개발용어
- 오버로딩 같은 이름의 함수(메소드)를 여러개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있게함 class OverloadingTest{ //이름이 cat인 메서드 void cat(){ System.out.println("매개변수 없음"); } //매개변수 int형이 2개인 cat 메서드 void cat(int a, int b){ System.out.println("매개변수 :"+a+", "+b); } //매개변수 String형이 한 개인 cat 메서드 void cat(String c){ System.out.println("매개변수 : "+ c); } } public class OverTest { public static void main(String[] args)..
Array와 List의 차이
2021. 8. 17. 16:14
개발용어
- 배열은 인덱스를 가진 데이터의 집합이고, 리스트는 인덱스 없이 순차적으로 저장된 데이터의 집합이다. - 배열은 중간에 데이터 삽입/삭제가 어렵다, 하지만 리스트는 중간에 데이터 삽입/삭제가 쉽다. - 배열은 인덱스에 따라 값을 유지하므로 원소가 삭제되어도 빈자리가 남게되어 메모리가 낭비된다. 리스트는 빈틈없는 데이터 적재라는 장점을 가진다. 원소를 삭제했을 때 삭제된 데이터 뒤 원소로 빈틈없이 연속적으로 위치시킨다.
제너릭을 사용하는 이유?
2021. 8. 17. 16:08
개발용어
- 컴파일 시 강한 타입 체크를 할 수 있습니다. - 비제너릭 코드는 불필요한 타입 변환을 하기 때문에 프로그램 성능에 악영향을 미칩니다. 다음 아래 코드를 보면 List에 문자열 요소를 저장했지만, 요소를 찾아올 때는 반드시 String으로 타입 변환을 해야합니다. List list = new ArrayList(); list.add("hello"); String str = (String) list.get(0); 다음과 같이 제너릭 코드로 수정하면 List에 저장되는 요소를 String 타입으로 국한되기 때문에 요소를 찾아올 때 타입 변환을 할 필요가 없어 프로그램 성능이 향상됩니다. List list = new ArrayList(); list.add("hello"); String str = list.g..
객체란
2021. 8. 17. 16:04
개발용어
객체란? - 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신과 다른 것을 식별가능한 것을 말한다. 예를 들어 물리적으로 존재하는 사람, 책, 자동차, 컴퓨터 등 과 추상적인 학과, 강의, 주문 등이 모두 객체가 될 수 있다. 객체는 크게 속성과 동작으로 구성되어 있다. - 사람의 속성 : 이름, 나이 등 - 사람의 동작 : 말하다, 걷다, 웃다 등 - 자동차의 속성 : 색상, 모델명 등 - 자동차의 동작 : 달린다, 멈춘다 등 과 같다. 객체 지향 프로그래밍의 특징 1. 캡슐화 - 캡슐화란 이름에서 유추할 수 있듯 캡슐처럼 묶어 내부 구조를 감추는 것을 말한다. 외부에서는 내부의 구조를 알지 못하며, 객체가 노출하여 제공하는 필드와 메소드만 이용할 수 있다. 2. 상속 - 일반적으로 상속..
web server was의차이
2021. 8. 17. 15:56
개발용어
웹서버란? 클라이언트가 웹 브라우저에서 어떠한 페이지 요청을 하면 서버에서 그 요청을 받아 정적 콘텐츠를 제공하는 서버이다. 여기서 정적 콘텐츠란 단순 HTML 문서, CSS, JAVASCRIPT, 이미지 파일 등 즉시 응답가능한 콘텐츠이다. WAS란? 웹 서버와 웹 컨테이너가 합쳐진 형태로서, 웹 서버 단독으로 처리할 수 없는 데이터베이스의 조회나 다양한 로직 처리가 필요한 동적 콘텐츠를 제공한다.