BE - 환경설정

수현·2023년 10월 15일
0

Ucamp

목록 보기
16/19

톰캣

1) 톰캣

  • 톰캣 실행
/Library/Tomcat/bin/startup.sh
  • 톰캣 페이지 확인
    • localhost:8080
  • 톰캣 종료
/Library/Tomcat/bin/shutdown.sh

MariaDB

1) 비밀번호 재설정

set password for 'root'@'localhost'=password("root");
flush privileges;

2) DB 설정

# root 계정으로 접속하여 사용자 계정과 DB 생성

mysql -u root –p
maria 입력 // password 입력
MariaDB [(none)]> show databases; 		// 데이터베이스 목록 확인
MariaDB [(none)]> use mysql; 			// mysql DB 사용
MariaDB [mysql]> create database boot_db; // boot_db DB 생성
MariaDB [mysql]> CREATE USER 'boot'@'%' IDENTIFIED BY 'boot'; // boot user 생성, boot password 지정
MariaDB [mysql]> GRANT ALL PRIVILEGES ON boot_db.* TO 'boot'@'%'; // boot DB의 권한 허용 
MariaDB [mysql]> flush privileges; 			// grant 사용시 권한 적용을 위한 명령어 
MariaDB [mysql]> select user, host from user; // 계정 조회, user는 system table
MariaDB [mysql]> exit; 					// 접속 종료

# boot 사용자 계정으로 접속한다.

mysql -u boot –p
boot 입력 // password 입력
use boot_db; 

table 생성

  • users
create table users(
    id int(10) not null auto_increment primary key, // auto-increment : 자동으로 sequence한 값 증가, primary key : 기본키
    userid varchar(100) not null ,
    name varchar(100) not null ,
    gender varchar(10),
    city varchar(100)
);

alter table users add unique index users_userid_idx(userid); // unique : 중복 안됨

show index from users;

insert into users(userid,name,gender,city) values ('gildong','홍길동','남','서울');
commit;

insert into users(userid,name,gender,city) values ('dooly','둘리','여','부산');
commit; // mariaDB는 자동 commit
  • customer
create table customer(
	id int(10) not null auto_increment primary key,
	name varchar(100) not null,
	email varchar(100) not null,
	age int(10),
	entryDate date,
 	UNIQUE KEY uk_name (email)
);
alter table customer add unique(id);

insert into customer(name, email, age, entryDate) values ('gildong', 'gildong@naver.com', 20, '2023-10-01');
insert into customer(name, email, age, entryDate) values ('dooly', 'dooly@google.com', 25, '2023-10-05');
insert into customer(name, email, age, entryDate) values ('huidong', 'huidong@google.com', 18, '2023-09-05');
insert into customer(name, email, age, entryDate) values ('micole', 'micole@naver.com', 28, '2022-10-10');
insert into customer(name, email, age, entryDate) values ('ddochi', 'ddochi@google.com', 20, '2023-05-05');
commit;

  • 미션 1
myspring.di.strategy1 패키지 생성

myspring.di.strategy1.dao 패키지 생성
  - UserDao.java
  - UserDaoImpl.java
myspring.di.strategy1.service 패키지 생성
  - UserService.java
  - UserServiceImpl.java
myspring.user.vo 패키지 생성
  - userVO.java (SpringFWXml -> src/main/java -> myspring.user.vo -> UserVO.java 파일 복사)

- 전략1
  - xml
  - test case 
  - java 파일

- 전략2
  - xml
  - testcase
  - java 파일 

- 전략3
  - configuration class
  - testcse
  • 미션 2
기존 sqlsession과 datasource의  xml -> 복사
  - pom.xml은 그대로 복붙 가능
  - 
mapper와 sql 들어간 xml 생성
- basepackage 이름 변경 된 것 수정 필요 

jUnit 추가하는 방법
- build path -> configure build path -> add library -> jUnit -> jUnit5


주석 처리 : ctrl + shift + c
자동 : ctrl + shift + o
변수 생성 : alt + shift + L

- star uml으로 다이어그램 작성
https://staruml.io/

1. Mybatis

  • 자바 객체와 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있도록 도와주는 개발 프레임워크
  • 특징
    • JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화
    • 일반 SQL 쿼리, 저장 프로시저 및 고급 매핑을 지원하는 모든 JDBC 코드 및 매개 변수의 중복 작업을 제거
  • 장점
    • SQL을 XML에 편리하게 작성할 수 있음
    • SQL 쿼리를 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수

https://naver.me/5Ya1OkS5
https://naver.me/xkIxw0SW

2. Thymeleaf

  • 웹 및 독립 실행 환경을 위한 Java 템플릿 엔진
  • Thymeleaf로 작성된 HTML 템플릿은 어플리케이션을 통한 실행이 아니더라도 브라우저에서 열었을 때 HTML 내용을 그대로 확인 가능 (Natural Templates)
  • 특징
    • JSP와 달리 Servlet Code로 변환되지 않음
    • 서버 사이드 HTML 렌더링 (SSR)
      • 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용
    • 네츄럴 템플릿
      - HTML을 유지
      - 웹 브라우저에서 파일을 직접 열어도 내용을 확인할 수 있고, 서버를 통해 뷰 템플릿을 거치면 동적으로 변경된 결과를 확인
      https://naver.me/GwI5nFcX

3. SpringBoot

  • 개발에 필요하 복잡한 설정을 대신해줌
  • 개발자가 복잡한 설정에 시간을 소모하지 않고 스프링 기반의 어플리케이션을 개발
  • 특징

4. JPA (Java Persistence API)

  • 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음
  • 실제적으로 구현된것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크
  • 사용 이유
    • 반복적인 CRUD SQL을 처리
    • 관계형 데이터베이스로 데이터를 관리하기 위해 JDBC API를 이용하여 SQL문을 다루는 과정에서 문제 발생
  • 장점
    • SQL 중심적인 개발에서 객체 중심 개발이 가능함
    • SQL문을 직접 사용하는 것보다 훨씬 생산성이 좋음
    • 필드 변경시 쿼리문을 전부 수정하지 않아도 됨 (유지 보수 측면에서 좋음)
      https://naver.me/FZWJwchw
      https://naver.me/5ewGjXEV

5. Spring Data JPA

  • Spring Data JPA를 사용하여 레포지터리에 구현 클래스 없이 인터페이스만으로 개발 완료할 수 있음 (CRUD 기능 자동으로 모두 구현 및 주입)
  • JPA 기반의 repository를 쉽게 구현할 수 있도록 도와주는 모듈
  • Spring Data는 Spring 어플리케이션에서 데이터 접근 시보다 친숙하고 일관된 방식을 사용할 수 있도록함
  • 각 데이터 저장소의 고유한 특징은 그대로 유지

https://naver.me/xwW6eCTw

스프링

https://naver.me/F9zQFP8A
https://naver.me/5v4I5dqb


https://blog.naver.com/vega2k

profile
Notion으로 이동 (https://24tngus.notion.site/3a6883f0f47041fe8045ef330a147da3?v=973a0b5ec78a4462bac8010e3b4cd5c0&pvs=4)

0개의 댓글