'Back-End/Spring'에 해당되는 글 102건

  1. 2019.05.28 spring 로킹툴
  2. 2019.05.28 표준 프레임워크 오픈 커뮤니티
  3. 2019.05.28 스프링의 실행 과정, 스프링의 특징
  4. 2019.05.27 Spring 설치
  5. 2019.05.22 스프링 (백기선) 학습일정, 인강
  6. 2019.05.16 Spring Lagacy, Boot 학습 일정

spring 로킹툴

Back-End/Spring 2019. 5. 28. 16:05

로깅툴


  로깅이란?


  로깅(Logging)이란 프로그램을 개발하거나 운영할 때 생기는 문제점을

  관리하고 모니터링 할 수 있는 데이터를 말합니다.



1. 로킹툴을 사용하는 이유


System.out.println() 명령어는 IO 리소스를 많이 사용하여 시스템이 느려질 수 있음

로그를 파일로 저장하여 분석할 필요가 있음



2. 로깅툴의 종류


commons-logging : 스프링 3에서 사용하던 로깅툴


log4j : 효율적인 메모리 관리로 그동안 많이 사용되었음


logback : log4j 보다 성능이 더 우수하여 최근에 많이 사용되고 있음


SLF4J : logback을 사용하기 위한 인터페이스



3. SLF4J 설정방법


ㄱ) pom.xml 의 slf4j - version을 1.7.25 로 설정


1
2
3
4
5
6
7
<properties>
        <java-version>1.8</java-version>
        <!-- 2019년 1월 현재 최신 버전 5.1.4, 에러가 날 경우 호환성을 위해 버전을 내려야 함 -->
        <org.springframework-version>5.1.3.RELEASE</org.springframework-version>
        <org.aspectj-version>1.9.2</org.aspectj-version>
        <org.slf4j-version>1.7.25</org.slf4j-version>
</properties>
cs



ㄴ) pom.xml 에 라이브러리 추가

<dependency>태그를 이용해 추가를 하면 메이븐이 자동으로 다운로드 받아준다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
        </dependency>
 
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>  
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
            <scope>runtime</scope>
</dependency>
cs



ㄷ) src/main/resources 에 logback.xml 파일을 작성


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- log4jdbc-log4j2 -->
    <logger name="jdbc.sqlonly"        level="DEBUG"/>
    <logger name="jdbc.sqltiming"      level="INFO"/>
    <logger name="jdbc.audit"          level="WARN"/>
    <logger name="jdbc.resultset"      level="ERROR"/>
    <logger name="jdbc.resultsettable" level="ERROR"/>
    <logger name="jdbc.connection"     level="INFO"/>
    
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-4level [%logger.%method:%line]-
                %msg%n</pattern>
        </layout>
    </appender>
 
    <appender name="LOGFILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/WEB-INF/logback.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 30일 지난 파일은 삭제한다. -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4level [%logger.%method:%line]
                - %msg %n</pattern>
        </encoder>
    </appender>
 
    <!-- 로그의 레벨( 지정된 로그 레벨 이상만 수집 ) : DEBUG < INFO < WARN < ERROR < FATAL -->
    <logger name="myweb" additivity="false">
        <level value="INFO" />
        <appender-ref ref="LOGFILE" />
        <appender-ref ref="CONSOLE" />
    </logger>
 
    <root>
        <level value="INFO" />
        <appender-ref ref="CONSOLE" />
    </root>
 
</configuration>
 
cs



ㄹ) 로그를 수집할 클래스에 변수 선언


private static final Logger logger = LoggerFactory.getLogger (클래스 이름.class);


HomeController.java (파일중 일부)

1
2
3
4
5
6
7
8
9
@Controller
public class HomeController {
    
    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
//로그를 수집할 클래스의 변수 선언
    
    /**
     * Simply selects the home view to render by returning its name.
     */
    @RequestMapping(value = "/", method = RequestMethod.GET)
cs



private : 외부에서 로그를 가로채지 못하도록 하기 위해서

static final : 로그 내용이 바뀌지 않으므로



ㅁ) 로그를 수집할 method에서 로그 수집 명령어 호출


logger.info ("로그 타이틀", 출력할 값);


HomeController.java (파일중 일부)

1
2
3
@RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {
        logger.info("Welcome home! The client locale is {}.", locale);
//home 메소드에서 로그 수집 명령어를 호출한다.
cs



4. 로그의 level


ㄱ) Debug : Debug, Info, Warn, Error 포함


ㄴ) Info : Info, Warn, Error 포함


ㄷ) Warn : Warn, Error 포함


ㄹ) Error : Error 만 포함

'Back-End > Spring' 카테고리의 다른 글

Controller와 View의 연결 방법  (0) 2019.05.29
Spring 데이터베이스 연결 테스트  (0) 2019.05.29
표준 프레임워크 오픈 커뮤니티  (0) 2019.05.28
스프링의 실행 과정, 스프링의 특징  (0) 2019.05.28
Spring 설치  (0) 2019.05.27
:

표준 프레임워크 오픈 커뮤니티

Back-End/Spring 2019. 5. 28. 14:28

표준 프레임워크 오픈 커뮤니티

https://open.egovframe.org/cop/bbs/selectBoardArticle.do?bbsId=BBSMSTR_000000000013&nttId=5249&pageIndex=1053

'Back-End > Spring' 카테고리의 다른 글

Spring 데이터베이스 연결 테스트  (0) 2019.05.29
spring 로킹툴  (0) 2019.05.28
스프링의 실행 과정, 스프링의 특징  (0) 2019.05.28
Spring 설치  (0) 2019.05.27
스프링 (백기선) 학습일정, 인강  (0) 2019.05.22
:

스프링의 실행 과정, 스프링의 특징

Back-End/Spring 2019. 5. 28. 14:24



 

  -Spring MVC 처리 순서-



  1. 클라이언트 (Client) 가 서버에 어떤 요청을 한다면 스프링에서 제공하는 DispatcherServlet 이라는 클래스

     (일종의 front controller)가 요청을 가로챈다.

     (web.xml 을 살펴보면 모든 url( / )에 서블릿 매핑을 하여 모든 요청을 DispatcherServlet가 가로채게 해둠)

     (변경가능)


  2. 요청을 가로챈 DispatcherServlet는 HandlerMapping(URL 분석등) 에게 어떤 컨트롤러에게 요청을 위임하면

      좋을지 물어본다.

      (servlet-context.xml  에서 @Controller로 등록한 것들을 스캔해서 찾아준다.)


  3. 요청에 매핑된 컨트롤러가 있다면 @RequestMapping를 통하여 요청을 처리할 메서드에 도달한다.

 

  4. 컨트롤러에서는 해당 요청을 처리할 Service를 주입 (DI) 받아 비즈니스로직을 Service 에게 위임한다.


  5. Service 에서는 요청에 필요한 작업 대부분 (코딩)을 담당하며 데이터베이스에 접근이 필요하면 DAO를 받아

      DB처리는 DAO에게 위임한다.


  6. DAO는 mybatis (또는 hibernate 등) 설정을 이용해서 SQL 쿼리를 날려 DB의 정보를 받아 

     서비스에게 다시 돌려준다.


  7. 모든 로직을 끝낸 서비스가 결과를 컨트롤러에게 넘긴다.


  8. 결과를 받은 컨트롤러는 Model 객체에 어떤 view(jsp) 파일을 보여줄 것인지등의  정보를 담아

      DispatcherServlet 에게 보낸다.


  9. DispatcherServlet는 ViewResolver에게 받은 view(jsp) 파일에 대한 정보를 넘긴다.


  10. ViewResolver는 해당 JSP를 찾아서 (응답할 View를 찾아서) DispatcherServlet에게 알려준다.

       (servlet-context.xml 에서 suffix, prefix를 통해 /WEB-INF/views/index.jsp 이렇게 만들어 주는것도  

        ViewResolver 이다.)


  11. DispatcherServlet은 응답할 View에게 Render를 지시하고 View는 응답 로직을 처리한다.


  12. 결과적으로 DispatcherServlet이 클라이언트에게 렌더링된 View를 응답한다.


출처

https://jeong-pro.tistory.com/96




스프링의 환경설정 파일 ( web.xml ) 중 일부


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- 스프링의 환경설정 파일 로딩 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/root-context.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!-- 서블릿의 환경설정 -->
    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
cs



스프링의 DB연결 ( root-context.xml ) 중 일부


1
2
3
4
5
6
7
8
<!-- 드라이버 클래스 이름이 변경됨 -->
        <property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
        <!-- 연결문자열에 log4jdbc가 추가됨 -->
        <property name="url"
            value="jdbc:log4jdbc:oracle:thin:@localhost:1521:xe" />
        <property name="username" value="hr" />
        <property name="password" value="hr" />
    </bean>
cs



( servlet-context.xml ) 중 일부


1
2
3
4
5
6
7
8
9
10
<beans:bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>
    <!-- 스프링 빈을 태그로 등록하지 않고 자동으로 검색(auto scan) --> 
    <context:component-scan base-package="com.example.spring01" /> //이 프로젝트에 있는 파일들을 실행한다.
 
</beans:beans>
 
cs



HomeController.java com.example.spring01에 뒤에 /를 붙이면 이 부분이 실행된다)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {
        logger.info("Welcome home! The client locale is {}.", locale);
        
        Date date = new Date();
        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
        
        String formattedDate = dateFormat.format(date);
        
        model.addAttribute("serverTime", formattedDate );
        
        return "home"; //home.jsp 로 이동해야한다.
return "/WEB-INF/views/home"; //가 원래 코드이지만 코드가 길어서 위의 코드로 대체 하였다.
    }
    
}
cs



bean을 xml로 등록하는 방법


  <bean id = "참조변수" class="클래스 이름">

  </bean>


  <bean id ="homeController" class = "com.example.spring01.HomeController">

  </bean>

  ==> HomeController homeController = new HomeController( );




*bean을 자동으로 검색해서 등록

<context:component-scan base-package="기준 패키지 경로" />


@Controller : 컨트롤러 빈

@Repository : dao (데이터베이스 관련 작업) bean

@Service : 서비스 (비즈니스 관련 로직) bean

@Inject : 의존관계 주입



-스프링의 디렉토리 구조-


  src/main/java - 자바 코드 (Controller, Model, Service)


  src/main/resources - 자바 코드에서 참조하는 리소스 파일들

                              sqlMapConfig.xml, mybatis의 mapper


  src/test/java - 테스트 관련 코드


  src/test/resources - 테스트 코드에서 참조하는 리소스 파일들


  src/main/webapp - 웹 서비스 루트 디렉토리 (외부에서 접근 가능)

  (주소에 web-inf가 들어가 있으면 실행이 되지 않는다. 클래스를 경유해서 가는건 가능하지만 직접적으로 접근하는건 되지 않는다.)

  (스프링에서는 jsp와는 다르게 안쪽에 숨기는것을 권장한다.)


  src/main/webapp/resources - js, css, iamge 등의 웹 리소스 파일


  src/main/webapp/WEB-INF/classes - 컴파일된 클래스


  src/main/webapp/WEB-INF/spring - 스프링의 환경설정 파일


  src/main/webapp/WEB-INF/spring/root-context.xml - 서블릿과 관련되지 않은 모든 리소스에 대한 설정


  src/main/webapp/WEB-INF/spring/appServlet/servelt-context.xml - 서블릿과 관련된 리소스에 대한 설정


  src/main/webapp/WEB-INF/views - html, jsp 페이지


  src/main/webapp/WEB-INF - 외부에서 접근 불가능 (보안을 위해서)

      컨트롤러를 경유해서 접근 가능


  pom.xml - 메이븐에서 참조하는 설정 파일





-스프링의 주요 특징-


POJO (Plain Old Java Object) 기반의 구성 : 별도의 API가 필요하지 않은 일반적인 자바 코드를 이용하여 개발 가능


의존성 주입 (DI)을 통한 객체 간의 관계 구성


  의존성 주입이란 ?


  의존성 주입(Dependency Injection, DI)은 프로그래밍에서 구성요소간의 의존 관계가 소스코드 내부가 아닌 외부의 

  설정파일 등을 통해 정의되게 하는 디자인 패턴 중의 하나이다.



AOP (Aspect Oriented Programming) 지원 : 반복적인 코드를 줄이고 개발자가 비즈니스 로직에만 집중할 수 있도록 지원함


편리한 MVC 구조


WAS에 종속적이지 않은 개발 환경



1. loC ( Inversion of Control, 제어의 역전 ) - 객체에 대한 제어권


기존에는 개발자에게 제어권이 있었음 (new 연산자)

객체의 제어권을 스프링에게 넘김

인스턴스의 라이프 사이클 (생성부터 소멸까지)을 개발자가 아닌 스프링 프레임웍이 담당




2. DI ( Dependency Injection, 의존관계 주입 )


객체 간의 의존성을 개발자가 설정하는 것이 아닌

스프링 컨테이너가 주입시켜 주는 기능

객체를 쉽게 확장하고 재사용할 수 있음


ㄴ 의존 관계 

B의 코드가 변경되면 A의 코드도 변경되는 경우

A와 B는 의존관계가 있다.

A는 B에 의존한다.

강한 결합은 (결합도가 높으면) 유지보수를 어렵게 한다.

한 곳의 수정 -> 나비효과


ㄴ 강한 결합과 느슨한 결합


  // 생성자가 private으로 바뀌면

  // MemberUse 클래스도 수정해야 함


  class MemberUse {

     public MemberUse( ){

        Member m = new Member();

      }

   }

   public class Member{

     String userid;

     String passwd;

     String name;

     private Member(){

     }

  }


  // 생성자가 private으로 바뀌어도

  // 영향을 받지 않음


  class MemberUse {

     public MemberUse(Member m){

        

      }

   }

   public class Member{

     String userid;

     String passwd;

     String name;

     private Member(){

     }

  }


'Back-End > Spring' 카테고리의 다른 글

spring 로킹툴  (0) 2019.05.28
표준 프레임워크 오픈 커뮤니티  (0) 2019.05.28
Spring 설치  (0) 2019.05.27
스프링 (백기선) 학습일정, 인강  (0) 2019.05.22
Spring Lagacy, Boot 학습 일정  (0) 2019.05.16
:

Spring 설치

Back-End/Spring 2019. 5. 27. 15:29

 1. STS 다운로드 (http://spring.io.tools)



 2. C: 디렉토리에 옮기기



 3. STS4 실행



 4. 워크스페이스는 이클립스 워크스페이스 안에다 스프링 폴더를 만들고 하기.



 5. Help > Eclipse Marketplace에서 Spring Tools Add-On 3.9.7.Release 확장 프로그램 설치



 6. 프로젝트 기본 설정


    기본 인코딩을 UTF - 8로 번경

    경로 Window-Preferences-General-Workspace-Text File encoding 속성을 UTF-8로 변경


    경로 Window-Preferences-Web

    html/css/jsp의 인코딩을 UTF-8로 변경함 



 7. 소프트 웨어 설정


help-install new Software 선택

Work with를 아래처럼 선택

  


그 다음 아래 그림처럼 검색 후 (Eclipse Java Web Developer Tools) next누르기




8. jsp 템플릿 편집 (학원에선 안해도 됬음)


   Window - Preferences - Web - JSP Files - Editor - Templates - New JSP File (html) 선택 후 - Edit 클릭함

   (Name에 html 5가 있다면 하지 않아도 된다.)



9. Spring sample 프로젝트를 다운로드 받은 후 압축을 풀고 import 하기


http://mannaedu.com/bbs/board.php?bo_table=pds&wr_id=74


다운 받은후에 압축을 풀고 sts4 실행후 마우스 우클릭 - import - General - Existing Projects into Workspace - next - Browes

- 소스 경로를 찾는다.- 옵션에서 Copy projects into workspace 를 체크하고 Finish를 누른다.

이런 프로젝트를 메이븐(maven) 프로젝트라고 한다.

외부 라이브러리를 참조하기 힘든 jsp파일의 단점을 보완한 프로젝트

xml에 라이브러리 이름이 있다면 자동으로 다운받아 저장하게 해준다.

메이븐에서 관리하는 외부 라이브러리 디렉토리 = c : /사용자/계정/.m2 에 java 파일이 저장되어 있다.



각종 라이브러리 다운로드 사이트 

 https://mvnrepository.com/로 이동해서 받고싶은 라이브러리의 코드를 복사해서 xml에 붙여넣기 하면 사용 가능



우클릭 => project => other =>

Spring Legacy Project => Spring MVC project

패키지 이름 : com.example.spring01

메이븐 라이브러리 : 사용자/.m2 디렉토리 확인


xml 일부분



spring 버전 변경 : pom.xml 수정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId> <!-- 그룹이름 -->
    <artifactId>spring01</artifactId> <!-- 스프링 프로젝트 이름 -->
    <name>spring01</name>
    <packaging>war</packaging>
    <version>1.0.0-BUILD-SNAPSHOT</version>
    <properties>
        <java-version>1.8</java-version><!--자바 버전-->
        <org.springframework-version>5.1.4.RELEASE</org.springframework-version> <!--스프링 프레임워크 버전 5.1.4로 수정함-->
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
    </properties>
    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                 </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
cs


2019년 1월 기준 스프링의 최신버전은 5.1.4이며 에러가 발생할 경우 하위 버전으로 설정 

(Java 최신 버전은 11이지만 호환성을 위하여 1.8로 설정함)


JDK 8+ for Spring Framework 5.x

JDK 6+ for Spring Framework 4.x

JDK 5+ for Spring Framework 3.x



jdk 버전 수정 

1.  프로젝트 우클릭 -> Properties -> Java Compiler -> JDK Compliance -> Use Compliance~~~ 체크 해제함 -> 자바 버전을 1.8로 바꾼다.

2.  프로젝트 우클릭 -> Properties -> Project Facets -> Java 버전을 1.8로 바꾼다.



sample 프로젝트에서 설정파일 복사 (예제 파일을 받지 않았을때 원래 해야하는 것들)


  

  1. pom.xml 복사


  2. src/main/resources/mappers 디렉토리 생성


  3. src/main/resources/mappers/sampleMapper.xml 복사


  4. src/main/resources/log4j.xml 복사


  5. src/main/resources/log4jdbc.log4j2.properties 복사


  6. src/main/resources/logback.xml 복사


  7. mybatis-config.xml 복사


  8. src/main/webapp/WEB-INF/web.xml 복사


  9. src/main/webapp/WEB-INF/spring/root-context.xml 복사


  10. src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 복사





메이븐 빌드 에러 발생시 해결 방법


  1. Java Build Path에서 jdk 버전을 1.8로 조정


  2. Project Facets에서 jdk 버전을 1.8로 조정


  3. 프로젝트 > Properties > Deployment Assembly > Add > Java Build Path Entries > Maven Dependencies 선택


  4. pom.xml 에서 spring version 조정


  5. 프로젝트 clean, server clean


  6. STS를 종료한 후 메이븐 저장소 (.m2) 삭제, STS 재시작





예제 실행 결과








:

스프링 (백기선) 학습일정, 인강

Back-End/Spring 2019. 5. 22. 10:58

백기선


1. 스프링 프레임워크 입문


https://www.inflearn.com/course/spring



2. 예제로 배우는 스프링 입문


https://www.inflearn.com/course/spring_revised_edition










'Back-End > Spring' 카테고리의 다른 글

spring 로킹툴  (0) 2019.05.28
표준 프레임워크 오픈 커뮤니티  (0) 2019.05.28
스프링의 실행 과정, 스프링의 특징  (0) 2019.05.28
Spring 설치  (0) 2019.05.27
Spring Lagacy, Boot 학습 일정  (0) 2019.05.16
:

Spring Lagacy, Boot 학습 일정

Back-End/Spring 2019. 5. 16. 14:23




Spring Lagacy, Boot 학습 일정.xlsx


Spring (Lagacy) 
30강짜리 강의 오렌지색

https://www.youtube.com/watch?v=KkMlhnEI9ds&list=PLY9pe3iUjRrRiJeg0jw22yW1G5yzAdiqC




Spring Boot 
Spring boot 백기선 40강짜리
https://www.youtube.com/results?search_query=Spring+boot+%EB%B0%B1%EA%B8%B0%EC%84%A0












'Back-End > Spring' 카테고리의 다른 글

spring 로킹툴  (0) 2019.05.28
표준 프레임워크 오픈 커뮤니티  (0) 2019.05.28
스프링의 실행 과정, 스프링의 특징  (0) 2019.05.28
Spring 설치  (0) 2019.05.27
스프링 (백기선) 학습일정, 인강  (0) 2019.05.22
: