전체글149 스택(Stack) Stack 자바에서 Stack은 java.util.Stack을 import하여 사용할 수 있으며, 자바의 컬렉션 프레임워크 중 List 인터페이스의 구현체이다. 직접 스택을 구현하지 않아도 자바에서 제공하는 라이브러리를 이용하면 쉽게 사용할 수 있다. Stack 개념 Stack은 '쌓다' 라는 의미로 어떠한 저장 공간에 데이터를 계속 쌓아올리는 것을 말한다. 위 그림처럼 쌓다보면 가장 마지막에 넣은 데이터를 먼저 꺼내게 되는데 이러한 구조 LIFO(Last In First Out)라고 한다. 스택이 비어있는데 데이터를 꺼내려고 하면 스택 언더플로우(Stack Underflow) 에러 발생 스택이 꽉 차 있는데 데이터를 더 넣으려고 하면 스택 오버플로우(Stack Overflow) 에러 발생.. 2023. 2. 28. 단방향 LinkedList에 대해 간략히 알아보자. LinkedList LinkedList 자료구조에 대해 간략히 알아보겠습니다. LinkedList는 자바 컬렉션 프레임워크 중 List 인터페이스의 구현체이다. List 자료구조의 특징이 순서가 있는 데이터 집합으로 중복이 허용된다. LinkedList 개념 LinkedList란 일렬로 연결된 데이터를 저장할 때 사용한다. 데이터를 저장할 수 있는 공간을 노드(Node)라 하며, 각 노드는 다음 데이터의 주소를 가지고 있다. 배열과 비교하기 배열의 구조는 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조이다. 따라서 배열의 크기를 한번 정하면 늘이거나 줄일 수가 없다. (고정적 크기) 따라서 배열에서 중간에 데이터를 추가하려면 새로운 크기의 배열을 다시 선언하여 복사해서 추가해야한다. 하지.. 2023. 2. 26. Java. 인터페이스를 사용하여 if else문 없애기! [코드 개선] Java. 무수히 많은 if else문 개선해보자. 이번에 회사에서 반복되는 if else문을 인터페이스(Interface)를 사용하여 개선하였습니다. 기존에 소스는 한 메서드에 대략 700줄을 차지 했는데 그렇게 차지한 이유는 무수히 많은 if else문 때문이었습니다. 메서드의 라인수가 700라인이나 되기 때문에 메서드의 역할을 파악하기가 힘들고, 유지보수하기가 굉장히 까다로워지기 때문에 개선할 필요성을 느꼈습니다. 개선한 내용은 https://jessyt.tistory.com/47 글을 적극적으로 활용하였습니다. 추가로 아래 소스는 회사의 소스와는 무관합니다. 소스코드: https://github.com/azurealstn/blog-summary/tree/main/refactoring 기존 예제소스.. 2022. 12. 15. HttpEntity, @RequestBody, @ResponseBody의 기능 (HTTP 메시지 컨버터) HttpEntity, @RequestBody, @ResponseBody의 기능 (HTTP 메시지 컨버터) @RequestParam과 @ModelAttribute는 요청 파라미터 즉, 쿼리 파라미터의 데이터를 조회하는데 사용되고, Http Message Body의 데이터는 조회할 수 없었다. (단, HTML Form에서 POST 요청은 제외) 그렇다면 Http Message Body의 데이터는 어떻게 조회할 수 있을까? 바로 예제를 통해 알아보자. 예제에서 다룰 데이터 포맷은 JSON 위주로 다룰 것이다. (제일 많이 사용하니까!) HttpEntity HttpEntity는 HTTP Message Body 데이터를 직접 조회할 수 있다. 또한 HTTP header와 body 정보를 편리하게 조회할 수 있다... 2022. 7. 21. @RequestParam과 @ModelAttribute 기능 @RequestParam과 @ModelAttribute 기능 이번에는 Spring에서 제공하는 @RequestParam과 @ModelAttribute에 대해 알아보자! @RequestParam Spring에서 제공하는 @RequestParam을 사용하면 요청 파라미터를 매우 편리하게 사용할 수 있다. 바로 예제를 살펴보자! 예제1 요청 url: http://localhost:8080/param1?name=mike&age=20 @Slf4j @RestController public class RequestParamEx { @GetMapping("/param1") public String param1( @RequestParam("name") String name, @RequestParam("age") int .. 2022. 7. 21. MVC패턴에 대해 알아보자. (Spring MVC) MVC패턴에 대해 알아보자. (Spring MVC) 서블릿 에 대해서도 조금 알게되었으니 이제 MVC 패턴에 대해 알아보도록 하자! MVC 패턴 사용 이유 MVC 패턴을 적용 안한 JSP를 예를 들어보자. JSP 페이지 안에는 자바 코드가 들어갈 수 있다. 따라서 비즈니스 로직을 넣을 수 있고, Connection 객체를 이용한 DB 연동도 할 수 있다. 또한 JSP는 클라이언트에게 View를 렌더링하는 역할도 수행한다. 여기까지만 봐도 JSP는 너무나 많은 역할을 가지고 있다. 이렇게 JSP가 많은 역할을 하게 되면 나중에 유지보수에도 굉장히 힘들어진다. JSP 페이지 안에 비즈니스 로직과 DB 연동 코드 모두 들어가 있으면 일단 코드 라인수도 많을 것이고, 비즈니스 로직을 수정하는데 여러가지 코드가 .. 2022. 7. 17. 이전 1 ··· 6 7 8 9 10 11 12 ··· 25 다음