전체 글 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