heannim-world의 등록된 링크

 heannim-world로 등록된 티스토리 포스트 수는 107건입니다.

React 게시판 만들기(1) - React 설치 및 React Router v6 기본 구조 설정 [내부링크]

따라만드는 예제 출처 : https://binaryjourney.tistory.com/8 node.js와 npm와 CRA이란? 더보기 Node.js Node.js 는 자바스크립트가 브라우저 밖에서도 동작하게 하는 환경을 의미한다. 리액트 어플리케이션은 웹 브라우저 에서 실행되는 코드이므로 Node.js와 직접적인 연관은 없지만, 프로젝트를 개발하는 데 필요한 주요 도구들(ex.바벨, 웹팩)이 Node.js 기반이기 때문에 반드시 설치해야 한다. Node.js를 설치하면 npm(node package manager) 이 자동으로 설치 되는데 npm을 사용하기 위해서는 node.js가 설치되어 있어야 한다. 터미널에서 아래 명령어를 실행 함으로써 node.js 버전을 확인할 수 있다. 노드 버전이 정상적..

Spring Boot 란? 스프링과 스프링부트 차이점 [내부링크]

스프링 프레임워크 (Spring Framework) 스프링(Spring) 이란? 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크 - JAVA로 다양한 어플리케이션을 만들기 위해 개발을 더 쉽게 할 수 있도록 도와주는 프레임워크 - 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공(jsp, MyBatis, JPA 등등) - 전자정부 표준 프레임워크의 기반 기술로서 쓰이고 있다. - 중복코드 사용률을 줄이고 비지니스 로직을 더 간단하게 해주며, 오픈소스를 좀 더 효율적으로 가져다 쓸 수 있음. 스프링의 특징 ˙ 경량 컨테이너로서 자바 객체를 직접 관리한다. ˙ POJO(Plain Old Java Object) 방식의 프레임워크 - POJO : 단순하고 가벼운 ..

Node.js & npm 업데이트 하기 [내부링크]

Node.js 업데이트 하기 1) node -v 2) npm cache clean -f 3) npm install -g n 4) n lts 1) Node.js 현재 버전 확인 2) npm 캐쉬 삭제 (오류발생 할 수 있음) 3) n 플러그인 설치 : 노드 버전관리 플러그인 4) Node.js 버전 설치 (n 상세 사용법 링크 참조) n latest : 최신버전 n lts : lts 버전 n stable : 안정버전 npm 업데이트 하기 1) npm -v 2) npm i -g npm 1) npm 현재 버전 확인 2) npm 업데이트 -g 옵션 없을 시 현재 프로젝트만 적용됨.

NEWCRM 프로젝트 - (0) 프로젝트 세팅 [내부링크]

1. STS4 설치 및 JAVA 17 다운로드 1) Spring Toos 4 다운로드 Spring Tools 4 is the next generation of Spring tooling Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Theia IDE. spring.io C:\PROJECT 폴더 만들고 안에다가 jar 파일 넣고 압축을 푼다. contents도 압축 풀어서 안에 보면 안에 exe 파일 있음. 그걸 실행하면 된다. ++ 이클..

git 사용방법 정리 :: vsCode 에서 github에 프로젝트 올리고 불러오기 [내부링크]

참고한 사이트 : https://backlog.com/git-tutorial/kr/ [ 목차 ] 1. git이란? 2. git 설치 3.github에 로컬 프로젝트 올리기 4. github에 있는 프로젝트 내 로컬에 가져오기 5. 프로젝트 중간에 github에 있는걸 내 로컬에 가져오기 6. 사용하고 있는 git 관련 프로그램들 정리 1. git이란? git 오픈 소스 버전 관리 시스템(VCS: Version Control System) 로컬에서 버전 관리되어 자체로 구축해야함 소프트웨어 개발 및 소스 코드 관리에 사용 문서 작업할 때면 이전 내용으로 다시 돌아가서 작업해야할 때가 있다. 이를 해결하기 위해 백업용 복사본을 만들기도 하지만 관리하기 번거롭다. Git이란 소스코드를 효과적으로 관리하기 위..

[React] You are running `create-react-app` 4.0.3, which is behind the latest release (5.0.1). [내부링크]

문제 발생 실행코드 npx create-react-app ThePurE_Prj 오류 발생 및 원인 터미널에서 npx로 react App을 만들다가 생긴 오류. You are running `create-react-app` 4.0.3, which is behind the latest release (5.0.1). We no longer support global installation of Create React App. Please remove any global installs with one of the following commands: - npm uninstall -g create-react-app - yarn global remove create-react-app The latest instru..

네이버 블로그 만들기 프로젝트(9) - 게시글 검색 기능 [내부링크]

게시글 검색 기능 검색어 색션에 검색어를 입력하면 해당하는 게시글만 보이게 하자. [ 만들 기능 ] 1. 게시글 전체 검색 기능 2. 내 블로그에서 내 게시글로만 검색기능 1. 블로그 게시글 전체 검색 기능 검색을 블로그 메인 페이지에서 진행하면 전체 게시글 중에 검색하고(내것도 나옴), 내 블로그 안에서 하면 내가 작성한 게시글들만 검색되게 해보자. 1) jsp mainPage.jsp 에서 검색 시 form 으로 보내주도록 하자. 옵션값을 줘서 제목 또는 내용으로 검색할 수 있게 할 것이다. 블로그 전체 검색 제목 내용 검색 form을 통해 입력한 값을 searchWordAction.me로 보내줄 것임. 2) Controller 어차피 메인페이지에 게시글 리스트 띄우는 방식과 동일하다. 조건만 바뀐 것..

웹 페이지 캐싱 막기 [내부링크]

웹 프로그램 개발시 당연히 수많은 css, js 파일을 로드하게 된다. 이 파일들은 유지보수를 하면서 계속 수정되는데 문제는 브라우저에서 한번 불러온 css, js 파일을 캐시 해두는 탓에 사용자들에게 바로 적용이 되지 않는다. 특히 제품의 동일한 파일명의 js를 수정하였더라도 캐시된 수정전 버전이 적용되는 경우 브라우저 캐시를 날려도 적용이 안되는 경우가 있다. 따라서 캐싱되지 않도록 방법을 찾아야한다. 1. 캐시 사용금지 웹페이지의 헤더에 내용을 추가해서 캐시를 사용하지 않도록 설정할 수 있다. html 문서의 사이에 다음 내용을 추가한다. 위의 방법은 모든 캐시를 사용하지 않기 때문에 페이지를 로드할 때마다 새로 파일을 불러오기 때문에 사용자에게 바로 적용이 된다는 장점은 있지만, 반대로 파일의 변..

네이버 블로그 만들기 프로젝트(8) - 게시글 수정하기(이미지 업로드 포함) [내부링크]

게시글 수정하기 게시글 수정 버튼을 누르면 네이버 스마트 에디터를 연결해놓은 페이지로 이동한다. 그리고 이전에 작성했던 내용이 나오고, 그 내용을 수정하면 다시 update 될 수 있게 하자. 사진은 수정 할수도, 안할 수도 있기 때문에 따로 분기처리를 해줘야할 것 같다. [ 만들 기능 ] 1. 게시글 수정 버튼 누르면 수정페이지로 이동 2. 게시글 수정 페이지에 기존에 작성한 내용 띄우기 3. 게시글 수정 내용을 저장하면 DB에 업데이트(단, 사진은 분기처리) 1. 게시글 수정 버튼 누르면 수정페이지로 이동 1) jsp blogPost.jsp는 게시글 상세보기 페이지이다. 세션에 접속된 유저가 보고 있는 게시글의 작성자라면, 수정/삭제버튼이 보이게 해놓았다. 수정버튼을 누르면 postUpdateActi..

네이버 블로그 만들기 프로젝트(7) - 게시글에 사진 첨부하기(multipart로 ajax 통신) [내부링크]

게시글에 사진 첨부하기(multipart로 ajax 통신) 멀티파트를 통해 사진을 저장해주자. [ 만들 기능 ] 1. 네이버 스마트 에디터에 작성한 글과 사진이 DB에 저장됨 2. 저장된 이미지는 게시글 상세보기에서 볼 수 있음 1. 작성한 내용 ajax로 보낼 때 FormData로 보내기 FormData란? FromData란 ajax로 폼 전송을 가능하게 해주는 FormData 객체입니다. 더보기 FromData란 ajax로 폼 전송을 가능하게 해주는 FormData 객체입니다. 보통은 Ajax로 폼(form 태그) 전송을 할 일이 거의 없습니다. 주로 JSON 구조로 "KEY-VALUE" (키와 값) 구조로 데이터를 전송합니다. 하지만, form전송이 필요한 경우가 있는데, 이미지를 ajax로 업..

네이버 블로그 만들기 프로젝트(6) - Naver SmartEditor 2.0으로 게시글 만들기(+DB연결) [내부링크]

Naver SmartEditor 2.0으로 게시글 만들기(+DB연결) 네이버 블로그처럼 블로그 내용을 다채롭게 작성하고 싶었다. 찾아보니 Naver SmartEditor가 오픈소스로 나와있길래 사용하기로 했다. 현재 네이버 블로그에 적용된 3.0은 오픈소스로 공개가 되어있지 않고, 2.8까지 사진 업로드가 가능하다고 해서 2.8로 사용하기로 함. [ 만들 기능 ] 1. 게시글 작성 페이지에 발행 누르면 DB 저장 2. 저장 후 게시글 상세보기 페이지에서 읽을 수 있도록 연결 1. Naver SmartEditor 2.0 설치하기 요 블로그 참고했다.(https://beforb.tistory.com/53) 스마트 에디터 2.8.2 다운로드 : https://github.com/naver/smarteditor..

전자정부프레임워크 3.10 초기 설정하기 [내부링크]

[ 전자정부프레임워크 3.10 초기 설정 ] 전자정부프레임워크 기반의 제품 샘플을 제공하기 위해 기존에 만들어진 샘플 환경을 맞추고 최신제품으로 변환작업을 진행, 또한 새로운 샘플을 추가하기로 했다. [ 작업 내용 ] 1. 기존 샘플을 최신버전 샘플로 변환하는 작업(7 -> 8) - 샘플 내용 및 데이터는 동일 2. 새로운 샘플 추가 1. 공통 적용 내용 경로는 C://[제품명]_template/에 붙여넣기 프로젝트 명 eGovTemplate 으로 맞출 것. 최신화를 위해 jdk.1.8.0_192(x64)를 배포파일 내부에 넣고 적용. 공통 문서 작업을 위해 포트번호 8090으로 통일함. 2. 기초 셋팅 1) eclipse.ini에서 -vm 으로 jdk 64bit 폴더 설정 기존 제품에서는 x86 버전의..

placeholder 에서 줄바꿈하기 [내부링크]

줄바꿈 위치에 [ ] 을 넣어준다. 참고 : Character entity references in HTML

네이버 블로그 만들기 프로젝트(5) - 내 블로그 페이지 만들기 / 나만 내 게시글 삭제하기 [내부링크]

내 블로그 페이지 만들기 이젠 반복작업이다. 저번 포스팅의 위젯을 그대로 따고, 내 블로그 페이지에는 세션에 있는 회원의 정보를 띄워주도록 하자. [ 만들 기능 ] 1. 내 블로그 클릭하면 내가 쓴 게시글 목록이 나오게 하기 2. 게시글 목록을 클릭하면 게시글 상세페이지로 이동 3. 위젯에 내 프로필 사진과 ID를 띄움 4. 세션 ID = 게시글 쓴 사람 이면 삭제버튼이 보이게 하기 5. 게시글 삭제 기능 구현 1. 메인페이지에서 내 블로그 클릭하면 내가 쓴 게시글 목록이 나오게 하기 간단하게 링크를 걸어준다. 1) JSP MyBlog 로그인한 '내' 블로그에 가는 것이므로 sessionScope.id를 사용해준다. 2) Controller //-------------------- 내 블로그 페이지를 보..

네이버 블로그 만들기 프로젝트(4) - 게시글 상세페이지 연결 [내부링크]

게시글 목록 클릭 시 상세페이지 연결하기 게시글 목록을 클릭하면 해당 게시글로 이동하는 기능을 구현해보자. [ 만들 기능 ] 1. 목록에 있는 게시글 클릭 시 postNo를 넘겨줌 2. 해당 postNo에 해당하는 상세페이지로 이동 3. 해당 상세페이지에 글쓴이의 정보가 위젯에 뜨게 하기 1. 메인페이지에서 게시글 클릭 시 해당 postNo 보내주기 상세보기 페이지로 파라미터 postno를 함께 넘겨준다. ${postList.POST_UPLOADTIME} ${postList.POST_TITLE} ----- ${postList.MEM_NO} ${postList.POST_CONTENT} Read more → 2. 상세페이지에 게시글 내용 출력 부트스트랩으로 가져온 페이지에 게시글 목록 띄운 것과 동일한 방법..

네이버 블로그 만들기 프로젝트(3) - 게시글 목록 페이지 만들기 [내부링크]

게시글 목록 페이지 만들기 관리자가 아닌 일반로그인 후 게시글 목록을 띄우는 블로그 메인페이지로 이동하도록 구현해보겠다. [ 만들 기능 ] 1. 로그인 후 블로그 메인페이지로 이동 2. 메인페이지에 postDB에 있는 게시글 목록 리스트 띄우기 1. 로그인 후 일반회원이면 메인페이지로 가도록 링크 연결. 2. Controller에서 호출 URL을 받아 Action과 연결함. 3. Action에서 getPostList로 가져온 postList 배열값을 Service로 보내줌. 4. Service에서 커넥션 풀에서 DB 연결하고, 게시글 목록 배열로 담아옴. 5. DAO 안에서 SQL에 맞게 검색 후 결과값 리턴해서 Service에게 줌. (+커넥션 끊음) 6. Action에서 Service에게 받은 결과값..

네이버 블로그 만들기 프로젝트(2) - 비밀번호 유효성검사 기능 구현 [내부링크]

비밀번호 유효성검사 기능 구현 비밀번호는 간단하게 javascript에서 정규식으로 유효성 검사가 가능하다. 그럼에도 ajax 통신을 통해 뒷단에서 유효성 검사를 하는 이유는 1. 비밀번호 규칙 노출 방지 2. 소스보기로 노출되지 않도록 보안성을 위함이다. 따라서 id 중복검사와 같이 ajax로 컨트롤러 단에 보내 유효성검사 기능을 구현해보겠다. 네이버는 자물쇠 아이콘을 통해 비밀번호의 보안난이도를 표시한다. 사용불가 - 위험 - 보통 - 안전 - 빈 자물쇠 로 나뉘어져 있다. 1. 사용불가(red) - 8~16자 영문 대 소문자, 숫자, 특수문자를 사용하지 않는 경우 2. 위험(orenge) - 보안상 위험한 특정문구 및 숫자를 사용한 경우(1004, 8282, iloveyou, abc123) 3. 보..

네이버 블로그 만들기 프로젝트(1) - 아이디 중복검사 기능 구현 [내부링크]

아이디 중복검사 기능 구현 ajax 통신을 통해 DB에 Id가 중복되는지 확인해서 id중복검사 기능을 구현해보겠다. [ 만들 기능 ] 1. 빈값 체크 2. 유효성 검사(5~20자 특수문자 -와_만 허용) 3. id 중복체크 1. jsp에서 ajax 통신을 이용해서 호출 URL로 Data 보냄 2. Controller에서 호출 URL을 받아 Action과 연결함. 3. Action에서 getParameter로 가져온 userId값을 Service로 보내줌. 4. Service에서 id값을 받아 커넥션 풀에서 DB 연결하고, 회원정보 찾아봄. 5. DAO 안에서 service에게 전달받은 id를 SQL에 맞게 검색 후 결과값 리턴해서 Service에게 줌. (+커넥션 끊음) 6. 다시 Service에서 DB..

protected void doProcess(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException { 뜯어보기 [내부링크]

컨트롤러에서 요청/응답 처리하는 법 protected void doProcess(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException { 하나하나 뜯어보자면, protected : java 접근자, 같은 폴더(패키지)및 그 클래스를 상속(extends)해서 구현하는 경우 접근이 가능 void : return 되는 타입이 없음을 의미 HttpServletRequest,HttpServletResponse : 웹브라우저 URL로 servlet이 요청할 시 요청,응답을 받기 위해 만드는 객체. 매개변수로 가지고 있는거임. WAS가 웹브라우저로부터 Servlet 요청을 받으면 req객체 생성해서 저장하고 resp ..

HttpServletRequest 과 HttpServletResponse 메소드 정리 [내부링크]

HttpServletRequest 과 HttpServletResponse 메소드 정리 HttpServletRequest 를 간단하게 req라고 해봅시다. req를 사용하면, 값을 받아올 수가 있는데, 회원정보를 보냈다면 req 객체 안에 모든 데이터들이 들어가 있다. 따라서 req 객체의 몇가지 메소드들을 사용해서 원하는대로 꺼내쓰면 됨. HttpServletRequest 메소드 메소드 설명 req.getMethod() get방식과 post방식을 구분할 수 있다. req.getSession() 세션 객체를 얻는다. req.getProtocol() 해당 프로토콜을 얻는다. req.getParameter() 원하는 데이터를 꺼낼때(반환타입 String) req.getContextPath() 프로젝트 Path..

jQuery 를 이용하여 id, class, name 의 input value 값 가져오기 [내부링크]

jQuery 를 이용하여 id, class, name 의 input value 값 가져오기 1) id 값 기준으로 가져 오기 var valueById = $('#inputId').val(); # 은 아이디를 의미 2) class 값 기준으로 가져 오기 var valueByClass = $('.inputClass').val(); . 은 클래스를 의미 3) name 값 기준으로 가져 오기 var valueByname = $('input[name=inputName]').val(); input 태그의 name값을 그대로 입력

네이버 블로그 만들기 프로젝트(0) - 이클립스 설치 및 프로젝트 생성, 회원가입/로그인 기본기능 구현 [내부링크]

프론트엔드 단에서 자바스크립트만 열심히 만지다보니 이벤트나 메소드는 익숙해지고 있으나 서버단, 그리고 SQL 쿼리는 점차 까먹기에 이르렀다. 학원 다니면서 만들어봤던 쇼핑몰 프로젝트도 열심히 했지만, 여러명이서 나눠서 했기 때문에 디테일한 부분은 잘 모르는게 사실이다. 다시 복기시키는 겸, 요즘 열심히 하는 네이버 블로그의 폼을 따서 나만의 블로그(이지만 실상은 게시판인)를 만들어보기로 했다. 디자인은 크게 자신이 없어서 네이버 소스보기로 틀을 긁어오고, 나머지는 BootStrap을 사용할 예정이다. 회원가입/로그인 기능도 구글링해서 기본 테이블 제작 후, 후에 세부적으로 커스터마이징 하기로 마음먹었다. 하나하나 한걸 나눠서 전부 포스팅하면 좋을거라 생각하지만.... 로그인/회원가입 예제는 구글링에 잘 ..

[JAVA] if 조건문에서 ==가 안될 때, 문자열 비교 시 ==와 equals()의 차이점 [내부링크]

블로그 만들기 프로젝트 중 회원가입 부분에서 비밀번호 유효성 체크를 하는데 if문이 안먹더라. String userPwd = req.getParameter("userPwd"); //ajax로 전달한 data 값 userPwd PrintWriter out = resp.getWriter(); String result = "";//결과값 if (userPwd == "12345678!")) { //안됨 System.out.println("사용불가"); result = "1"; }else if (userPwd.equals("1004!!!!")) { //됨 System.out.println("위험"); //1004 등의 특정 의미있는 비밀번호 result = "2"; } out.write(result); //aja..

The superclass [내부링크]

갑자기 빨간줄 쳐지면서 Java Build Path가 안맞는단다. 2가지를 설정해본다. 1. 우클릭 -> Properties -> ava Bulid Path -> Libraries 선택 -> 우측에 Add Library -> Server Runtime - >Apache Tomcat(아파치 톰캣) 선택 2. 프로젝트 우클릭 -> Properties -> Project Facets -> Java -> Runtimes -> Tomcat 체크 -> Apply

java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'Controller' method [내부링크]

간만에 실행했는데 안되더라. 콘솔에 에러메시지를 보니 메시지가 다음과 같았다. java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'helloController' method 찾아보니 스프링에서 이런 에러가 나면 해당 **Controller.java 파일의 Mapping 에 문제가 발생한 것이라고 한다. 에러메시지 아래에 자세히 보니 HelloController.hello23과 hello21이 보이는데 21이 already bean method라는걸 보니 이미 쓰였나보다. 아니나 다를까, 처음에 일 시작할 때 어떻게 정리를 하면 좋을까 하다가 냅다 index 페이지에다가 링크를 걸어버렸는데 그 때 맵핑을 중복으로 걸었던 것으로 보인다. 중복되지..

정보처리기사 실기 2020~2022 SQL 문제 모아보기 [내부링크]

정보처리기사 실기 준비를 위해 개정된 2020년도부터 2022년까지의 코딩문제를 집중적으로 보기로 했다. 그 첫번째로 SQL 문제들을 가져와봤다. 문제 출처 : https://chobopark.tistory.com/291 [2022-2회] 3. H회사의 전체 제품 단가 보다 큰 제품 출력을 하고자 한다. 괄호안에 들어갈 알맞는 용어를 작성하시오. SELECT 제조사, 제품명, 단가 FROM 제품 WHERE 단가 > ( ) (SELECT 단가 FROM 제품 WHERE 제조사='H') 정답 더보기 ALL [2022-2회] 4. 다음 SQL 결과에 알맞는 답을 작성하시오. SELECT count(col2) FROM TABLE WHERE col1 in(2,3) or col2 in(3,5); 정답 더보기 ..

정보처리기사 실기(1) 2020~2022 문제유형 분석하기 [내부링크]

정보처리기사 실기 준비를 위해 개정된 2020년도부터 2022년까지의 문제를 집중적으로 분석해보기로 했다. 일단은 어떻게 출제하는지를 봐야하니 각 유형별로 우선 나눠봤다. (기사퍼스트 가답안 쪽에 출제영역까지 표시해두었길래 참고함. 정확하지 않을 수 있음) => 문제 하나씩 뜯어본게 아니라 정확하지 않을 수 있습니다. 일단 코딩문제가 제일 많다. 직접 코딩해서 결과값을 쓰거나 SQL의 경우 단어를 작성하거나, 관련 용어를 주관식으로 설명하는 것도 있었다. 코딩문제가 대충 평균 7문제정도 출제된다고 보면 된다. 주로 SQL, JAVA, C, 간혹 Python 정도 출제가 되는데 코딩문제만 다 맞아도 대략 35점은 먹고들어가는 것! 그러니 60점 커트라인을 넘으려면 나머지 이론 문제에서 5문제만 더 맞추면 ..

이클립스(Eclipse) 갑자기 CSS가 안먹을 때 [내부링크]

네이버 블로그를 만들어보는 프로젝트 진행중이다. CSS랑 HTML만 긁어서 디자인 만들어놓고 회원가입 및 로그인, 게시판 기능을 구현해보고 있다. 근데 갑자기 어느날 화면이 깨지기 시작함... 심지어 엊그제는 제대로 나왔던 화면이구요... CSS 경로를 바꾸지도 않았다. 구글링 해보니 확장자를 인식하지 못하는 mime 문제였다. 혹시 몰라서 다른 브라우저에서도 열어봤는데 IE에서 [MIME 형식이 일치하지 않아 CSS가 무시되었습니다.] 라고 떴거든. type=text/css로 되어있는데 왜 안되나 싶은데… 일단 MIME 문제인 것 같아서 css 허용해주는 코드를 web.xml에 추가해줬다. MIME 이란? MIME이란? MimeType(Multipurpose Internet Mail Extensio..

MIME이란? [내부링크]

MimeType(Multipurpose Internet Mail Extensions) 클라이언트에게 전송된 문서의 종류를 알린다. 파일 변환을 위한 포맷 개념 파일에는 여러가지 타입이 있다. Text부터 Image, Vidio, Audio 등 웹 상에는 수 많은 문서와 파일이 돌아다닌다. MIME 타입은 이메일이 등장한 이후, 이메일에 파일을 첨부하여 보내기 위해 등장했다. 첨부된 파일을 텍스트 문자 형태로 변환해서 이메일과 함께 전송하기 위한 포맷이다. 따라서 텍스트 문자 형태로 변환하기 위해 각각의 타입을 표준화하여 관리한다. 현재는 IANA(Internet Assigned Numbers Authority)라는 인터넷 할당 번호 관리기관에서 다양한 파일 타입을 표준화하여 관리하고 있다. MIME 타입..

서블릿/JSP 공부(2) - 웹 서버 프로그램 구조 [내부링크]

서블릿 기초를 다시 복습하고 싶어서 정리를 해보았다. 출처 : 유투브 뉴렉쳐 님의 2020 Servlet&JSP 프로그래밍 강의.(링크 클릭) 앞에 포스팅부터 보고 오십셔. 더보기 기초지식 JVM 구조 JVM 구조 JVM : 자바가상머신. 자바 바이트코드를 실행시키는 주체. 운영체제 종류와 무관하게 가능 즉, 운영체제 위에서 동작하는 프로세스로 자바를 컴파일해서 얻은 바이트코드를 기계 heannim-world.tistory.com 1탄 : 서블릿이란? 서블릿/JSP 공부(1) - 서블릿이란? JSP, CGI, 서블릿 라이프 사이클 Servlet 클라이언트 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술. 즉, JAVA를 사용해서 웹을 만들..

서블릿/JSP 공부(1) - 서블릿이란? JSP, CGI, 서블릿 라이프 사이클 [내부링크]

Servlet 클라이언트 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술. 즉, JAVA를 사용해서 웹을 만들기 위해 필요한 기술로, 자바 코드 안에 HTML 포함되어 있다. 클라이언트가 어떤 요청을 하면 그 결과를 다시 전송해주는 역할을 하는 JAVA 프로그램이다. JSP JavaServer Pages, HTML 코드에 JAVA 코드를 넣어 동적인 웹페이지를 생성하는 웹어플리케이션 도구. JSP가 실행되면 자바 서블릿(Servlet)으로 변환되며 웹 어플리케이션 서버(WAS)에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다. 서블릿 이전에 CGI가 있었다. 서블릿의 조상인 CGI(Common Gat..

객체지향 프로그래밍(Object-Oriented Programming) [내부링크]

객체지향 프로그래밍(Object-Oriented Programming) 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로, 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것. 객체는 변수와 메소드를 그룹핑한 것이다. 프로그래밍의 기본은 중복을 제거하는 것이다.덧셈 기능을 1000번 하는 것보다 "더하기"를 메소드로 만들면 코드 양도 줄어들고 문제가 발생해도 원인 파악이 쉽다. 입력값을 변수화 시키고 메소드들로 합계와 평균을 구하면 코드 양을 줄일 수 있다. 클래스 변수와 메소드가 많아지면 코드가 복잡해지게 된다. 따라서 연관되어 있는 변수와 메소드들을 함께 또 묶어서 "계산 기능"을 만든다. 이 로직들의 모임을 우리는 클래스(Class)라고 부른다. 클래스는 연관되어 있..

[오류] 'Starting Tomcat'Starting Tomcat v8.5 Server at localhost' has encountered a problem. [내부링크]

톰캣을 하도 많이 쓰다보니 포트가 겹쳤군요. Port 9000 required by Tomcat v8.5 Server at localhost is already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s). 요런 에러가 발생하기도 합니다. 'Starting Tomcat'Starting Tomcat v8.5 Server at localhost' has encountered a problem. The serv..

이클립스(Eclipse)에 Dynamic Web Project 안보일 때 [내부링크]

이클립스로 당차게 프로젝트 시작하려는데 Dynamic Web Project가 안보인다. 알고보니 이거 설치를 해줘야 하는 거더라고... Help > Install New Software > Web, XML, Java EE and OSGi Enterprise Development 펼치기 필요한것만 설치할꺼다. Eclipse Java EE Developer Tools Eclipse Java Web Developer Tools Eclipse Web Developer Tools Eclipse XSD Editors and Tools(없어서 XSL 설치) 그리고 다음, 허용, 끝냄 선택하면 끝!이클립스가 프로그램 껐다가 킬꺼냐고 하는데 껐다 키면 Others > Web 에 Dynamic Web Project가 생긴다.

Java compiler level does not match the version of the installed Java project facet. [내부링크]

프로젝트 아이콘에 표시나고 에러나더라고... Java compiler level does not match the version of the installed Java project facet. 자바 버전이 안맞는다네... 자바 버전을 cmd 에서 확인해봅니다. java -version 버전 8인데 17로 설정되어 있었음. properties > Project Facets > Java 를 자신이 사용하고있는 컴파일러 버전과 맞추어주도록하자. 1.8로 맞춰서 설정하니 에러 사라짐.

JVM 구조 [내부링크]

JVM 구조 JVM : 자바가상머신. 자바 바이트코드를 실행시키는 주체. 운영체제 종류와 무관하게 가능 즉, 운영체제 위에서 동작하는 프로세스로 자바를 컴파일해서 얻은 바이트코드를 기계어로 바꿔서 실행시키는 역할. 1. 소스코드 -> 바이트코드 소스코드는 .java로 저장한다.이걸 자바 컴파일러(javac)가 바이트코드로 바꿔주는데 그건 .class로 저장한다. 왜? 일단 1차적으로는 코드 숨기기, byte코드로 바꾸면 문법검사같은건 안하게 되면서 실행 시간이 단축됨. 근데 이러면 소스코드 변경할때마다 또 컴파일러가 .class로 byte코드로 변경하니까 번거로움. 2. 바이트코드 -> Runtime Data Area 이렇게 변경된 byte코드(.class)파일들은 class Loader가 Runtime..

[에러] java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener [내부링크]

갑자기 잘 되던 프로젝트가 404가 뜬다. Eclipse에서 Tomcat 구동 에러다. maven 사용하면 종종 발생하는 에러라고 한다. 심각: 클래스 [org.springframework.web.context.ContextLoaderListener]의 애플리케이션 리스너를 설정하는 중 오류 발생 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1420) at org.apache.catalina.loader.WebappClassLoaderB..

일반인에게 설명하는 [자바 프로그램의 실행 과정] - 2. 자바 프로그램 실행 [내부링크]

그동안 소스코드를 작성하고 언어를 배우며 써왔지만 실제로 어떻게 동작하는지에 대해서는 등한시한 경향이 있었다. 일반인도 이해할 수 있게, 가장 많이 쓰이는 자바 프로그램이 어떻게 동작하는지에 대해 정리를 해보고자 한다. 지난 글에서 프로그램이 어떻게 실행되는지 살펴보았다. 저번 글을 기반으로 자바 프로그램이 어떻게 되는지 확인해보자. 지난글을 확인해보고 싶다면? 일반인에게 설명하는 [자바 프로그램의 실행 과정] - 1. 프로그램 실행 그동안 소스코드를 작성하고 언어를 배우며 써왔지만 실제로 어떻게 동작하는지에 대해서는 등한시한 경향이 있었다. 일반인도 이해할 수 있게, 가장 많이 쓰이는 자바 프로그램이 어떻게 동작 heannim-world.tistory.com [ 자바 프로그램은 어떻게 실행될까? ]..

일반인에게 설명하는 [자바 프로그램의 실행 과정] - 1. 프로그램 실행 [내부링크]

그동안 소스코드를 작성하고 언어를 배우며 써왔지만 실제로 어떻게 동작하는지에 대해서는 등한시한 경향이 있었다. 일반인도 이해할 수 있게, 가장 많이 쓰이는 자바 프로그램이 어떻게 동작하는지에 대해 정리를 해보고자 한다. 자바 역시 프로그램이다. 그러니 가장 기초적인 질문부터 시작해보자. [ 프로그램은 어떻게 실행될까? ] 설계 → 코딩 → 번역 → 실행 1. 프로그램 설계 어떠한 문제를 해결하기 위해, 또는 어떤 기능을 제공하는 프로그램을 만든다고 하면 내부에 논리적 설계가 들어가게 된다. 즉, 어떤 순서와 논리와 구조로 이 기능이 구현되는지를 짜는데, 그것을 알고리즘이라고 한다. 내가 컴퓨터 구조도 잘 모르겠다면? 컴퓨터 구조와 메모리(스택, 힙, 메모리 계층 구조) 아아주 기초적인 지식으로 컴퓨터..

컴퓨터 구조와 메모리(스택, 힙, 메모리 계층 구조) [내부링크]

아아주 기초적인 지식으로 컴퓨터에 대한 이야기부터 해보자. 컴퓨터는 여러 장치를 합쳐놓은 기계다. 본체 내부에도 여러 장치를 합쳐놓았고, 모니터, 키보드, 스피커, 마우스 등의 구성요소도 컴퓨터의 한 요소이다. 이들의 장치를 기능으로 분류하면 크게 다섯가지이다. 컴퓨터 구조 컴퓨터 구조 장치 장치 설명 입력장치 키보드 등과 같은 데이터를 컴퓨터에 입력할 수 있는 장치(ex. 키보드) 출력장치 컴퓨터에서 외부로 정보를 출력하는 장치(ex. 프린터) 중앙 처리 장치 (CPU) 제어장치(control unit) 기계 제어하는데 필요한 신호를 공급해주는 장치. CPU의 구성요소로 요구되는 마이크로 동작들을 연속적으로 수행하게 하는 신호를 보냄으로써 명령을 수행하게 한다. 연산장치(ALU: Arithmetic..

Java 8을 사용하는 이유? Java 11과 비교, Java 버전에 맞는 JDK 이름 [내부링크]

1. 왜 JAVA 8을 사용하나? 1) Oracle 지원기간이 길다. Oracle JDK 지원 기간이 다음과 같다. Java 8 : 2030년 12월 Java 11 : 2026년 9월 Java 17 : 2029년 9월 옛날에 나온 Java 8이 그 이후 나온 11과 17보다 길다. 2) 자바는 객체지향형 프로그램이지만 JDK1.8부터 함수형 프로그래밍도 지원한다. 객체지향형 프로그래밍은 프로그램을 명령어의 목록으로 보는 것이 아니라 여러개의 독립된 단위(=객체)로 보기 시작하여 묶고, 재사용하고, 이리저리 만져서 조립하는 방법이라고 표현할 수 있다. 절차지향형 프로그래밍은 말 그대로 순서대로 진행하는 것이다. 함수형 프로그래밍은 순수한 함수를 사용해서 상태를 제어한다기 보다는 빨리 처리하는데 초점을 맞춘..

[Oracle] 오라클 패스워드 경고 ORA-28002: the password will expire within 7 days [내부링크]

ORA-28002: the password will expire within 7 days 오류 해결 방법 간만에 오라클 켜서 DB 접속했더니 ORA-28002: the password will expire within 7 days 에러가 발생했다. 이유는 패스워드 기간이 7일 남았다는 말이다. dba 계정에 패스워드를 설정할 때 기간이 정해져있을 경우에 발생한다. 이렇게 해도 오라클 접속은 가능해서 오라클 스크립트에서 남은 기간 확인이 가능한데, cmd도 사용할 겸 둘 다 기록해본다. 1. cmd 창에서 SQL 접속하기 sqlplus //SQL로 접속한다. Enter user-name: sys as sysdba //sys 계정(두목)에 OS의 시스템 권한으로 접속한다. Enter password: //비..

[Tomcat] 톰캣 로그 한글 깨짐 수정 방법 [내부링크]

톰캣 로그가 다음 사진과 같이 요상한 한글로 깨지는 경우가 있다. 대부분 이러한 문제는 인코딩이 깨져서 발생하는데, 톰캣설정 시 ANSI로 인코딩 언어가 설정되어있기 때문이다. 터미널 화면 상태창에서 우클릭 > 속성 을 클릭하면 "Tomcat" 속성 화면이 나온다. 보면 현재 코드 페이지가 949 (ANSI)로 되어 있는데, 이 설정 자체를 EUC-KR로 변경해주면 된다. 방법은 아래와 같다. 1. $TOMCAT_HOME/conf/logging.properties 파일을 텍스트 편집기로 오픈 2-1. UTF-8을 EUC-KR 로 변경한다. ############################################################ # Handler specific properties. #..

[Git] git - 버전관리 시스템 / git 저장소 만들기(init) 생성 및 커밋하기(add, commit) [내부링크]

git bash window에서 유닉스, 리눅스 계열의 명령어를 통해서 제어할 수 있도록 하는 프로그램. git의 기본적인 버전관리 명령어를 확인해보자. Codeonweb codeonweb.com 에 들어가서 "실습" 에서 git을 설정하면 git에 대한 실습도 가능하다. 리눅스 명령어 기능 pwd 내가 어디있는지(현재 프로젝트 폴더 위치) 알려줌 cd 내 위치를 ~로 이동 mkdir 폴더(디렉토리) 만들기 ls 현 위치의 폴더(디렉토리)에 있는 파일 목록 조회 cp 파일 복사 mv 파일 이동 rm 파일 제거 find ~ -name 00 ~(검색경로)에서 00(파일이름) 찾기 cat 00 00(파일이름)의 내용 확인 git으로 저장소 생성 및 커밋하기 1. 생성하기 git 사용할 수 있는 명령어 전체가..

[JavaScript] 생활코딩 자바스크립트 문법 한번에 훑기 [내부링크]

자바스크립트는 웹브라우저 위에서 동작하는 언어이다. 따라서 웹프로그래밍을 하려고 하면 사실상 필수. 최근에는 node.js라는 서버측 자바스크립트가 각광받고 있다. 특히 DB의 경우, MongoDB와 같은 JavaScript친화적인 데이터베이스를 사용하면 클라이언트부터 서버, DB까지 전부 JavaScript 기반으로 구현 가능하다. JavaScript는 웹페이지를 동적으로 제어하기 위한 언어. 원래는 HTML이 한번 화면에 출력되면 변화를 줄 수 없는 정적인 페이지였기 때문에 이를 해결하기 위해 네스케이프에서 만들었다. 자바스크립트 표준안은 ECMAScript이다. 최근 HTML5가 성황하면서 지금까지 모바일 환경에서 구현했던 기능들이 웹에서도 가능하게 되었다. HTML5 더보기 더보기 W3C(Wo..

[JS] 협업 툴 개념 및 정리 - node.js 패키지 툴(npm, yarm, brew) / Git 클라이언트 프로그램(Fork, Gitlab, gitbash) [내부링크]

1. Git Bash Git Bash란 컴퓨터 OS와 상관없이 리눅스 베이스 터미널용 Git이다. 코드 관리나 협업에 사용하기 좋은 형상관리 툴이다. 따라서 생긴것은 리눅스 터미널 화면이며, 리눅스 명령어로 사용가능하다. 즉, window에서도 리눅스 체제의 명령어를 쓸 수 있도록 해준다. 설치 후 git 이라는 코드를 치면 사용가능한 작업 및 명령어들이 출력된다. 2. Gitlab Github는 웹사이트이며, 비교하자면 블로그 같은 느낌이다. 내 코드를 올릴 수 있는 각각의 계정들이 있으며, 오픈소스는 clone을 통해 불러오기도 가능하다. Gitlab은 비슷하지만, 비교하자면 카페로 볼 수 있다. gitlab마다 링크가 있다. 우리의 경우 웹으로 접속 가능. 그 이유는 Gitlab은 자신의 서버에 직..

[Final Project] 마이페이지 기능 구현 정리 [내부링크]

[구현 기능 요약] 1. 회원정보 CRUD 회원가입 - 아이디 중복확인(x) / 회원가입규정 / (null 상태로 submit 하면 에러페이지) 로그인 - (null 상태로 submit 하면 그냥 그대로) 회원가입 - 로그인 이동 링크 회원정보수정 - 아이디 변경불가 / 비밀번호 주민번호 비밀번호화로 매번 다시 입력해야함. / 사진 꼭 첨부 필수 / 입력 빈칸 다 채우게 되어있음 / 이메일 @ 필요 로그아웃 - 세션 나가기 가능 회원탈퇴 - 데이터없음으로 업데이트 걸었으나 1회성으로만 가능 2. 마이페이지 /쉐프페이지 CRUD 정보count - 숫자 세기 완료 / 단, 별점 없으면 에러남. 회원정보출력 - 세션scope로 잘 가져옴 / 업데이트가 늦음 프로필 사진 수정 - 다시 로그인해야 적용됨 레시피 ..

[sts4] spring 에러 - The superclass [내부링크]

workspace 파일을 옮겼더니 에러 발생. 에러는 다음과 같다. The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path Multiple annotations found at this line: - javax.servlet.ServletException cannot be resolved to a type - javax.servlet.jsp.PageContext cannot be resolved to a type - javax.servlet.jsp.JspException cannot be resolved to a type 환경이 바뀌어서 제대로 서버환경을 안 잡아줘서 생기는 오류였다. 해결 방법 1. 오류가..

[RPA] Ui Path - 메일송수신 / 데이터 스크래핑 고급 / DB 연결 [내부링크]

메일송수신 메일에 로그인을 해서 확인하지 않아도 메일 내용을 가져올 수 있는 액티비티를 사용해보자. 0. 환경 설정 : pop3/IMAP/SMTP 설정 네이버 메일 들어가자. 내 메일함 옆에 보면 톱니바퀴 모양으로 환경설정이 있다. pop3/IMAP 설정을 클릭한다. 참고) 네이버로는 원래 보안상 되지 않는다. 나중에 회사에서 하는 자동화에 쓰이는 것. 프로젝트에서 화려한 시각화를 위해 사용하면 좋다.. SMTP : 간이 전자 우편 전송 프로토콜, 인터넷에서 이메일을 보내기 위해 사용되는 프로토콜이다. IMAP : 응용 게층 인터넷 프로토콜, 원격 서버로부터 TCP / IP 연결을 통해 이메일을 가져오는데 사용된다. 둘 다 사용함으로 바꾸자. 이걸 어떻게 RPA에 연결해서 자동화를 할 수 있을까? IMA..

[RPA] Ui Path - 디렉토리 관리 / 스니펫 / 셀렉트박스(select) / DT 액티비티 [내부링크]

RPA로 디렉토리 관리하기 디렉토리 관리도 가능하다. 흔히 폴더를 생성하고, 지우고, 파일을 이동시키고, 복사하는 등의 기능을 디렉토리 관리라고 부른다. 1. 폴더 만들기 : Create Folder 지정된 위치에 폴더를 만든다. 2. 파일 / 폴더 삭제 : Delete 파일 또는 폴더를 삭제한다. 위치는 속성에 Path에 지정한다. 3. 파일 복사 : Copy File 파일을 복사한다. 위치의 시작지점(원래 있는 곳)과 종료지점(복사할 곳)을 설정한다. 이름은 바꾸고 내용은 그대로 복사할 수도 있다. 4. 경로 확인 : Path Exists 지정된 경로가 있는지 확인한다. 주로 파일 또는 폴더가 있는지 확인할 때 쓴다. boolean 값으로 출력된다. 디렉토리(파일, 폴더) 액티비티 1. Copy Fi..

[RPA] Ui Path - 딕셔너리(Dictionary) 정보보안 [내부링크]

Config 파일 프로젝트를 할 때, 모든 설정파일을 담은 Config 파일이라는 것이 있다. 프로세스와 관련된 모든 구성 정보(ex. URL, 파일 경로, 자격증명, 프로세스 큐 이름 등)을 정리하고 운영을 하는 부서에서는 이 Excel 파일만 비지니스에 맞게 수정한다. RPA는 사무 자동화 시스템이다. 운영팀이 RPA의 알고리즘에 들어가 따로따로 수정하거나, it 팀이 고생할 필요는 없다. 우리는 Config 파일을 자동화 시켜놓고 운영의 변화에 즉각 대응하도록 만들어보자. 그러려면 Dictionary 유형을 살펴볼 필요가 있다. Dictionary Key - Value로 데이터를 나눠서 사전처럼 색인과 단어를 찾는 식의 사용을 할 수 있다. 키워드(Key)는 고유값으로 중복키가 없다. [예제1] D..

[RPA] Ui Path - RPA 프로젝트 절차 / 객체지향방식 (Invoke workflow) [내부링크]

RPA 프로젝트 RPA는 기본적으로 사무자동화를 한다. 사무의 프로세스는 여러 단계로 이루어져 있다. STEP1. 과제 발굴 여기서 과제란, 재무, 인사, 구매, 경영지원, 수입, R&A 등 it 업무와 약간 거리가 있는 경영업무에 관련한다. 문제가 발생하고 이를 해결하기 위한 과제를 생성한다. STEP2. 분석/설계 1) 환경테스트 RPA 과제에 적합한지 확인하는 작업이 꼭 필요하다. 시스템 종류 확인 : ERP, 그룹웨어, 브라우저, FTP 등등 시스템과의 호환성 확인 : 엘리먼트 동작여부(예를들어 text 추출 시 text만이 아닌 크게 잡힌다던지) -> 특히 엘리먼트 동장의 경우 문서보안(DRM)이 걸려있거나, 시스템 접근 권한이 걸려있어 캡쳐 불가 또는 접근 불가가 되는 경우가 있다. 이..

[RPA] Ui Path - 스크린 스크래핑 / 형변환 / Selector(셀렉터) / 와일드카드 [내부링크]

복습 : 한국전력공사 용어사전에서 검색 후 텍스트 출력하기 0. Main.xaml > Flowchart 생성 > Sequence 생성 1. 브라우저 열기 : (Assign 변수선언) - Open Browser - [ Maximize Window - Delay ] 크롬 설정 빼먹지 말고 할 것! 보통 URL이나 아이디/비밀번호 입력하는 것들은 변수처리 해놓는게 맞다! 2. 카테고리 클릭 : Attach Browser - [ Click ] - Delay 한국전력공사(main page) > [지식센터] > [전력용어] > [KEPCO 용어사전] 3. 선택박스 고르기 : Click(선택박스) - Select item - 원하는 것 선택 4. 텍스트 입력 후 검색 : Type Into - [ 변수선언 및 valu..

[RPA] UI Path 액티비티 정리 [내부링크]

기능별 # 기능 시퀀스 #팝업메시지 #알림창 Message box #변수 선언(설정) 속성-value에서 Shift + K / Assign #출력창에 출력 Write Line //숫자 or 불린형은 ToString 붙여야함 #로그인 자동화 Attach Browser - [ Type Into - 창선택 - id입력 ] -> [ Get Password : 속성>변수선언, 암호입력 ] -> [ Type Into - 변수입력 ] -> [ Click - 버튼 ] #브라우저 열기 (Assign 변수선언) - Open Browser - [ Maximize Window - Delay ] #카테고리 클릭 Attach Browser - [ Click ] - Delay #선택박스 고르기 Click(선택박스) - Select..

[Python] 머신러닝 개념 잡기 [내부링크]

# wikidocs.net을 보고 요약 및 정리 머신러닝 사람에게 사진을 보고 고양이와 강아지를 구분하라고 하면 쉽지만 기계는 그렇지 않다. 기계는 이미지를 분류하기 위해 이미지의 shape이나 edge를 판별하고 찾아 알고리즘화를 하려고 하지만 한계는 존재한다. 이럴때 머신러닝이 해결책이 될 수 있다. 머신러닝은 데이터와 해답을 주고 기계에게 비슷한 예제를 학습시켜 규칙성을 만든다. 즉, 머신러닝은 "주어진 데이터로부터 규칙성을 찾는 것"이다. 머신러닝 모델은 일반적으로 훈련용, 검증용, 테스트용으로 분리해서 사용한다. 훈련용으로 모델을 훈련하고, 검증용에서 모델의 성능을 조정한 뒤(과적합 판단, 하이퍼파라미터) 조정 등), 튜닝한 검증용 데이터를 아직 보지못한 데이터, 테스트 데이터로 모델의 진짜 성..

[RPA] 기능(1) - 조건문 / 로그인 기능 만들기 / 데이터 스크래핑 [내부링크]

필기노트 더보기 RPA = 솔루션(소프트웨어제품) : UiPath => 설치 + Window 환경에서만 설치 가능 RPA 1. 설계 ( 로직 설계 ) 알아보기 쉽도록 나누어서 설계 UI 작업 = 그림 개발 = > 운영, 유지보수를 고려하여 개발 RPA Infra 제품 3가지 Studio -> 개발 Robot => 수행 1. 텍스트는 항상 더블 쿼트 사용 2. 숫자는 그냥 사용 * UiPath : Microsoft의 vb.net(-> c#) 언어 문법을 준수 1. 첫글자는 대문자, 구분되는 단어의 첫글자는 대문자 2. (규칙) 변수타입명 _ 이름 ㄴ 약어 ㄴ언더바 ㄴ 풀네임 3. 변수유형(약어) 1) String 문자열 => Str 2) Int32(숫자형) => Int 3) Double(실수형) => D..

[ RPA ] UI PATH 설치 [내부링크]

RPA 로봇, 프로세스, 자동화. 즉, 소프트웨어 소스를 반복한다. 기본적으로 RPA 자체가 그래픽 사용자 인터페이스(graphical user interface, GUI)로 되어있기 때문에, 사용자가 편리하게 아이콘 등을 이용할 수 있다. RPA를 가장 활발하게 적용하고 있는 분야는 BPO(Business Process Outsourcing) 시장인데,기업 운영상 업무나 비지니스 절차를 전문 기업에게 위탁, 급여 계산 등의 총무 업무 뿐만 아니라 정보기술 아웃소싱도 이루어지고 있다. 설계, 특히 로직을 설계하는 부분이 제일 중요하다. 설계는 1. 예쁘게 2. 깔끔하게 3. 잘 나눠서 짜야한다. 보통 RPA는 코드보단 UI부분을 많이 짠다. 현장에서는 운영과 유지보수가 중요하다. 내가 짠 코드를 팀원과 ..

[ 취업 ] RPA(Robotic Process Automation), 로봇자동화시스템 [내부링크]

RPA는 Software로 구현된 사무직을 위한 로봇이라 생각하면 된다. 로봇 자동화는 보통 가르칠 때 테크니컬한 부분만 가르친다. UI Path도 그런 기술들 중 하나이다. 과목이 신설하면서 기술적인 부분을 교육을 많이 하나, 비지니스적인 부분을 알아야 의미가 있어진다. 1. Digital Transformation 확산 배경 그 이전까지 우리는 고객들이 방문이 불가 또는 기피하고 그로 인해 판매량이 줄어드는 등의 위험성에 놓여있었다. 따라서 장거리에서 협업을 하고 온라인을 통한 커뮤니케이션이 불가피해진 상황이다. 대표적인 예로 자동차 산업에서 유명한 현대차, 그들이 다른 국제적인 기업을 못따라간다는 이야기가 많이 나왔다. 우리는 경쟁력을 갖기 위해 유명 기업을 따라갈 수는 없었다. 독일차나 일본차를 ..

[Python] SciPy / 기초기술통계 / ANOVA(분산분석) / 회귀분석 [내부링크]

# 오늘은 전처리 맛보기만 해보자. ANOVA (ANalysis Of VAriance; 분산 분석) 3개 이상 다수의 그룹간의 평균의 차이가 통계적으로 유의미 한지를 판단하기 위한 시험법. F분포를 이용한다. 카이제곱검정 vs T검정 vs ANOVA(분산검정) 더보기 연속형자료와 범주형 자료 연속형 : 키, 몸무게 등 수량화 가능한 자료. 범주형 : 성별, 혈액형, 치료반응 유무 등 수향화 할 수 없는 자료. 연속형 변수를 검정하는데에는 T검정과 ANOVA(분산분석) 이 사용되고, 범주형 변수를 검정할 경우 카이제곱검정과 피셔의 정확검정법을 사용할 수 있다. 상관분석 : 두 변수 간에 얼마나 상관이 있는가?선형관계인가? 회귀분석 : y=a+bx 관계식 구하기 카이제곱검정 T검정 ANOVA(분산검정) ..

[Python] SciPy / 기초기술통계 / 카이제곱검정 / T검정 [내부링크]

검정(test) 특정 분포를 기준으로 했을 때 유의성이 있는가 판별하는 것. 1. 카이제곱검정(Chi-squares) 그룹간 관찰빈도와 기대빈도를 통해 두 집단간의 차이가 유의한가를 판별하는 방법. 카이검정은 범주형 변수일 경우 두 독립군간의 비교를 할 때 쓰인다.(연속형 변수인 두 독립군 간의 비교는 t-test 사용) 귀무가설(H0)과 대립가설(H1) 이 가설들은 기본적으로 통계학에서 처음부터 버릴 것을 예상하는 가설이다. 귀무가설은 앞으로 내가 검정해야 하는 것이다. (내가 궁금한 것/관찰한 것 ex-주사위 프로그램 검정 (기댓값과 달리 랜덤하게 나오는가?) 기댓값과 같이 유사한 구조로 나오는가? 등) 일단 귀무가설이 옳다는 가정하에 시작하나, 예상이기 때문에 진실일 가능성이 적다. 대립가설은 귀무..

[Python] Pandas 기초 / groupby / 데이터프레임 Json으로 저장 / 실습(3) [내부링크]

1. 외부데이터 수입해서 다루기(복습) 더보기 2. Group by : groupby(by=[묶는기준], as_index=False ) 한개열 또는 여러열을 기준으로 집계하는 함수. 집계하고자하는 열 이름을 by 파라미터에 입력하고 호출하면 된다. as_index=False : 인덱스 손질. 설정하지 않으면 판다스(Pandas) 복합 인덱스로 올라가서 변환하거나 사용하기 어렵다. 1) 한개 열을 기준으로 집계하기 df = pd.DataFrame({ '상품번호':['상품1','상품2','상품3','상품4'], '수량' : [2,3,5,10] }) df 기본적으로 groupby만 해도 이미 집계는 되어있는 상태이다. 단, generator 상태이기 때문에 추가적으로 산술통계를 써서 원하는 값을 도출하는 방식..

[Linux] Vi editer란? vi 단축키 정리 [내부링크]

리눅스 VI ( Visual Editor ) 편집기 vi 편집기는 유닉스 계열에서 가장 많이 사용되는 편집기이다. 1976년 빌조이가 개발하였다. vi 편집기는 한 화면을 편집하는 비쥬얼 에디터 ( Visual Editor ) 이다. VI ( Visual Editor ) 편집기의 특징 vi는 Emacs와 함께 Unix 환경에서 가장 많이 쓰이는 문서 편집기이다. 1976년 빌 조이가 초기 BSD 릴리즈에 포함될 편집기로 만들었다. vi라는 이름은 한 줄씩 편집하는 줄단위 편집기가 아니라 한 화면을 편집하는 비주얼 에디터라는 뜻에서 유래했다. 간결하면서도, 강력한 기능으로 열광적인 사용자가 많다. 현재는 오리지널 vi를 사용하는 경우는 거의 없고, 일반적으로 기능을 모방하여 만들어진 클론을 사용하고 있다...

[Python] Pandas 기초 / DataFrame / matplotlib / 실습(2) [내부링크]

# 결측치 # 결측값이 있는지 여부 확인 : isnull() # 결측값 없는 것들 확인 : notnull() # 세로줄(열)별 결측값 갯수 : df.isnull().sum() # 가로줄(행)별 결측값 갯수 : df.isnull().sum(1) # 결측치 시각화하기 : missingno missingno 설치 방법 더보기 !pip list |grep missingno !pip list |grep missingno #설치 확인 #결측치를 시각화하는 방법 : missingno import missingno as msno msno.matrix(df_all,figsize=(18,6)) # 병합 : pd.merge() - 그냥 merge를 쓰면 키값이 겹치는 애들만 병합이 된다. -> 속성값으로 join의 종류(..

[python] 주피터 노트북(jupyter notebook) 단축키 [내부링크]

Jupyter notebook 단축키 jupyter는 입력모드인 초록창과 편집모드인 파란창이 있다. 각각의 단축키가 다르다. [입력모드 단축키] [편집모드 단축키] Ctrl + a -> 해당 셀 전체 선택 a - 셀 추가(위로 추가) Ctrl + c,v,x -> 셀 내용 복사, 붙여넣기,잘라내기 b - 셀 추가(아래로 추가) Ctrl + z -> 해당 셀 실행 취소 c, v, x- 셀 복사, 붙여넣기, 잘라내기 Ctrl + / -> 해당 셀 커서가 위치 된 곳 주석 처리, 주석처리 해제 dd (d 두번) - 해당 셀 삭제 Ctrl + ] -> 커서위치한 곳에서 들여쓰기(Tab) m - 해당셀 Markdown으로 변경 Ctrl + enter -> 해당 셀 실행 y - 해당셀 code로 변경 Ctrl + y..

[Python] Pandas 기초/ Series /DataFrame / 실습(1) [내부링크]

Pandas 온전히 통계 분석을 위해 고안된 R 과는 다르게 python은 일반적인 프로그래밍 언어(general purpose programming language) 이며, 데이터 분석을 하기 위해서는 여러가지 라이브러리를 사용할 수 밖에 없다. 이 패키지들 중 R의 dataframe 데이터 타입을 참고하여 만든 것이 바로 pandas dataframe이다. pandas는 dataframe을 주로 다루기 위한 라이브러리이며, dataframe을 자유롭게 가공하는 것은 데이터 과학자들에게 중요하다.(출처) 모양은 엑셀 시트를 하나의 데이터 타입으로 만들어 놓은 듯 하다. 행과 열로 이루어져 있어, 테이블의 형식으로 볼 수 있다. DataFrame Series들의 집합. 여러개의 Series(행)이 모여 ..

[Python] pandas 기초(3) - 문제풀이 [내부링크]

문제를 풀어보자. 답 더보기 import pandas as pd csv_test = pd.read_csv('dataset/Dataset.csv') csv_test.head() 간단하게 pd.read_csv로 읽어들인 뒤 head()를 써서 상위 5개만 뽑아보았다. 답 더보기 나눔고딕 폰트 설치 되어있어야 한다. import matplotlib as mpl import matplotlib.pyplot as plt #유니코드 깨지는 현상 방지 mpl.rcParams['axes.unicode_minus'] = False #폰트 설정 plt.rcParams['font.family'] = 'NanumBarunGothic' #테스트 plt.figure() plt.grid(True) plt.plot((1,1)) ..

[Python] Pandas 기초/ DataFrame / Series / 실습 [내부링크]

Pandas 온전히 통계 분석을 위해 고안된 R 과는 다르게 python은 일반적인 프로그래밍 언어(general purpose programming language) 이며, 데이터 분석을 하기 위해서는 여러가지 라이브러리를 사용할 수 밖에 없다. 이 패키지들 중 R의 dataframe 데이터 타입을 참고하여 만든 것이 바로 pandas dataframe이다. pandas는 dataframe을 주로 다루기 위한 라이브러리이며, dataframe을 자유롭게 가공하는 것은 데이터 과학자들에게 중요하다.(출처) 모양은 엑셀 시트를 하나의 데이터 타입으로 만들어 놓은 듯 하다. 행과 열로 이루어져 있어, 테이블의 형식으로 볼 수 있다. DataFrame Series들의 집합. 여러개의 Series(행)이 모여 ..

[Spring] JSON / JSONP 개념 / spring MVC 복습(2) [내부링크]

JSONP 보안상의 이슈를 우회하여 서로 다른 도메인이 데이터 공유가 가능하게 방법. (JSONP는 여러 보안상 이슈로 인하여 W3C에서는 2009년 채택된 CORS 방식의 HTTP 통신을 권장해서 이젠 거의 사용하지는 않는다.) 정확하게 이해하기 위해서는 차례대로 스토리가 필요하다. JSON(JavaScript Object Notation) 일반적으로 서버에서 클라이언트로 데이터를 보낼 때 사용하는 양식. 클라이언트가 사용하는 언어에 관계 없이 통일된 데이터를 주고받을 수 있도록, 일정한 패턴을 지닌 문자열을 생성해 내보내면 클라이언트는 그를 해석해 데이터를 자기만의 방식으로 온전히 저장, 표시할 수 있게 된다. 과거 웹 초기 시절부터 사용되어 온 XML은 헤더와 태그 등의 여러 요소로 가독성이 떨어지..

[Spring] spring MVC / Oracle 연동 / Maven / spring 복습(1) [내부링크]

오늘의 목표! - spring MVC + Django => JSON P cross 데이터 시각화 - pandas 빅데이터 분석 - matplotlib 시각화 이번주는 데이터 수집 이후 분석에 관한 이야기를 할 것. 까먹었던 spring을 다시 복습할 기회! [ 새로운 환경 설정 ] 빅데이터를 위한 새로운 workspace 설정하기 [1] 서버 연결 1. sts3 실행 Tomcat 9.0을 바이너리로 다운로드할 것이다. 리눅스가 아닌 윈도우 환경이니까 64 bit-window zip으로! 바이너리 파일이 뭐야? 더보기 더보기 바이너리 파일이란? 사용자 또는 프로그램이 사용하던 정보나 숫자 값을 특별한 가공 없이 그대로 파일에 저장한 파일. 우리가 많이 사용하는 .jpg, png 같은 그림파일이나 음악파일..

[빅데이터] 리눅스 / Selenium 설치 및 사용법 [내부링크]

Selenium이란? WebBrowser(Chrome, Firefox, IE, Safari 등등)를 조작해주는 프레임워크(Framework). 일반적으로 웹 앱을 테스트할 때 주로 사용하는 프레임워크이다. webdriver(조작을 원하는 browser별로 실제 파일이 다름)라는 API를 이용해 브라우저를 제어할 수 있다. 브라우저를 직접 동작시킨다는 것은 JavaScript가 동작하면서 비동기적으로 서버로부터 콘텐츠를 가져오거나 숨겨져 있는 콘텐츠를 열거나 하는 등의 작업을 수행함을 의미한다. webdriver는 http프로토콜로 명령을 직접 날리고 확인 할 수 있다. Selenium 라이브러리에는 브라우저 조작이 가능한 다양한 기능이 존재하며, JS로 렌더링이 완료된 후의 DOM결과물에 접근이 가능하다..

[빅데이터] 웹 크롤링 : BeautifulSoup(2) : select, css selector, pandas [내부링크]

[ 파이썬 스레딩 모듈을 사용해서 데이터 스크랩핑하기 ] find / find_all / select / select_one 1. css 선택자 사용해서 크롤링하기 : select() 메소드 BeautifulSoup이 제공하는 여러 가지 유용한 기능 중, CSS 선택자를 매개변수로 받는 select() 메서드를 사용해보자. from bs4 import BeautifulSoup html = """ test 도서 목록 자바 입문 HTML PYTHON """ soup = BeautifulSoup(html,"html.parser") 도서 목록을 가져오고 싶다. 도서목록은 태그의 자식인 태그 안에 있다. 의 id가 'main'이다. main의 자식 > h1을 가져오기 : select_one, select h1 =..

[빅데이터] 웹 크롤링 : BeautifulSoup(1) find, xml 파싱, 태그 속성값 크롤링 [내부링크]

빅데이터의 꽃은 단연 머신러닝이라 생각한다. 우리의 궁극적 목표는 머신러닝의 발자취를 따라가는 것. 머신러닝의 가장 기초는 데이터를 처리하는 데에 있다. 데이터 처리 단계 더보기 데이터 처리 단계 : [수집] -> [저장] -> [처리] -> [분석] -> [시각화] 웹에서는 기본적으로 [수집] -> [저장] -> [처리] -> [분석] -> [시각화] 단계로 이루어진다. 기본적으로 웹 스크래핑, IOT 센서, JSON/CSV/TEXT 등 공용,공개, 공공데이터, SQL, SNS 등의 상호 수집 데이터 등을 이용해서 데이터를 수집하는데, 이러한 데이터를 저장하는 것이 중요한 이유는 데이터 아키텍처의 시스템을 따르기 때문이다. 기업은 최소의 비용으로 최대 효율을 따지기 때문에 데이터 저장을 할 때에 클..

[java] 자료형, 증감연산자, 클래스 [내부링크]

1. 자료형 //패키지 선언 package com.daum.erp; //클래스 선언 public class test { //메인 메소드 선언 public static void main(String[] args) { //변수 선언 String student_name = "히앤"; //문자 int age = 25; //숫자 double tall = 167.5; //실수 double weight = 11.1; //실수 boolean is_marrige = false; //논리 int is_marrige2 = 3; //경우의수가 2개 이상인 경우 ex)결혼은 안했는데 자식이 있는 경우 //출력 System.out.println("이름 : " + student_name); System.out.println("나이..

[빅데이터] 프로젝트 - 상품등록 페이지 만들기(2) [내부링크]

오늘의 목표 : 사진 안나오니까 사진 첨부해서 나오게 하기! 1. 초기 상태 jsp로 연결되어 있었던 파일들을 전부 html로 수정하였다. 연결시켰던 상품 등록 input 에 파일을 추가하고, 그걸 DB로 받아오게 한다. 2. img 카테고리 만들기 귀찮으니까 쿼리문 안쓰고 그냥 sql에 등록 3. input 타입 file 추가 파일 DB에 올리는 코드 추가. 이미 table을 감싸는 form에 encodetype까지 설정 해둠. form 태그 action * 이미지 업로드 원래 코드 * 이미지 업로드 {% csrf_token %} 바뀐 코드 4. add_product에 추가(view.py) 원래 add_product는 product_info에 담아 데이터를 보내는데에 썼다. 그 데이터에 파일도 추..

[빅데이터] 프로젝트 - 상품등록 페이지 만들기(1) [내부링크]

Spring에서 만들었던 쇼핑몰 페이지를 그대로 디장고(Django)로 바꿔 옮기자. 1. 초기 상태 현재 받은 파일에서는 회원가입 기능과 로그인 기능은 구현 되어 있는 상태. urls.py에 대부분의 페이지 path가 연결되어 있다. views.py 더보기 1. 아직 기능 구현 하지 않은 것들은 jsp 파일로 렌더링만 해놓음. from django.shortcuts import render, redirect # Create your views here. from django.views.decorators.csrf import csrf_protect from shoppingmallPrj.models import getLoginChk, client_insert def home(request): retur..

[빅데이터] 홈페이지 만들기(3) : 파이썬으로 파일 업로드 앱 만들기(cnn, 이미지분류) [내부링크]

스키장에서 물건을 주웠다. 그 물건을 분실물센터에 올려야하는데, 이미지를 올려야 한다. 어떤걸 개발해야할까? 1) 분실물 카테고리 2) 클라이언트가 사용할 앱 3) 올리는 순간 위치도 찍도록 4) 기타 등등 가장 중요한 것은 물건을 찾거나 찾아줄 때를 위한 알바생이 필요하다. 다행히 우리에게는 이중분류 또는 다중분류로 불리는 알고리즘 친구가 있다. 이번엔 분류 알고리즘을 써서 훈련 -> 머신러닝까지는 안하고, 준비된 파일을 이용해서 분류 앱만 만들어 보도록 하자. 준비된 파일에는 이미지 분류를 위한 h5 파일과 json 파일이 있다. 파일 받기 더보기 [ fileup 웹 페이지 기능 구현하기 ] #자세한 세팅은 앞에 포스팅 참조 1. fileup 앱 만들기 늘 하던대로 fileup > templates..

[빅데이터] 홈페이지 만들기(2) : 파이썬으로 로그인/로그아웃 데모 앱 만들기(오라클 연동) [내부링크]

리눅스에서 jupyter notebook를 실행하고 윈도우에 설치된 오라클 11g와 연동하는 것까지 해보았다. 저번 포스팅에서 해본 파이썬 - 오라클 연동 정리(링크) 더보기 방법을 간단히 요약하자면, 1) 오라클 connection 연결 2) connection이 cursor 객체 가져옴(연결도구) 3) cursor 객체의 fetch메서드를 이용해서 데이터를 서버로부터 가져온다. 4) cursor 객체의 execute() 메서드를 사용해서 파이썬에 입력한 SQL 문장을 오라클 DB 서버로 보낸다. 5) 주고받는 것이 완료되면 connection 객체의 commit() 메서드를 사용해서 데이터를 확정한다. 6) connection.close()를 해서 오라클과 연결을 끊는다. 즉, 정리하자면 오라클 수..

[빅데이터] Django 오라클 연동 / 홈페이지 만들기(1) : 파이썬으로 회원가입 앱 만들기(아이디 중복확인) [내부링크]

1. 오라클 워크시트에 테이블과 시퀀스 생성하기 create table board( no number CONSTRAINT board_no_pk primary key, pwd varchar2(10), writer varchar2(34), subject varchar2(100), content varchar2(400), regdate date default sysdate ); create sequence board_seq increment by 1 start with 1; 2. 리눅스 터미널에서 jupyter-notebook 실행 (아나콘다가 깔려있어야 한다.) 3. workspace 역할을 할 디렉토리 만들자. new > folder > 파이썬 파일 하나 만들기 4. 오라클 연동 후 필수 라이브러리 설치 ..

[ 빅데이터 ] c3js - 분석 결과 시각화하기, 파이차트 출력하기 [내부링크]

쉽게 분석 결과를 시각화해서 첨부할 수 있다. 바로 여기! 링크 : c3js.org/examples.html C3.js | D3-based reusable chart library Number Format Localization Number format localization using D3 locale settings. View details » c3js.org 아래 코드를 복사해서 써보자 바로 전 포스팅에서 만들었던 설문조사 폼에서 시도해보자. 설문 결과창에 파이차트를 띄워보려고 한다. [연습] 1. chart1.html 파일 만들기 2. view에 추가 3. urls 추가 4. 파이 차트 주소를 바디에 붙여넣기 이렇게 받아오는 걸 제이쿼리(선택자)로, 스크립트로, 제이슨으로도 불러올 수 있다. 5...

[빅데이터] 리눅스 / 디장고(Django) 오라클 11g 설치, 연동 [내부링크]

익숙한 오라클로 DB를 연동시켜보자. [ 오라클 11g 설치 ] 리눅스 디장고(Django) 와 연동하기 1. 맨 하단의 11.2.0.1.0 Windows x64 다운로드 설치 링크 : https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html 2. Components 합치기 압축을 풀고, win64_11gR2_database_2of2 > database > stage > Components 안에 오라클 파일들을 전부 복사해서 win64_11gR2_database_1of2 > database > stage > Components 에 붙여넣어 파일 합치기(덮어쓰기) 3. win64_11gR2_database_..

[빅데이터] 설문조사 앱 만들기(pycharm, Django) [내부링크]

[ 설문조사 폼 만들기 ] Survey App 개발 (폼처리,CSRF,redirect등) 1. survey 앱 만들기 python manage.py startapp survey 2. 폴더를 만든다.(survey > templates > survey > list.html) 3. views.py에서 list.html 연결 def home(request): print("list 모듈 동작!") return render(request, "survey/list.html") 4. urls.py에 첫페이지 연결 from survey import views urlpatterns=[ path('',views.home), ] 5. config/settings.py로 가서 survey 등록 6. config/urls.py ..

[빅데이터] PyCharm, 디장고(Django) 설치 / 주소록 앱 만들기 [내부링크]

Django 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework). MVC 패턴을 따르고 있다. 프레임워크는 포트(port)에 도착한 요청(request)를 확인해주는 웹서버가 웹페이지와 함께 답장(response)을 할 때에 그 특정 콘텐츠 내용을 만들 수 있는 역할을 한다. 장고는 웹서버의 요청을 받으면 urls에서 경로를 대조한 후 일치하는 패턴이 있다면 view에게 넘겨준다. [ Django 설치 ] Django 설치 및 createsuperuser 1. pycharm 프로젝트 생성 1) new project > 위치 뒤쪽에 앱 이름 설정( /home/kosmo_03/PycharmProjects/myapps) > conda로 바꾼 뒤 3.7버..

[빅데이터] 우분투(Ubuntu) 설치, 파이참(Pycharm) 설치, 아나콘다(Anaconda) 설치 [내부링크]

우분투(Ubuntu) 빅데이터 수업을 위해 리눅스 환경에서 스파크 공부를 위한 파이썬을 공부한다. 저번에 설치한 건 centOs로 서버를 만든 것으로, 새로운 환경을 위해 우분투를 설치하기로 했다. 1. 우분투 다운로드 https://ubuntu.com/download/desktop Download Ubuntu Desktop | Download | Ubuntu Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things. ubuntu.com 2. Oracle VM VirtualBox에 우분투 설치하기 새로만들기 -> ub(자동으로 우..

[빅데이터] 하둡(Hadoop)에 Spark 설치하기 [내부링크]

아파치 스파크(Apache Spark) 마태 자하리아가 UC 버클리에서 박사 과정 논문의 일부로 개발한 강력한 오픈소스 분산 쿼리 및 처리 엔진. 다양한 종류의 데이터 관련 문제, 예를 들어 반구조(semi-structured), 구조, 스트리밍 또는 머신 러닝/데이터 과학 관련 문제를 해결하기 위해 쉽고 빠르게 쓸 수 있는 프레임워크이다. 스파크는 데이터를 읽고, 변형하고, 합계를 낼 수 있으며, 복잡한 통계 모델들을 쉽게 학습하고 배포할 수 있다. 파이썬 pandas 라이브러리와 R의 data.frames 또는 data.tables를 이용하는 데이터 분석가, 데이터 과학자 또는 연구우너들에게 적합한 여러 라이브러리를 제공한다. 설치하기 1. dn01의 root 계정에서 [root@dn01 ~]# cd..

[빅데이터] 하둡(Hadoop) 쉽게 설치하기(+예상 에러 포함) [내부링크]

Hadoop 빅데이터 시스템 중 가장 기본적. 무료 알아서 기능 구현. 결함이 있어도 알아서 standby namenode가 알아서 멈추지 않도록 작업해줌. 오늘은 설치만 해도 ㅈ같이 힘들기 때문에 최대한 복사 붙여넣기로 할 수 있게 구성. 우리는 '아파치 하둡 배포판' 깔 예정. -> 이것만 무료. 그리고 존나 복잡함 하둡 만든 사람 더그 커틴 개새끼 아파치는 기본이고 보통 회사에서는 클라우데라, 호튼윅스 사용할듯.(이 두개는 유료) [아파치 하둡 에코시스템] 하둡을 설치하고(빨간색) 그 주변에 있는 것들을 연결해주어야함. 따로따로 만든거다보니까 연결하는 작업이 너무 힘들기 때문에 클라우데라, 호든윅스처럼 이미 어느정도 연결되어 설치할 수 있는 것을 사용하는 것. 우리는 지금 가상 환경 3개 만들어서 ..

[Linux] 리눅스 터미널, gedit 기초 [내부링크]

윈도우는 마우스 클릭을 이용해 명령을 시키는 시스템이지만 리눅스는 다르다. 리눅스는 대화형 프로그램으로 정해져 있는 명령어들만 사용이 가능하다. (명령어들은 /bin 에 저장되어 있다.) 쉽게 말하면, 사용자의 명령을 하드웨어가 실행하기 위해서는 쉘(shell)을 통해 명령을 입력하고 커널(kernel)이라는 os에서 하드웨어에 전송해 결과를 받는다. 윈도우가 마우스를 통해 하드웨어와 연결했다면, 리눅스는 키보드를 통해(터미널을 통해) 요청을 하고 결과를 출력한다. 이를 대화식(Interactice) 이라고 한다. 또한 리눅스는 세션에 대한 변수들을 정의해서 사용자가 리눅스 환경을 자신이 원하는 상태로 설정할 수 있다. 터미널 사용을 위해 몇가지 명령어를 실행해보자. 1. 목록보기 : ls(명령어치기) ..

[Linux 설치] 1) 가상장치 설치하기 - VM Ware 설치 + centOS 7 [내부링크]

새롭게 시작되는 Linux를 위해 환경설정을 해보자. 모든 언어의 시작은 설치로부터 오는데, 진짜 공부 시작하기도 전에 진이 빠진다.(야발) 하나하나 캡쳐뜨고 메모하면서 따라가느라 혼났다^^... [설치 개요] 목적 : 빅데이터 공부를 위한 환경설정 설치 버전 : 가상머신인 VM Ware를 사용하여 가상환경에 리눅스 설치 + centOS 7버전 [다운로드] 1. http://mirror.kakao.com/centos/7.8.2003/isos/x86_64/ 접속해서 CentOS-7-x86_64-DVD-2003.iso 다운로드 2. 가상장치 다운로드(VM Ware)설치. - 다운로드 가서 VMware Workstation 15 Player 다운로드(윈도우용) 3. CentOS-7-x86_64-DVD-2003..

[java] 기본 단어 정리, 자바 문법 정리 [내부링크]

지금까지도 영어는 단어가 제일 어렵다. 그건 이해 없이 붙여진 이름을 단순하게 외워야해서일 것이다. 자바도 컴퓨터의 언어이고, 인간의 언어로 해석하려고 하기엔 자기들만의 문화(?)가 팽배하니 오늘은 간단하게 기본적인 단어 정리를 하고 정의만 생각해 보기로 하자. 자바 문법 구성요소 이름 뜻 식별자(identifiers) 사용자가 임의로 Java 프로그램의 구성요소에 붙이는 이름 키워드(keyword) 자바 문법상의 영단어 자바 언어 자체에서 미리 정해놓은 식별자 자료형 이름 뜻 자료형 프로그램에서 사용되는 데이터 유형(data type) 기본형 이미 정해져있는 유형 참조형 기본형 이외의 자료형의 종류 (= 객체의 메모리 위치 주소값) null 참조형 자료형의 종류. 변수의 메모리 위치 주소값이 안들어가서..

[java script 개념] html 기초 개념 정리 [내부링크]

HTML(HyperText Markup Language) 하이퍼텍스트 마크업 언어. 웹브라우저에서 문자열, 이미지 , 동영상, 입력양식 등을 출력하기 위해 사용되는 언어. 웹페이지를 위한 마크업 언어다. 웹페이지 화면을 구성하는 제목, 단락, 목록 등의 구조를 만든다. 즉, 지금 쓰고 있는 이 화면도 HTML의 요소로 이루어져 있다. HTML은 크게 "태그"로 불리는 요소로 작성된다. 자바 스크립트와 CSS 등의 스크립트가 이러한 외관과 배치를 움직일 수 있다. HTML 자체는 정적이지만, 스크립트와 만나면 동적으로 움직인다고 표현할 수도 있겠다. HTML은 출력창이 웹브라우저이다. 기본적인 꺽쇠() 를 포함한 태그로 화면 구성의 기초를 다질 수 있다. HTML 기본 구조 관련 태그 화면은 EditPlu..

[java script 개념] 자바 스크립트 기본 개념 정리 [내부링크]

자바스크립트(java script)는 HTML 언어에 추가되서 웹페이지를 동적으로 다양하게 제작할 수 있게 도와주는 스크립트 언어이다. 스크립트 언어는 혼자 실행될 수 없어서 다른 언어에 포함되어 실행되고, 문법이 복잡하지 않은 특징을 가지고 있다. 즉, 자바스크립트는 HTML 안에서만 구현된다. 공식 명칭은 [ECMAScript] 이름 특징 태그 태그 컨텐츠 출력 , 등 CSS 디자인 담당 java script 동적인 조작 기법 자바 스크립트 기능 1. 유효성 체크 : 데이터가 DB에 저장될 수 있는지, 부족한 것은 없는지 검사 2. 태그 속성값 또는 태그 자체의 입력/수정/삭제 : html의 태그 컨트롤 3. AJAX를 통한 웹서버와의 데이터 통신 4. 동적인 메뉴 제작, 이미지 효과 등 AJAX: ..

[Event 객체] 웹에서 발생하는 모든 움직임 : event 객체 종류 정리, 클릭, 키보드 번호 [내부링크]

Event 객체 자바스크립트 BOM 객체(브라우저 객체) 중 웹화면에서 발생하는 모든 움직임을 관리하는 객체. 객체 생성은 없음. event.속성변수 event 종류 abort 이미지 로드 실패 blur 입력양식에 있던 커서가 빠져나감(예 : 검색창에 검색어를 치다가 검색버튼을 누름) change 입력양식의 내용 변경(value 값 변경) click 마우스 왼쪽버튼 클릭 dbclick 마우스 왼쪽버튼 더블클릭 dragdrop 마우스 드래그 error 에러 발생 focus 입력창양식에 없던 커서가 생겨남(예 : 네이버 들어가면 자동으로 검색창에 커서가 가 있음) keydown 키보드 누름 keypress 키보드 누름 keyup 키보드에서 눌렀다가 손을 뗌 load 웹브라우저에서 html 문서가 읽혀짐 un..

[생성자 함수] 사용자 정의 객체를 이용해 테이블 출력, 데이터 내림차순 정열 예제 [내부링크]

생성자 함수 자바스크립트에서 메소드와 속성변수로 구성된 함수. 자바스크립트는 클래스가 없다. 때문에 개발자가 직접 생성자 함수를 제작해서 new를 이용해 객체를 생성한다. 관례적으로 생성자 함수는 첫 글자를 대문자로 쓰는 파스칼 표기법을 따른다. function 생성자함수명( [매개변수1] ){ this . 속성변수명 = 데이터1; this . 메소드명 = function( [매개변수2] ){ 실행코드; [return [데이터2]; ] } }; 또는 메소드 대신 생성자함수명.prototype. 메소드명 = function(~)~ 형태 사용. 생성자함수는 메모리공간에 올라가 객체화되고, 객체화 후에 메소드와 속성변수를 호출할 수 있다. 생성자 함수를 이용하여 3명의 학생의 성적을 출력해라. 1. Sungj..

[DOM 객체] 유효성체크 : 회원가입창에 입력된 데이터 관리하기 [내부링크]

DOM DOM(= Document Object Model) 웹브라우저가 html 파일의 태그들을 읽어 객체를 생성하고, 이 객체에 대응하는 컨텐츠를 웹브라우저 화면으로 출력하는 일련의 과정 또는 모형을 말한다. 즉, XML이나 HTML 문서에 접근하기 위한 일종의 인터페이스이며, 이 객체 모델은 문서 내의 모든 요소를 정의하고, 각각의 요소에 접근하는 방법을 제공한다. DOM 객체는 DOM API 를기반으로 생성되며 대부분의 웹브라우저는 동일한 DOM API 를 가지고 있다. DOM 객체 HTML 문서 안의 태그를 읽어 만들어지는 객체를 DOM 객체라고 부른다. 유효성 체크 DB에 저장될 수 있는 데이터인가 아닌가를 체크하는 일련의 검사. 입력양식들의 유효성 체크를 한 후 모두 유효성에 합당하면 서버로 ..

[Window 객체] 브라우저 창을 움직이는 객체 : 페이지 이동, 카운트다운 출력하기 [내부링크]

Window 객체 자바스크립트에서 웹화면(브라우저) 전체를 담당하는 전역 객체. 브라우저 전체를 담당하는 Window 객체 안에는 여러 내장 객체들이 속해있다. Frame 객체 : 2개 이상의 문서가 조합되어 만들어지고 배열로 이루어져 있는 객체. 프레임을 제어한다. length를 이용해서 프레임의 갯수를 알 수 있고, 각 프레임의 정보에 접근 가능. Location 객체 : 현재 열려진 웹 화면의 URL 주소와 관련된 정보 제공. History 객체 : 웹 브라우저의 히스토리(방문한 적이 있는 URL 주소)를 관리. Document 객체 : 문서의 정보(제목, 변경날짜, 시간 등)를 관리. 원하는 내용을 출력하거나 문서의 정보를 제공해준다. ex)document.getElementById : 주어진 문..

[Tistory 팁] 티스토리 구글검색 제목 노출이 안될 때 [내부링크]

티스토리 구글 검색, 네이버 검색을 위해서 사이트맵을 설정은 다들 했을 것이다. html 코드도 많고 스킨까지 끼면 복잡한데 겨우겨우 사이트맵 설정을 완료했다. 아니 근데 내 게시글을 구글에 검색하는데 [포스팅 제목]이 노출이 되지 않는거 아닌가;; 이것저것 만져보니 이제와서는 [블로그명] - [포스팅 제목] 순으로 검색되서 포스팅 제목이 잘리기까지 했다. html 코드 수정하면 쉽게 바꿀 수 있다. 1. title을 검색한다.(ctrl + F) html 코드에서 가 시작점이고 이 끝나는 점이다. 즉, 검색 시 노출되는 제목에 문제가 있는 것이므로 title을 수정해야 한다. 2. 원하는 대로 코드 추가 기존의 코드를 보니 가 없었다. : 포스팅 제목 : 블로그 이름 3. 잘 반영되었는지 검색해본다. 해결!

[RegExp 객체] 문자열 패턴 관리하는 정규표현식 : 패턴식, test(), 아이디, 비밀번호 패턴 설정, 핸드폰 번호 패턴 설정 [내부링크]

RegExp 객체 자바스크립트 내장 객체 중 문자열의 패턴을 관리하는 객체. 정규표현식(Regular Expression)이라고 부른다. 주로 문자 검색(search), 문자 대체(replace), 문자 추출(extract)을 정규식 패턴으로 빠르게 수행할 수 있다. 실질적으로 입력 양식에 입력되거나 선택된 데이터를 DB에 올바르게 저장하기 위해 사전에 검사하는 유효성체크 시 사용하면 편하다. 숫자가 아닌 문자열만 관리한다. < 객체 생성 형식 > var 객체참조변수 = new DateRegExp( 패턴식 ); var 객체참조변수 = 패턴식 ; -> 패턴식은 "" 또는 ''로 감싸지 않는다. 객체참조변수.메소드(~) 객체참조변수.속성변수 (1) meta 문자 정규표현식을 구성하는 다양한 특수기호(패턴)과..

[java script 함수] 내장함수 - 입력창 : prompt( ), alert(), confirm(), 로그인창 만들기 [내부링크]

.prompt( "윈도우 문자열" , "입력창 문자열" ) 자바스크립트 자체에서 미리 만들어져 제공하는 내장함수의 한 종류이다. "윈도우 문자열" 은 프롬프트에 띄워줄 메시지이고, "입력창 문자열" 은 입력창에 미리 삽입되는 문자열이다. 입력창을 공백으로 유지하고 싶은 경우 ""로 둔다. (이 경우, defalt값이 들어가 있는 것.) 입력창을 만들기 원하지 않을 경우 "입력창 문자열" 을 생략한다. .alert( "윈도우 문자열" ) alert는 입력한 메시지만 전달한다. 반환하는 값이 없다. .confirm( "윈도우 문자열" ) confirm은 true 또는 false 값을 반환한다. 확인을 누르면 true를 리턴하고 취소를 누르면 false를 리턴한다. 간단한 아이디 암호 입력창을 만들어보자. 1..

[String 객체] 문자열 복사 후 바꿔서 출력 : substr(), substring(), split() [내부링크]

.substr( n , l ) 문자열에서 특정 부분만 골라내어 가져오는 메소드. 시작 인덱스번호 n부터 l만큼의 길이를 가져온다. l은 생략이 가능하다. l이 없다면 문자열 끝까지 가져옴. var str = new String("Made In Korea"); document.write( str.substr(8,3)+""); // 8번부터 3개까지 가져와라 Kor .substring( n , m ) 문자열에서 특정 부분만 골라내어 가져오는 메소드. 시작 인덱스번호 n부터 끝나는 인덱스번호 m까지를 가져온다. m은 생략이 가능하다. m이 없다면 문자열 끝까지 가져옴. var str = new String("Made In Korea"); document.write( str.substring(8,11)+"");..

[Math 객체] 수학적 계산을 돕는 Math객체 : max(), min(), ceil(), floor(), round(), abs(), pow(), sqrt(), random(), log(), sin(), cos(), tan() [내부링크]

Math 객체 자바스크립트 내장 객체 중 수학적 계산을 하는데 도움을 주는 객체. 객체 생성은 없음. Math.메소드(~) Math 객체 메소드 max( n1, n2, .... , nn ) n1부터 nn까지 중 최대값 리턴 min( n1, n2, .... , nn) n1부터 nn까지 중 최소값 리턴 ceil( n ) 소수 첫째자리에서 올림해서 정수로 리턴 floor( n ) 소수 첫째자리에서 내림해서 정수로 리턴 round( n ) 소수 첫째자리에서 반올림해서 정수로 리턴 abs( n ) n 값의 절대값 리턴 pow( n , m ) n의 m승 리턴 sqrt( n ) n의 제곱근 리턴(= √n ) random( ) 0이상 1미만의 무작위 실수를 리턴 0.0은 잘 리턴되지 않음 random() 뒤에 연산자를..

[Date 객체] 날짜를 관리하는 Date 객체 : 년월일시분초 출력, 요일 출력 [내부링크]

Date 객체 자바스크립트 내장 객체 중 날짜와 시간 정보를 관리하는 객체. < 객체 생성 형식 > var 객체참조변수 = new Date( 년, 월-1, 일, 시, 분, 초 ); -> Date( ) 괄호 안이 비어있으면 현재 시스템 날짜가 세팅된다. -> Date 객체에서 월은 0~11까지의 숫자로 관리된다. 따라서 -1을 해야한다. ex) 5월 : 4 -> 꺼낼 때는 +1을 해서 꺼내야 한다. 출력 결과와 상관 없이 시스템 날짜를 고려해서 코딩 해야 한다. 객체참조변수.메소드(~) 속성변수 호출은 없음. Date 객체 메소드 getFullYear( ) 연도 리턴 getYear()은 1990s까지 사용된 것으로 웹표준에서 삭제됨 getMonth( ) 월(0~11)리턴. 리턴 후 1을 더해야 원하는 달 ..

[Array 객체] 배열 합치기 : join() [내부링크]

.join( 추가문자열 ) 배열의 원소를 연결하여 하나의 값으로 만드는 메소드. 기본적으로 인수에 아무것도 넣지 않으면 배열에 있는 원소들은 콤마(,)로 구분한다. 다른 문자로 구분하려면 ( ) 안에 원하는 문자를 넣는다. (출력값만 바뀜) var arr = new Array("A","B","C"); document.write( "arr.join() : " + arr.join() + " "); document.write( "arr.join( '-' ) : " + arr.join( '-' )); arr.join() : A,B,C arr.join( '-' ) : A-B-C

[연산자] 삼항연산자(조건연산자) [내부링크]

삼항연산자(=조건 연산자) 형식 : (조건문) ? 참 : 거짓 if문이 길어질 때 라인 수를 줄여주는 방법.연산자의 형식만 지켜주면 단순 조건문일 때, if-else로 연결해서 쓰지 않아도 한줄로 조건문을 처리할 수 있다. 자바와 자바스크립트 둘 다 사용 가능. 마치 오라클의 decode와 유사하다. //조건문 사용 if (a > b){ c = 1; } else{ c=2; } //삼항연산자 사용 (a > b) ? c=1 : c=2; 생일 출력 //String 객체 생성 var birthday = "2020-08-05" //생일을 - 기준으로 나눠서 Array 객체에 저장 후 Array 객체의 메모리 위치 주소값을 리턴하여 변수 arr에 저장 var arr = birthday.split("-"); //객체..

[Array 객체] 문자열 길이 또는 리스트 갯수 체크 : length 속성 [내부링크]

.lengh 배열의 길이를 반환하는 속성. 마지막 원소의 인덱스 값보다 1 더한 수를 반환. 배열의 실제 원소의 갯수를 반환하지 않는다. 단, 한글 '가' 입력시에도 length 값이 1로 나오므로, 글자수를 2byte로 보고 싶다면 escape() 함수를 사용해야 한다. var list = [1,2,3,4]; list.length; // 4 list[1000] = 0; list.length; // 1001 할당도 가능하다. list = [1,2,3,4,5,6]; list.length; // 6 list.length = 3; list; // [1,2,3]

[String 객체] 문자열 복사 후 바꿔서 출력 : replace(), toUpperCase(), toLowerCase() [내부링크]

.replace( n1 , n2 ) 특정 문자열을 찾아 복사 후 다른 문자열로 바꾸는 메소드. n1을 찾아 n2로 바꿈. 복사 후 바꾸었기 때문에 String 객체 소유의 문자열에는 변화가 없다. (출력값만 바뀜) var str = new String("Made In Korea"); document.write( str.replace("korea","USA")+""); Made In USA String 객체 원본 문자열에서 Korea 문자열을 USA로 바꾸려면? str = str.replace("Korea", "USA"); document.write( str + "" ); .toUpperCase( n ) String 객체 소유의 문자열 n을 복사해서 대문자로 바꾸어 출력하는 메소드. 한글/한자/기호 등은 ..

[String 객체] 문자열이 처음/마지막에 나타나는 위치 : indexOf(), lastIndexOf() [내부링크]

.indexOf( v , n ) 특정 문자열이 처음으로 나타나는 위치를 반환하는 메소드. 찾으려는 문자열 v을 인덱스 n 이후에 처음 나오는 v의 인덱스 값을 반환함. 인덱스 n을 입력하지 않으면 처음부터 검색한다. (대소문자 구분함. 찾는 문자열이 없을 경우 -1 반환) var str = new String("Made In Korea"); document.write( "출력값 : " + str.indexOf("K")+""); document.write( "출력값 : " + str.indexOf("k")+""); //대소문자 구분 document.write( "출력값 : " + str.indexOf("a")+""); //2개 이상일 경우 첫번째 자리 출력 document.write( "출력값 : " + ..

[String 객체] 특정 위치 문자 반환 : charAt(), charCodeAt() [내부링크]

.charAt( n ) 특정 위치에 있는 문자를 반환하는 메소드. 인덱스번호가 n 인 문자를 반환함. 만약 인덱스 n에 문자가 없다면 빈 문자열을 반환한다. var str = new String("Made In Korea"); document.write("출력값 : " + str.charAt(8)+""); 출력값 : K .charCodeAt( n ) 특정 위치에 있는 문자의 유니코드 값을 반환하는 메소드. 인덱스번호가 n 인 문자의 유니코드 값을 반환함. 만약 인덱스 n에 문자가 없다면 NaN을 반환한다. var str = new String("Made In Korea"); document.write( "출력값 : "+ str.charCodeAt(8)+""); 출력값 : 75