분류 전체보기 58

테크레터 1편. IoC와 DI가 뭔가요?

안녕하세요. IoC와 DI는 스프링 프레임워크를 이해하기 위해 꼭 필요한 개념이라고 생각해요. 간단하게 짚고 넘어갈게요. 1. IoC(Inversion of Control) 흔히 제어의 역전이라고 말하며, 보다 정확한 표현으로는 프로그램의 제어 흐름을 직접 제어하는 것보다 외부에서 관리되게 해야한다 입니다. 스프링에도 그 뜻이 담겨있습니다. 프레임워크 : 실행을 포함한 전체적인 흐름을 직접 제어하고, 개발자는 필요한 코드를 작성합니다. 라이브러리 : 개발자가 필요한 코드를 호출해가며 프로그램의 전체 흐름을 직접 제어합니다. 스프링 프레임워크는 IoC을 지원하도록 개발되었습니다. 필요에 따라 스프링에서 개발자의 코드를 호출해서 사용하며 전체적인 흐름을 관리합니다. (개발자 입장에서는 외부에서 관리되는 것처..

테크레터 2023.12.09

scanner 사용시 입력 버퍼 비우기

안녕하세요. 오늘은 scanner 사용시에 알아두면 좋은 팁(?)을 전달해드리려고 합니다. 결론부터 말씀 드리면 입력버퍼 비우기입니다. scanner부터 알아보겠습니다. 1. scanner 사용자로부터 입력값을 받아서 출력하는 프로그램을 만들때 사용하는 라이브러리입니다. API 공식문서를 통해 예제 따라해보시면서 익히시길 바랍니다. https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html scanner의 핵심은 System.in 과 System.out 입니다. System.in 키보드나 마우스와 같은 입력 장치를 통해 들어오는 표준 입력 값 System.out 모니터와 같이 출력 장치에서 내보내는 값 2. 입력 버퍼 비우지 않았을때 문제점 아래 ..

Java 2023.12.05

자바 메모리 구조

들어가기에 앞서.. 1. 왜 메모리(구조)를 배워야 할까요 (자바말고도) 개발자는 어떤 상황에서든 문제를 해결할 수 있어야 합니다. 예를 들어 주력 서비스를 개발해서 런칭해 웹사이트 오픈을 했어요. 근데 회사 서버컴퓨터 성능이 뒷받침 해주질 않아서 실제로 서비스를 이용하는 고객들이 불편함을 느낀다면? 고객 이탈이 발생할 겁니다. 결국 서비스 최적화를 위해 SW 로직 구현 뿐만 아니라 컴퓨터 HW(CS)의 전반적인 구조를 알고 있어야 해요. 그리고 무엇보다도 대부분의 회사 경영진이 좋아할 겁니다^^;; 저비용 고효율..모든 비즈니스 씬에서 먹히는 논리죠. 암튼. CPU, 메모리는 용량/성능/비용문제로 연결돼요.(클라우드 환경도 다르지 않다고 봐요) 그러니 기본 지식 정도는 알고 있어야 해요. 2. 자바 메..

Java 2023.12.02

인텔리제이 properties 한글 인코딩 - error화면 출력시 ???? 발생

고생 좀 했는데 IDE관련 설정 문제였네요. 1. 오류발생 오류 코드를 관리하고 처리하기 위해 errors.properties를 도입했습니다. 사용자의 입력값이 조건에 맞지 않으면 오류 코드를 출력합니다. 그러나. 한글 출력이 안됨. 2. 원인&해결 공식 문서을 살펴보면 IDE 관련 문제로 보입니다. 자바 표준에 한글이 정의되어 있지 않다면 이스케이프 시퀀스로 인식된다. 그런 경우 설정 방법을 변경해주면 된다. The Java 1.8 API is designed to use the ISO 8859-1 encoding for properties files. You can use escape sequences for characters that are not defined by this encoding. I..

알쓸신잡 2023.11.30

MockMVC @RequestParam 사용시 IllegalArgumentException 발생

@RequestParam관련 출처 @RequestParam annotation to bind Servlet request parameters. 파라미터 이름으로 바인딩처리되네요. 스프링이 제공하는 @RequestParam 를 사용하면 HTTP 요청 파라미터를 보다 편리하게 사용할 수 있습니다. 0. 상황 이전 게시글에서 @getMapping → @PostMapping으로 변경하여 Controller 테스트 중이었습니다. 실제 서버로부터 데이터를 받는 환경을 테스트하기 위해 @PostMapping에 파라미터값을 추가하였습니다. 다만 로그를 찍는 과정에서 아래와 같은 에러가 발생했습니다. 1. 에러 코드 jakarta.servlet.ServletException: Request processing faile..

에러 2023.11.28

프로젝트준비과정 - MockMVC Controller 테스트

개별 프로젝트로 "나만의 블로그"를 개발하려고 합니다. 다른 개발자분들은 어떻게 개발하셨는지 참고하고 있는데요. "MokcMVC"라는 클래스가 많이 보이네요. 한번 알아보겠습니다. 1. MockMVC 스프링 문서와 다른 블로그를 살펴보니, 개발한 웹 프로그램을 실제 서버에 배포하지 않고도 테스트를 위한 요청을 제공하는 클래스인 것 같네요. The Spring MVC Test framework, also known as MockMvc, provides support for testing Spring MVC applications. It performs full Spring MVC request handling but via mock request and response objects instead of a..

Spring 2023.11.28

프로젝트준비과정 - @PostMapping / @GetMapping

개별프로젝트로 "나만의 블로그"를 만들어볼까 합니다. 가장 무난하기도 하고 참고할만한 글들이 많은 것 같아서요. 먼저 블로그 글을 등록할때 쓰이는 @PostMapping과 블로그 게시글을 확인할때 쓰이는 @GetMapping에 대해 알아보겠습니다. 1. @PostMapping @PostMapping annotation in Spring MVC framework is a powerful tool for handling the HTTP POST requests in your RESTful web services. It maps specific URLs to handler methods allowing you to receive and process data submitted through POST reque..

Spring 2023.11.27

인터넷 통신 기초 (IP/패킷/TCP)

*인프런 강의 수강 후 개념 정리용 게시글입니다. Web의 핵심적인 기술은 인터넷입니다. 인터넷의 핵심은 다양한 서버들끼리 통신이 가능한 거대한 네트워크를 구축하고 있다는 점입니다. 그렇다면 여러 노드 간 복잡한 인터넷망 속에서 어떻게 정보를 교환할까요? 1. IP (Internet Protocol)란? 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약을 의미합니다. 통신 기능이 제공되는 기기들이 서로 통신하기 위해 필요한 고유 번호이기도 한데요. 각 장치들 간 통신을 식별할 수 있는 주민등록번호 또는 전화번호라고 생각하시면 됩니다. 2022년 기준 IPv4와 IPv6 두 가지 체계가 있습니다. 널리 사용되는 IP주소는 IPv4이며 32비트의 값을 갖는다 정도로만 짚고 넘어가겠..

Spring 2023.11.23

객체지향 설계 원칙 5가지 - SOLID

컴퓨터 프로그래밍에서 SOLID란? 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 소개했습니다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다 1. SOLID SRP : 단일 책임 원칙 (Single responsibility principle) ㄴ 한 클래스는 하나의 책임만 가져야 한다. ㄴ 변경이 있을때 side-effect가 적으면 SRP을 잘 준수한 것 OCP : 개방-폐쇄 원칙 (Open/closed principle) ★ ㄴ 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. (단, 클라이언트 코드가 변경되면 안된다) ㄴ 다형성을 활용해 상위 클래스는 Closed,..

Spring 2023.11.13