우리는 Java에서 JDBC를 이용해서 소스코드로 데이터베이스와 통신한다 하지만 한 소스코드안에 연결정보를 토대로 데이터베이스와 연결하고 SQL를 작성하여 데이터베이스에 보내줘서 내가원하는 로직을 수행한뒤 연결을 끊는 작업을하게된다 하지만 소스코드안에 전부 있다보니 관심사의 분리가 제대로 안되서 유지보수에 어려움을 겪게된다 우리는 MVC패턴에 대해서 들어본적이 있을것이다 Controller가 비즈니스 로직을 수행하고 Model에 데이터를 담아서 View에 전달해준다 MVC패턴이 나오게된 이유는무엇일까? 중복코드를 제거하고, 각자 역할에맞는 행동만 하기위해 서로 분리해서 만든것이다 이렇게되면 향후 유지보수도 쉬워지도 좀더 코드가 깔끔해지게된다 DTO, DAO(VO)도 MVC패턴과 비슷하다 DAO가 DTO에..
저번게시글에서 MySQL 계정을 생성하고 스키마를 만들어보고 인텔리제이와 연동을 해보는 작업을했다 이번에는 연동되어있는 데이터베이스에 직접 SQL문을 날려서 값을 넣고 빼는 작업을 해보겠다 우선 데이터베이스에 SQL을 보내주기 위해서는 JDBC라는것을 사용해야하는데 간단하게 JDBC에 대해서 알아보도록 하자 JDBC란 무엇일까 먼저 JDBC는 Java DataBase Connetivity로써 자바프로그램이 데이터베이스와 서로 연동되어있을때 데이터를 주고받을수있게 해주는 인터페이스 라고 보면 될거같다 기본적으로 애플리케이션과 DBMS(여기선 MySQL) 사이에서 번역해주는 역할을 하는데 여기서 중요한점은 왜 JDBC가 나왔는지 알아봐야한다 만약에 상상을해보자 많은 관계형 데이터베이스들의 통신방법들이 전부 ..
SpringBoot를 이용해서 MySQL을 연동하고 사용하는 방법까지 알아보도록하자 우선 강의를 시작하기 앞서 IDE는 Intellj(인텔리제이)를 사용하고 Gradle로 진행하지만 Maven을 사용하는 사람도 어차피 비슷하니깐 따라오면된다 프로젝트생성 이름은 DBcheck, 언어는 Java, 타입은 Gradle 그리고 패키지생성은 War로 하여 프로젝트를 생성해주고 사용하는 Dependency로는 Spring Web, Mysql Driver를 체크해주고 시작하였다 추가로 여러라이브러리를 사용할수있는데 그건 사용자가 입맛에 따라서 더 추가해주면 좋을꺼같다 프로젝트 생성후에는 항상 하는 습관들이 있는데 우선 main -> java -> DBcheckApplication을 실행시켜서 정상적으로 설치가됬는지 ..
HTTP API와 REST API는 무엇일까? 우선 HTTP API와 REST API를 알아보기전에 API의 뜻이 무엇인지부터 알고갈필요가있다 그리고 API의 의미를 알면 HTTP에서의 API는 무엇을 의미하는지 자연스럽게 알수있게될것이다 API(Application Programming Interface) 우선 인터페이스란 단어에 한번 집중해보자 객체지향 공부하면서 많이 접해봤을만한 인터페이스는 자바에서 추상메서드의 집합들을 말한다 인터페이스를 사용하는 목적은 관계를 느슨하게 만들어 보다 유지보수를 쉽게 할려는 목표를 가지고있는데 우리가 자동차운전을 할때 다른자동차로 바꾼다고해서 운전을 못하진않는다 왜냐하면 인터페이스를 적용하여 작동방식은 달라져도 작동하는방법은 달라지지 않기때문이다 이처럼 작동방식과 ..
우리가 개발하다보면 흔하게 듣는 패턴중에 하나인 싱글톤 패턴은 과연 무엇일까? 일단 싱글톤패턴은 1개의 객체생성을 보장하는 패턴이라고 볼수있다 이게 무슨말이냐면 보통 클래스를 만들고 객체를 만들때 new를 이용하여 여러개의 객체들을 만들수있다 하지만 싱글톤패턴을 적용하면 하나의 객체만 보장받을수있다. 2개 이상의 객체를 만들수없고 1개의 객체를 계속해서 재사용한다는 것이다 1개의 객체를 계속해서 사용하기때문에 얻을수있는 이점들이 몇몇개있는데 이것은 아래에서 설명하겠다 우선 싱글톤패턴을 만드는 방법에 대해서 알아보자 싱글톤패턴(Singleton Pattern) 아니 그래서 1개의 객체를 보장받는 패턴이라는것은 알겠는데 그래서 어떻게 만드는건데? 아래 코드를 보면서 점진적으로 만들어보자 먼저 singleto..
메모리의 구조 (코드, 데이터, 힙, 스택) 이번에는 개발자라면 알아야할 메모리의 구조에 대해서 알아보자 먼저 프로그램을 실행할때 메모리에 로드되어 실행할 준비를 한다 이때 실행에 필요한 다양한 자원을 저장할 공간이 필요한데 프로그램의 코드가 저장되는 코드공간, 전역변수와 정적변수(static)가 저장되는 데이터공간 그리고 지역변수와 매개변수가 저장되는 스택, 또한 사용자가 직접 컨트롤할수있는 힙공간에 대해서 알아보도록 하자 코드(Code) 프로그램의 저장된 명령어를 처리하는 코드공간은 텍스트 공간이라고도 불리우며, 우리가 짠 코드들을 하나씩 가져가서 명령어를 처리한다 우리가 만든 소스코드를 컴파일러는 여러과정을 거쳐서 컴퓨터가 이해할수있는 기계어로 변환하게되는데 이때 컴퓨터는 하나씩 명령어를 CPU로 ..