Backend 취업준비(37)
-
HTTP응답을 처리하는 방식 (@Controller, @RestController)
스프링 이 http응답을 처리하는 방식 3가지 정적 컨텐츠 MVC와 템플릿 엔진 API 정적 컨텐츠 먼저 스프링 컨테이너에 요청에 매핑된 컨트롤러가 있는지 찾고 없으면 resources.static 패키지에서 해당 요청과 일치하는 정적 파일(html파일) URL에 대한 요청을 반환 홈의 경우에 GetMapping("/") 으로 매핑된 것이 있으면 해당 메소드가 반환하는 html파일 반환 없으면 resources.static 패키지의 index.html 반환 (매핑된 컨트롤러를 우선한다) MVC와 템플릿 엔진 요청 수신: 클라이언트가 웹 애플리케이션의 URL에 HTTP 요청을 보낸다 스프링이 DispatcherServlet을 통해 요청을 받는다 핸들러(Controller) 매핑: DispatcherServ..
2024.03.09 -
JDBC 흐름 정리
JDBC( JAVA DataBase Connectivity ) JDBC(Java Database Connectivity)는 자바 프로그래밍 언어를 사용해 데이터베이스에 접근할 수 있도록 하는 자바 API 이를 통해서 우리는 데이터베이스에 접속하고, SQL을 실행하고, 이를 통해 데이터를 가져오거나 삭제하는 등 데이터를 다룰 수 있게 된다. JDBC 등장배경 JDBC가 등장하게 된 이유 => 데이터베이스 접근의 표준화를 위해서 데이터베이스에는 Oracle Database, MySQL, PostgreSQL 와 같이 여러 종류의 데이터베이스가 있다 각각 데이터베이스마다 SQL를 전달하거나 결과를 응답받는 방법들이 다 다르고 데이터베이스의 종류는 수십 개가 존재 JDBC가 존재하기 전에는 이런 데이터베이스마다 ..
2024.03.08 -
스프링 빈
제어의 역전(IoC) 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용 프로그램의 실행 흐름이나 객체의 생명 주기를 개발자가 제어하는 것이 아니라 외부에서 관리 의존성 주입(DI) 객체간의 의존성을 외부에서 주입해서 관리하겠다 @Autowired어노테이션 ⇒ 스프링 컨테이너에 있는 빈을 주입하는 역할 빈과 스프링 IoC컨테이너 빈 ⇒ 스프링 IoC 컨테이너가 관리하는 객체 스프링 IoC 컨테이너 ⇒ 빈을 관리하는 객체 객체를 빈으로 등록하지 않고 의존성을 주입한다면 어떻게 될까 new 연산자로 객체를 생성해서 의존성 주입을 해주어야 한다 만약 Dao의 구현체가 변경된다면(JdbcDao ⇒ InMemoryDao) 위와 같이 Service객체를 생성하는 곳에서도 변경을 ..
2024.03.03 -
빌드 도구 Gradle
빌드도구 Gradle 거의 모든 유형의 소프트웨어를 빌드할 수 있을 만큼 유용한 빌드 자동화 도구 빌드 컴퓨터는 소스코드를 바로 실행할 수 없다 따라서 소스코드를 실행 가능한 파일로 변환 해주어야 하는데, 이것을 빌드 라고 한다. 소스 코드를 컴파일, 테스트, 정적분석 등을 실행하여 실행 가능한 애플리케이션으로 만들어주는 과정 ⇒ 빌드 빌드 도구 빌드 도구는 계속해서 늘어나는 라이브러리를 자동 추가 및 관리해준다. 시간이 흐르면 라이브러리 버전을 자동으로 동기화 해주기도 한다. 다양한 개발이 가능해지면서 필요한 라이브러리도 많아지게 되었다. 이 많은 라이브러리를 직접 다운받고 추가하는 방법도 있지만 번거로움과 개발자들 간의 버전관리, 다운받은 jar 파일의 보안 위험 등의 문제가 있었다. 그래서 탄생한 ..
2024.03.02 -
스프링과 스프링 부트
스프링 부트의 주요 특징 1 : 내장WAS 톰캣 등 웹 애플리케이션 서버(WAS)가 내장되어 있어서 따로 설치를 하지 않아도 독립적으로 실행 가능 스프링 부트가 없던 시절 스프링으로 웹 어플리케이션을 배포하려면 WAS를 설치한다 개발한 웹 어플리케이션을 WAS로 빌드 빌드한 WAR파일을 WAS폴더 하위로 넣는다 WAS를 실행 스프링부트에서는 WAR파일이 아닌 jar파일로 패키징 main메소드로 바로 실행 가능 Web과 WAS(Web Application Server) Web 사용자는 웹 브라우저를 통해 웹 서버에 요청을 보내고, 서버는 해당 요청에 대한 응답을 반환하여 사용자에게 보여준다 동적인 콘텐츠 요청을 받은 웹 서버는 해당 요청을 WAS로 전송하고, WAS는 요청을 처리하여 동적인 콘텐츠를 생성한..
2024.02.29 -
ALTER, index, DCL, 정규화
ALTER기존에 있는 테이블의 구조를 변경하기 위해 사용테이블에 데이터가 쌓여있는 상태에서 구조를 변경하면 예기치 못한 이슈가 발생할 수 있으니 신중하게 사용해야 한다새로운 열 추가ALTER TABLE students ADD grade VARCHAR(20)기존 열 이름 변경ALTER TABLE students RENAME COLUMN grade TO score기존 열 데이터 타입 변경ALTER TABLE students ALTER COLUMN address TYPE VARCHAR(100)데이터 유실의 위험문자열 데이터를 숫자로 변경하는 경우 데이터의 손실이 발생할 수 있다."123"이라는 문자열을 숫자로 변경하려고 해도 오류가 난다제약 조건 위배기존 열의 데이터 타입을 변경하면 해당 열에 적용된 제약 조..
2024.02.28