분류 전체보기 1097

Apache Tomcat { 개요, 다운로드 및 설치 }

Apache Tomcat 이란? 아파치 톰캣은 아파치 소프트웨어 재단에서 개발한 세계에서 가장 많이 사용되는 WAS(Web Application Server)입니다. 컴퓨터에 운영체제를 설치해야만 컴퓨터를 사용할 수 있는 것처럼, 자바를 이용하여 작성된 웹 애플리케이션은 WAS가 있어야만 실행할 수 있습니다. 이때 가장 많이 사용되는 자바 WAS 가 바로 Apache 재단의 Tomcat 이라는 거죠. Tomcat 은 오픈소스 소프트웨어로써 누구나 무료로 사용할 수 있습니다. Apache Tomcat 다운로드 및 설치 아파치 톰캣은 http://tomcat.apache.org 에서 다운로드 받을 수 있습니다. 버전을 선택하고 화면 하단의 zip 을 다운로드합니다. Mac OS 사용자는 tar.gz 파일을 ..

백 엔드 개발자가 알아야 할 것들

프런트 엔드와 백 엔드 수면 위에 보여지는 부분이 프론트, 보여지지 않는 부분이 백엔드라고 할 수 있습니다. 백 엔드 ? 백 엔드는 서버 입장에서 개발이 진행됩니다. 프런트 엔드를 클라이언트 사이드라고 말한다면 백 엔드는 서버 사이드라고 말할 수 있습니다. 백 엔드 개발자가 알아야 할 것들 백 엔드 개발자는 클라이언트의 요청을 처리한 결과를 전해줄 수 있어야 합니다. 예를 들어서 사용자가 인터넷 게시판의 첫 번째 목록을 주세요라고 요청을 한다면 상응하는 결과물을 전달해줄 수 있어야 합니다. 클라이언트의 요청을 잘 처리하려면 백 엔드 개발자가 알아야 하는 것들이 있겠죠. 첫 번째, 프로그래밍 언어 적어도 한 가지를 잘 알아야 합니다. 자바, 파이썬, PHP, Javascript 등이 있습니다. Javasc..

HTTP 프로토콜 이해 { 개요, 작동방식(stateless), URL }

인터넷 네트워크 통신의 이해 인터넷하면 WWW 을 떠올리곤 합니다. 하지만 WWW이 인터넷의 전부인 것은 아닙니다. 물리적인 하나의 컴퓨터에는 여러 개의 서버가 동작할 수 있으며 각각의 서버는 Port 라는 것으로 구분됩니다. Web 은 80 번이라는 포트를 이용하구요. Email 은 25 번 FTP 는 21 번 포트를 사용합니다. 인터넷은 한 마디로 네트워크들의 네트워크라고 말할 수 있습니다. 수많은 네트워크들의 결합체인 것이죠. 이러한 인터넷은 보통 TCP / IP 라는 약속으로 연결되어 있습니다. HTTP (Hypertext Transfer Protocol) 란? 인터넷 중 웹에서는 서로 통신하기 위해서 HTTP 를 사용합니다. 팀 버너스리와 CERN 에서 웹 브라우저 및 HTTP 를 발명하게 됩니..

웹 서버 관련 기본 지식 { 클라이언트, 서버, DBMS, 미들웨어, WAS }

클라이언트 / 서버 구조 데이터를 요청하는 기기 혹은 소프트웨어를 클라이언트라고 하고 제공하는 것을 서버라고 합니다. DBMS (database management system) DBMS 와 클라이언트에 대해서 이해해 봅시다. DBMS 는 데이터베이스를 관리하는 시스템을 의미합니다. DBMS 가 등장하기 이전에는 파일에 데이터를 저장하고 읽어내는 기능을 일일이 개발해야 했습니다. 이런 불편함을 해결하기 위한 노력의 결과로 DBMS 가 등장하게 되었습니다. DBMS 의 최초의 개념은 IBM 에서 논문으로 등장했습니다. 최초의 구현은 Oracle 에서 하였습니다. DBMS 에는 다양한 제품들이 존재합니다. 대표적으로 mySQL, MariaDB, Oracle, postgres 등이 있습니다. DBMS가 등장하..

웹 서버 & 웹 서버 소프트웨어 { 개요, HTTP, 종류 }

웹 서버란? 웹 서버는 소프트웨어를 보통 말하지만, 웹 서버 소프트웨어가 동작하는 컴퓨터를 말하기도 한다. 웹 서버의 가장 중요한 기능은 클라이언트(웹 브라우저)가 요청하는 HTML 문서나 각종 리소스를 전달하는 것입니다. 웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장되어 있는 정적인 데이터이거나 동적인 결과가 될 수도 있다. 정적인 데이터란 보통 이미지, HTML, CSS, JavaScript 를 의미하며 동적인 결과는 프로그램의 결과물을 의미합니다. 웹 브라우저와 웹 서버의 통신 웹 브라우저와 웹 서버는 보통 HTTP를 이용해서 통신을 하게 됩니다. Hyper Text Transfer Protocol 로 통신을 위한 규약입니다. 도로 위에 다양한 규칙이 있는 것처럼 통신에도 다양한 규칙을..

쿼리메서드 { JpaRepository 아쉬운점, 개요, 쿼리메서드 이름생성 규칙, @Transactional, 예제 }

JpaRepository 의 아쉬운 점? 이전 Memo 예제에서 JpaRepository 인터페이스를 상속받은 MemoRepository 인터페이스는 JpaRepository 에서 제공하는 기본적인 CRUD 메서드를 사용할 수 있었는데요. 필요에 따른 조건 검색과 같이 좀 더 까다로운 작업을 수행해야 할 때는 JpaRepository 에서 제공하는 기본 메서드만으로는 한계가 있습니다. JPA는 조건검색을 처리 하기 위해 쿼리메서드, @Query, Querydsl 을 제공합니다. 쿼리메서드 간단하게 살펴보기 -) 쿼리메서드 : 쿼리메서드는 말 그대로 메서드 이름 자체가 쿼리문이 됩니다. 예를 들어보겠습니다. 우선 쿼리메서드와 같은 것들은 JPA 가 기본으로 제공하는 것이 아니기 때문에 JPA가 트랜잭션 처..

Intro. { 이 책을 내며, 들어가며 }

코드로 배우는 스프링 부트 웹 프로젝트를 읽고 공부하는 내용임을 우선 밝힙니다. 이 책을 내며 (스프링 부트 등장 배경 이해하기 & 이 책의 핵심 목표 이해하기) 스프링 프레임 워크가 처음 세상에 나왔을 때 추구하는 목표는 '경량화'였다. 엔터프라이즈급 시스템 개발을 가볍고 빠르게 할 수 있다는 것을 내세우며 '의존성 주입'이나 'AOP' 등의 특징을 보여주었다. 이후 시간이 지나면서 스프링은 더 많은 기능을 포함하게 되었고 '스프링 개발은 설정이 반이다'라는 말이 생길 정도였다. 이제 스프링 프레임 워크는 더 이상 '경량'하지 않은 복잡한 설정과 실행 과정을 갖는 프로그램이 되었다. 스프링 부트는 이러한 배경에서 시작되었다. 스프링 부트는 원래 스프링 프레임워크가 추가하던 '경량'한 프로그램으로 돌아가..

엔티티클래스와 JPA Repository 이해하기 { Memo 엔티티 예제, JpaRepository 인터페이스 }

엔티티 클래스와 JpaRepository 실습을 통해서 실제 Spring Data JPA를 어떤 방식으로 사용하게 되는지 알아보겠습니다. 우선 Spring Data JPA 는 Hibernate 라는 JPA 구현체를 Spring boot 에서 손쉽게 사용할 수 있도록 Spring 프레임워크가 제공하는 다양한 호환성을 위한 라이브러리 중 하나라고 했습니다. 이런 Spring Data JPA를 사용하기 위해서는 2가지 준비물이 필요합니다. 첫 번째는 엔티티 클래스입니다. 엔티티 클래스는 JPA를 통해서 관리하게 되는 객체를 의미합니다. 두 번째는 Repository 입니다. Repository 는 엔티티 객체들을 처리하는 기능을 가지고 있습니다. Repository 는 Spring Data JPA 에서 제공하..

2. 수업목적

현재 우리는 총 4개의 웹 페이지로 이루어져 있는 사이트를 보고 있습니다. 여기서 우리가 웹 페이지를 하나 추가해보겠습니다. 그런데, 상상력을 발휘해야겠습니다. 현재 우리 사이트의 웹 페이지가 1억 개라고 꼭 상상해주세요. 그러면 1억 개의 리스트가 있는 상황에서 단 하나의 웹 페이지를 추가했을 때 어떤 절망감을 느끼게 될 것인지를 상상력으로 시뮬레이션 해봅시다. 4.html 이라는 파일에 PHP 에 대한 내용을 추가했습니다. 그리고 이 새로운 html 을 우리의 웹 사이트에 추가하려고 합니다. 그러면 당연히 우리의 웹 페이지 리스트에 새로운 웹 페이지로 이동하는 링크를 생성해주어야하고, 그것 뿐만이 아니라 1억 개의 모든 웹 페이지의 페이지 리스트를 업데이트 해주어야 합니다. 어떤가요..? 정말 괴롭지..

1. 수업 소개

1990년 웹이 등장하면서 인간은 정보를 웹에 표현하기 시작했습니다. 종이에 담겨 있던 수많은 정보들이 웹 페이지로 만들어지기 시작합니다. 지적인 빅뱅의 신호탄이 되었습니다. 처음에는 HTML 만으로도 행복했습니다. 하지만 사람의 욕심은 끝이 없죠. 수많은 불만족 속에 우리의 불만족은 HTML 을 직접 타이핑해서 웹 페이지를 수동으로 만드는 것에 지쳤다는 것입니다. 사람이 직접 웹 페이지를 하나하나 만드는 것은 통합적인 웹페이지 관리가 불가능해졌고, 사용자에게 웹 페이지 폴더를 공유할 수 없었기 때문에 웹 페이지 소유자만이 웹 콘텐츠를 생산할 수 있다는 문제점도 갖게 되었습니다. 몇 몇 선구자적 욕심자들이 HTML 작성을 컴퓨터에게 맞기고 싶다는 생각을 갖게 되었고 몇몇 컴퓨터 개발자들이 이를 현실로 구..