💋 더미 데이터란? 더미 데이터란, 프로그래밍에서 특정 데이터를 테스트나 데모 용도로 사용하기 위해 임의로 만든 데이터이다. 실제 운영 환경에서 사용되는 데이터가 아니며, 개발자나 테스터 등이 특정 기능이나 모듈을 테스트할 때 사용된다. 더미 데이터는 데이터베이스나 파일 등에 저장되며, 프로그램에서 이를 불러와 사용한다. 예를 들어, 상품 관리 시스템을 개발할 때 특정 상품 데이터를 더미 데이터로 만들어서 테스트할 수 있으며, 이를 통해 실제 데이터를 사용하지 않고도 프로그램이 예상한 대로 동작하는지 확인할 수 있다. 나는 작은 미션을 진행하면서, 아래 사진과 상품들을 보여주는 화면에 함께 치킨, 샐러드, 피자에 대한 더미 데이터를 추가하고 싶었다. 💋 더미 데이터를 추가하는 방법 크게 세 가지가 있다...
오늘 포스팅에서는 상태 코드가 무엇인지 그 개념과, 종류에 대해 공부하려고 한다. 상태 코드가 왜 필요할까? 사례를 통해서 필요성에 대해 이해해 보자. 💋 브라우저는 요청에 대한 결과를 알려주지 않으면 알지 못한다 우리가 로그인할 때를 생각해 보자! 위 사진에서 어떤 일이 일어난 걸까? 1. 내가 보낸 아이디, 패스워드는 POST 요청을 통해 서버로 전달되었다. 2. 서버는 데이터베이스에서 내 아이디에 해당하는 패스워드를 (암호화된 형태로 비교해) 확인했지만 잘못된 패스워드였다. 혹은, 아이디 자체도 존재하지 않았다. 3. 서버는 방금 나의 요청에 대해 인증에 실패해서 '아이디 또는 패스워드가 잘못 입력되었습니다.'라는 문구를 내가 보고 있는 페이지로 보냈다. 사용자는 '아이디 또는 패스워드가 잘못 입력..
우리는 지금 Spring을 사용해서 웹 애플리케이션을 만드는 방법에 대해 공부하고 있다. 💋 인트로 Spring MVC Configuration이 뭘까? 스프링 프레임워크를 사용해서 웹 애플리케이션을 만들 때, 필요한 설정 정보를 담고 있는 파일이다. 이름을 통해 Spring MVC에 대한 "설정"에 관한 내용이라고 유추할 수 있다. 작성하는 방법도 다양한데, XML, Java Config, 어노테이션 방식으로 할 수 있고, DispatcherServlet, View Resolver, Handler Mapping 등의 설정이 포함된다. 잘 작성하면 웹 애플리케이션 동작을 조정하고, 요청에 대한 응답을 처리할 수 있다. 오늘 공부할 건 View Resolver인데, 이걸 알기 위해서는 먼저 View Con..
💋 오늘 공부한 내용 맥북을 샀다. 나를 앞으로 '스타라이토 깃짱'이라고 불러주면 좋겠다. M2 맥북에어 색상은 스타라이트다! 따라서 오늘은 맥북을 조금 가꾸어보았다. 그래도 스프링을 건너뛰긴 좀 그래서 Spring MVC Config에 대해서 정말 살짝 공부했다. 맥북 트랙패드 제스처와 크롬 단축키 대해서 익혔다. 하루만이지만 몸에 익은듯? 💋 감정 회고 목이 많이 아프다ㅠㅠ 목 안이 아니라 겉에 목, 등 따라서 허리까지 많이많이 아파서 오늘 아침에는 정형외과에 다녀왔다. 시원하게 충격파 목과 허리에 현질좀 하고 왔는데, 앞으로 꾸준히 유산소 운동을 좀 더 해야 할 것 같다. 담당 코치와 이야기해서 오늘은 재택 하기로 하고, 내일 아침에 상태를 봐서 내일도 재택을 할 지 결정하기로 했다. 내일부터 페어..
IoC(Inversion Of Control)는 제어의 역전이다. IoC가 무엇인지에 대해서는 이 글을 참고하면 이해가 쉬울 것 같다! 우리가 다루고 있는 모든 객체를 하나의 부품이라고 생각해보자...! 그렇다면 스프링이 갖고있는 아주 기본적인 역할 중 하나는 부품을 조립해주는 능력이다. 스프링은 객체의 생성과 객체 간의 의존성을 관리해주는 기능을 한다. 이 개념을 이해하기 위해서는 DI(Dependency Injection)과 IoC(Inversion of Control) 컨테이너이라는 두 용어에 대해 알고 있어야 한다. 지난 포스팅에서 DI에 대해 다루었으니, 오늘은 IoC 컨테이너에 대해 알아보려고 한다! 부품을 조립(객체를 생성)하기 위해서는 주문서가 있어야 한다. 어떤 부품이 얼마나 필요하고, ..
💋 문제 상황 요약: 같은 인터페이스를 구현한 스프링 Bean이 두 개 이상일 때, 어떻게 구분해서 의존성을 주입할 수 있을까? 인터페이스 구현한 두 가지 클래스를 빈으로 등록해서 사용하고 있는 상황...! 내가 사용하고 싶은 @Service 어노테이션이 붙은 클래스에서 자동으로 GameDao를 주입해주고 싶다. 그런데! @Service public final class GameService { private final GameDao gameDao; public GameService(final GameDao gameDao) { this.gameDao = gameDao; } } 나는 지금 DbGameDao가 스프링 DI 프레임워크를 통해서 주입되었으면 좋겠는데, 스프링은 DbGameDao와 ConsoleG..
💋 SimpleJdbcInsert이란? 스프링 프레임워크에서 제공하는 JDBC 확장 클래스 중 하나 JDBC로 SQL 쿼리를 실행하는 것보다 더 쉽고 간편하게 DB에 데이터를 '추가'하도록 도와준다. 💋 SimpleJdbcInsert를 사용해보자! 객체를 생성하고, 기능을 사용해서 DB에 데이터를 추가해보자! ✔ SimpleJdbcInsert 객체 생성해보자! 기본 생성자를 사용 SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(dataSource); JdbcTemplate 객체를 생성할 때 함께 생성 JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); SimpleJdbcInsert simpleJdbc..
💋 레이어드 아키텍처란? 소프트웨어를 여러 개의 계층으로 분리해서 설계하는 방법 각각 계층이 서로 독립적으로 구성되어 있어서 한 계층의 변경이 다른 계층에 영향을 주지 않게 설계할 수 있다. 외부의 요구사항이나 세부적인 구현이 변화하더라도 도메인의 로직을 변경하지 않도록 보호하기 위해서 계층화를 하게 된다. 💋 레이어드 아키텍처의 구성 레이어드 아키텍처에 대해 대해 공부하면서 가장 혼란스러웠던 것은, 설명하는 사람마다 조금씩 다른 구성을 가지고 있었다는 것이다. 먼저, 레이어드 아키텍처의 구성은 딱 하나로 정해져 있지 않고, 애플리케이션의 크기, 복잡도, 요구사항 등에 따라 달라질 수 있다. 어떤 계층으로 정확히 나눴느냐보다도, 계층을 분리해 각 계층 사이의 의존성을 줄여서 외부 변화로부터 비즈니스 로직..
💋 NamedParameterJdbcTemplate이란? 스프링 프레임워크에서 JDBC 작업을 보다 편리하게 할 수 있는 클래스이다. 어떻게 편리하게...? NamedParameterJdbcTemplate 클래스는 미완성의 JDBC Statement에 이제까지 쓰던 `?`(place holder) 대신에, 이름을 지어준 파라미터로 대체할 수 있게 된다. JdbcTemplate 클래스를 래핑하며, JdbcTemplate 클래스의 대부분의 기능을 사용할 수 있다. 사용 방법 위주로 공부해보자! 💋 언제 사용하면 좋을까? Named Parameter를 사용하면 파라미터의 순서를 기억할 필요 없이, 파라미터에 이름을 지어서 쿼리를 실행할 수 있다. 파라미터 이름을 사용해 SQL 쿼리를 작성하고 실행하고 싶을 때..