//반드시 하나의 요소들만 반환하여야한다. div로 감싼다.
function App(){
  return(
    <div>
        <h1>리액트 안녕~!!</h1>
        <h2>프로그래밍 시작합니다.</h2>
    </div>
  )
}

Node.js 설치

index.js는 진입

App.js는 기본

import 구문을 특정 파일을 불러오는 것을 의미.

Node.js에서는 import가 아닌 require라는 구문으로 패키지를 불러올 수 있다.

이러한 기능을 브라우저에서도 사용하기 위해 번들러사용

번들러: 웹팩, Parcel, browserify라는 도구 등

리액트 프로젝트에서는 웹팩 사용

번들러를 사용하면 import 또는 require로 모듈을 불러왔을 때 불러온 모듈을 모두 합쳐서 하나의 파일 생성. 최적화 과정에서 여러 개의 파일로 분리

babel - loader는 자바스크립트 파일들을 불러오면서 최신 자바스크립트 문법으로 작성된 코드를 바벨이라는 도구를 사용하여 ES5 문법으로 변환(구버전 웹브라우저와 호환하기 위해서)

 

JSX: 자바 스크립트 확장 문법. 브라우저에서 실행되기 전에 코드가 번들링되는 과정에서 바벨을 사용하여 일반 자바스크립트 형태의 코드로 변환

시작과 끝이 엄격함.

 

div로 감싸야한다.

 

import { Fragment } from "react";

//Fragment 사용
function App(){
  return(
    <Fragment>
      <h1>리액트 안녕</h1>
      <h2>잘 실행되는지 확인해 봅시다.</h2>
    </Fragment>
  );
}

 

'react' 카테고리의 다른 글

const[변수,함수]=useSate, event.target,...스프레드 연산자, some연산자  (0) 2023.08.16
라우팅  (0) 2023.08.10

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks fetch --no-tags origin

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks pull --no-commit origin dev
From https://github.com/citygray/groupStudy
 * branch            dev        -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:

 

 

 

https://sangnam2.tistory.com/entry/git-pull-%EC%97%90%EB%9F%AC-error-The-following-untracked-working-tree-files-would-be-overwritten-by-mergePlease-move-or-remove-them-before-you-merge

 

git pull 에러 (error : The following untracked working tree files would be overwritten by merge:Please move or remove them be

error : The following untracked working tree files would be overwritten by merge:Please move or remove them before you merge 문제가 되는 파일을 이동하거나 지우라는 뜻 이다. git add -A git stash git pull 해당 명령어를 입력하면

sangnam2.tistory.com

 

문제가 되는 파일을 삭제하거나 이동하라는 뜻

 
git add -A
 
git stash
 
git pull

'개인 공부 or 오류' 카테고리의 다른 글

모달창 구현 연습  (0) 2023.08.19
회원가입창  (0) 2023.08.03
복습, parameterMap, parameterType, resultMap, resultType  (0) 2023.08.02
MyBatis 연습  (0) 2023.08.01

조건문 <c:choose>, <c:when>, <c:otherwise>

<c:choose>는 Java 언어의 switch~ case와 비슷하게 여러 조건중에 하나를 선택한다. <c:choose>는 switch에 해당되고 <c:when>는 case에 해당되며, <c:otherwise>는 default에 해당된다.

 

controller주소는 .do

jsp에서는 .do안 붙여도 가능

 

로그아웃 컨트롤러에서 session을 제거

		HttpSession session = null;
		session = request.getSession(false);	//기존 세션 객체 존재시 반환. 없으면 null반환
		session.invalidate();
		return "/board/getBoardList.do";

 

오류1.

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='id', mode=IN, javaType=class java.lang.String, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111
### The error may exist in query/member.xml
### The error may involve com.mvc.member.dao.memberMapper.updateInfoForm-Inline
### The error occurred while setting parameters
### SQL: SELECT id, name, email, phone, regdate FROM member where id=?
### Cause: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='id', mode=IN, javaType=class java.lang.String, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111
	org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
	com.mvc.member.dao.MemberMapperImpl.updateInfoForm(MemberMapperImpl.java:57)
	com.mvc.member.service.MemberServiceImpl.updateInfoForm(MemberServiceImpl.java:51)
	com.mvc.member.controller.UpdateInfoFormController.execute(UpdateInfoFormController.java:25)
	com.mvc.common.controller.DispatcherServlet.process(DispatcherServlet.java:51)
	com.mvc.common.controller.DispatcherServlet.doGet(DispatcherServlet.java:25)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	com.mvc.common.util.EncoderFilter.doFilter(EncoderFilter.java:25)

return값을 안 줬다...ㅠㅠ

 

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='id', mode=IN, javaType=class java.lang.String, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111
### The error may exist in query/member.xml
### The error may involve com.mvc.member.dao.memberMapper.updateInfoForm-Inline
### The error occurred while setting parameters
### SQL: SELECT id, name, email, phone, regdate FROM member where id=?
### Cause: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='id', mode=IN, javaType=class java.lang.String, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111
	org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
	com.mvc.member.dao.MemberMapperImpl.updateInfoForm(MemberMapperImpl.java:57)
	com.mvc.member.service.MemberServiceImpl.updateInfoForm(MemberServiceImpl.java:51)
	com.mvc.member.controller.UpdateInfoFormController.execute(UpdateInfoFormController.java:25)
	com.mvc.common.controller.DispatcherServlet.process(DispatcherServlet.java:51)
	com.mvc.common.controller.DispatcherServlet.doGet(DispatcherServlet.java:25)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	com.mvc.common.util.EncoderFilter.doFilter(EncoderFilter.java:25)

session으로 값을 가져와서 해주니 해결

 

부적합한 열유형

name, id 값 오타가 났다.

java.sql.SQLException: 부적합한 열 유형: 1111
	oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:4031)
	oracle.jdbc.driver.OraclePreparedStatement.setNullCritical(OraclePreparedStatement.java:4182)
	oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:4166)
	oracle.jdbc.driver.OraclePreparedStatementWrapper.setNull(OraclePreparedStatementWrapper.java:1008)
	java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.base/java.lang.reflect.Method.invoke(Method.java:568)
	org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:67)
	jdk.proxy3/jdk.proxy3.$Proxy8.setNull(Unknown Source)
	org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:65)
	org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:87)
	org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:94)
	org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:64)
	org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:88)
	org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
	org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
	org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
	org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
	org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
	com.mvc.member.dao.MemberMapperImpl.updateMember(MemberMapperImpl.java:38)
	com.mvc.member.service.MemberServiceImpl.updateMember(MemberServiceImpl.java:56)
	com.mvc.member.controller.UpdateMemberController.execute(UpdateMemberController.java:27)
	com.mvc.common.controller.DispatcherServlet.process(DispatcherServlet.java:51)
	com.mvc.common.controller.DispatcherServlet.doGet(DispatcherServlet.java:25)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	com.mvc.common.util.EncoderFilter.doFilter(EncoderFilter.java:25)

 

update에서는 반환형이 int라 MemberVO를 반환해 주는 것이 아니라 int값을 반환해 줘야 한다.

mapper에서 쓰인

<update id="appTest">

update ~ set ~ 이 구문이

</update>

 

controller에 와서

int a = service.appTest(~)

a.put("success", (a==1));

 

 

이런식으로 오는 것을 발견했다.

아니, 리턴값이 없는데 갑자기 int...?

찍어보니 1을 리턴하는 걸 보고 읭했다.

 

찾아보니 insert, update, delete에는 resultType이 없고

row의 개수를 반환한다고 한다.

 

insert의 경우는 삽입된 행의 개수를 반환

update의 경우는 수정에 성공한 행의 개수를 반환(실패시 0 반환)

delete의 경우는 삭제한 행의 개수를 반환

 

즉, 저 구문은 update 성공시에 웬만하면 1을 반환하고

실패시는 0이므로 put에 success를 넣은 것

 

 Cannot invoke "com.mvc.common.controller.Controller.execute(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)" because "ctrl" is null

맵핑을 주석 처리 해놓은걸 해제 안했었다.

 

 

'개인 공부 or 오류' 카테고리의 다른 글

모달창 구현 연습  (0) 2023.08.19
소스 트리 오류  (0) 2023.08.03
복습, parameterMap, parameterType, resultMap, resultType  (0) 2023.08.02
MyBatis 연습  (0) 2023.08.01
  • parameterMap : 비즈니스 로직으로부터 전달 받은, SQL 구문에 사용될 매개변수를 담은 객체
  • parameterType : 비즈니스 로직으로부터 전달 받은, SQL 구문에 사용될 매개변수의 자료형
  • resultMap : 비즈니스 로직으로 반환할, 결과값을 담은 객체
  • resultType : 비즈니스 로직으로 반환할, 결과값의 자료형

parameterType을 사용하는 방법

  • 파라미터의 값으로 사용: #{변수명}
  • 파라미터 명으로 사용: ${변수명}

ajax은 화면 전환이 없다.

'개인 공부 or 오류' 카테고리의 다른 글

모달창 구현 연습  (0) 2023.08.19
소스 트리 오류  (0) 2023.08.03
회원가입창  (0) 2023.08.03
MyBatis 연습  (0) 2023.08.01

영속 계층의 작업은 항상 다음과 같은 순서로 진행

1. 테이블의 컬럼 구조를 반영하는 VO(Value Object) 클래스 생성

2.MyBatis의 Mapper인터페이스의 작성/XML처리 SQL작성시 ;가 없도록 작성

3.작성한 Mapper인터페이스의 테스트

XML을 작성할 때는 반드시 <mapper>의 namespace 속성 값을 Mapper 인터페이스와 동일한 이름을 주는 것에 주의하고, <select> 태그의 id 속성 값은 메서드의 이름과 일치하게 작성합니다. resultType 속성의 값은 select 쿼리의 결과를 특정 클래스의 객체로 만들기 위해서 설정합니다. XML에 사용한 CDATA 부분은 XML에서 부등호를 사용하기 위해서 사용합니다.

 

1. DB 테이블

테이블 제작

 

2. DTO 객체 제작(DTO로 테이블의 객체를 가져옴)

DTO란 Data Trasfer Object로 DB에서 데이터를 불러오거나 저장 할 때, 데이터를 담기위한 그릇이라고 볼 수 있다. 흔히 알고있는 VO(Value Object)와 거의 같은 의미이다.

 

DB에서 데이터를 조회 했을 때 데이터를 담기위한 객체

API나 뷰의 종류에 따라 원하는 값만 불러오도록 일부 멤버 변수를 제외해도 됨오토 시퀀스(자동값 증가)sql developer에서auto_increment는 insert될 때 자동으로 값이 증가한다.

 

 

'개인 공부 or 오류' 카테고리의 다른 글

모달창 구현 연습  (0) 2023.08.19
소스 트리 오류  (0) 2023.08.03
회원가입창  (0) 2023.08.03
복습, parameterMap, parameterType, resultMap, resultType  (0) 2023.08.02

MVC 패턴의 Controller 역할로서 서블릿이 사용된다.

서블릿을 구현할 때 반드시 상속받아야하는 클래스: java.servlet.http.HttpServlet

 

포워드 기능: 하나의 서블릿에서 다른 서블릿이나 JSP와 연동하는 방법

포워드 기능이 사용되는 용도

요청에 대한 추가 작업을 다른 서블릿에게 수행하게함

요청에 포함된 정보를 다른 서블릿이나 JSP와 공유함

요청에 정보를 호함시켜 다른 서블릿에 전달할 수 있음

모델2 개발 시 서블릿에서 JSP로 데이터 전송에 사용

 

RequestDispatcher방법

일반적으로 포워딩 기능을 지칭

서블릿이 직접 요청하는 방법

RequestDispatcher클래스의 forward() 메서드 이용

 

dispatch를 이용한 포워딩: 서블릿에서 jsp로 데이터 전송을 할 때 주로 사용

클라이언트의 브라우저를 거치지 않고 서버에서 포워딩이 진행

클라이언트의 웹브라우저에서 첫번째 서블릿에 요청합니다.

첫 번째 서블릿은 RequestDispatcher를 이용해 두 번째 서블릿으로 포워드 합니다.

 

서블릿에서 다른 서블릿 또는jsp로 대량의 데이터를 공유하거나 전달하고 싶을 때 바인딩 기능을 사용한다.

데이터양이 적을 때는 get방식 이용

HttpServletRequest, HttpSession, ServletContext에서 사용. 저장된 자원을 프로그램 실행 시 서블릿이나 jsp에서 공유하여 사용

바인딩할 때 사용하는 메서드가 

setAttribute(String name, Object obj) : 데이터를 각 객체에 바인딩합니다.

getAttribute(String name): 각 객체에 바인딩된 정보를 name으로 가져옵니다. 반환형 Object=> 형변환 필요

removetAttribute(String name) : 각 객체에 바인딩된 자원을 name으로 제거합니다.

 

상태정보 유지

HTTP는 비연결성과 무상태로 동작하는 프로토콜이라서 이전 연결 때의 상태 정보를 서버가 유지해주지 않는다.

상태유지기술: 상태정보를 일정 시간 동안 지속해서 유지해주는 기술

필요성

HTTP의 비연결성을 보완

장바구니와 같이 여러 페이지로 이동하더라도 사용자 정보와 필요 정보 유지 필요

페이지 간의 지속성 서비스를 제공하기 위한 기법

hidden속성: html의 <input type="hidden" /> 태그를 이용하여 웹 페이지들 사이의 정보를 공유

GET 방식: GET 방식으로 URL 뒤에 정보를 붙여서 다른 페이지로 전송

쿠키: 클라이언트 PC(사용자 측에 정보 저장)의 Cookie 파일에 정보를 저장한 후 웹 페이지들이 공유

세션: 서버 메모리에 정보를 저장한 후 웹 페이지들이 공유, 자바의 모든 객체

 

쿠키 특징

정보가 클라이언트 PC에 저장됨

저장 정보 용량에 제한이 있음(파일 용량은 4kb)

보안이 취약함

클라이언트 브라우저에서 사용 유무를 설정할 수 있음

도메인당 쿠키가 만들어짐(웹사이트당 하나의 쿠키)

문자열 형태만 가능

 

1. 브라우저로 사이트에 접속

2. 서버는 정보를 저장한 쿠키 생성

3. 생성된 쿠키를 브라우저로 전송

4. 브라우저는 서버로부터 받은 쿠키 정보를 쿠키 파일에 저장

5. 브라우저가 다시 접속해 서버가 브라우저에게 쿠키 전성을 요청하면 브라우저는 쿠키 정보를 서버로

6. 서버는 쿠키 정보를 이용해 작업을 함.

 

Persistence 쿠키

파일로 생성, 쿠키를 삭제하거나 쿠키 설정 값이 종료된 경우, 최초 접속 시 서버로 전송, 로그인 유무 또는 팝업창을 제한할 때

Session 쿠키

브라우저 메모리에 생성, 브라우저를 종료한 경우, 최초 접속 시 서버로 전송되지 않음, 사이트 접속 시 Session 인증 정보

 

쿠키API 특징

javax.servlet.http.Cookie 사용(클래스)

HttpServletResponse의 addCookie()메서드를 이용해 클라이언트 브라우저에 쿠키를 전송한 후 저장

HttpServletRequest의 getCookie()메서드를 이용해 쿠키를 서버로 가져온다.

 

int getMaxAge(초단위): 쿠키의 최대지속 시간을 초단위로 반환 -1일 경우 브라우저가 종료되면 바로 쿠키도 만료되게 된다.

String getName(): 쿠키의 이름

 

쿠키 생성 

쿠키는 (이름, 값)의 쌍 정보를 입력하여 생성.

쿠키의 이름은 알파벳과 숫자로만 구성되고, 쿠키 값은 공백, 괄호, 등호, 콤마, 콜론, 세미콜론 등은 포함 불가능

Cookie cookie = new Cookie(name, value);

 

클라이언트의 컴퓨터에 파일 형태로 저장

내장객체 response의 addCookie메소드를 이용

response.addCookie(cookie)

 

세션

HttpSession: 인터페이스 타입, HttpServletRequest의 getSession()이나 getSession(true)메서드를 이용하여 생성할 수 있다.

HttpSession 객체가 생성될 때는 요청을 보내온 클라이언트 정보, 요청 시간 정보 등을 조합한 세션ID가 부여되며, 이 세션ID는 클라이언트 측에 쿠키 기술로 저장된다.

서버에 생성되며 클라이언트에는 세션ID(로그인을 하면 동일한 세션 ID를 사용 , 톰캣의 기본 값은 30분)가 쿠키 기술로 저장되어 각 클라이언트에 대하여 생성되는 HttpSession 객체를 클라이언트마다 개별적으로 유지 및 관리.

 

클라이언트가 서버에 요청하는 구조

1.요청

2.Session 객체 생성: getSession()

3.세션 ID와 상태 정보 저장

4.응답+세션ID

5.요청 + 세션ID

6.세션ID로 클라이언트와 연결 기능 유지

 

 

'JSP' 카테고리의 다른 글

MVC 패턴  (0) 2023.07.17
EL, JSTL  (0) 2023.07.14
JSP  (0) 2023.07.03

관계: 업무적인 연관성

식별관계(실선): 부모테이블의 기본키가 자식 테이블의 기본 키 혹을 후보 키 그룹의 구성원이 된다.

비식별 관계(점선): 부모 테이블의 기본 키가 자식 테이블의 일반 칼럼이 된다.

 

계획

1.세부 추진일정 수립

2.인터뷰 계획[현업 담당자와 개발자 간에 회의]

3. 자료수집 계획[요구분석 및 장표수집]

 

분석

1. 장표와 인터뷰 자료 등 수집된 자료를 바탕으로 DATA 분석

2. 개념적 데이터 모델링 및 ERD 작성

 

설계

1. ERD를 기반으로 테이블 설계서 작성, 물리적 구조 설계

2. 화면 설계서 작성

 

구축

1.테이블 설계서를 기반으로 테이블 생성

2.화면 설계서를 기반으로 프로그램 코딩[VB, PB, MFC 등]

 

! pip install openpyxl

import pandas as pd

from sklearn.preprocessing import LabelEncoder

from google_drive_downloader import GoogleDriveDownloader as gdd

gdd.download_file_from_google_drive(file_id="", dest_path = "", unzip=True)

data = pd.readexcel("폴더명/자료이름", sheet_name="이름")

 

#위에서 5개의 데이터를 가져옴

data.head()

 

#기초 통계량을 확인할 수 있음

data.describe()

 

#데이터 칼럼확인

data.columns

 

#숫자로 변환할 칼럼 지정

columns = []

for col in columns: #반복문 정의. 반복 기준을 리스트로 주면 값하나씩 들고 와서 처리

le = LabelEncoder()  #범주형 데이터를 숫자로 변환

le.fit(data[col]) #숫자 형태로 변환하는 규칙설정

data[col] = le.transform(data[col]) #칼럼 변환

 

data.iloc[0:3, 0:5]

 

columns = ["종류", "연료", "변속기"]

for col in columns:

le = LabelEncoder()

le.fit(data[col])

data[col] = le.transform(data[col])

 

#하이브리드 컬럼값이 1인 row값 출력

data["하이브리드"] ==1

 

'빅데이터 분석' 카테고리의 다른 글

KNIME 타이타닉 예측 분석  (0) 2023.07.25
KNIME 이해 및 설치  (0) 2023.07.23
빅데이터 분석 플랫폼(2)  (0) 2023.07.23
빅데이터 분석 플랫폼(1)  (0) 2023.07.23
코딩 분석 도구  (0) 2023.07.23

+ Recent posts