728x90
- [JMeter] JMeter 플러그인 설치 방법 및 Socket Sampler 설치 Netty로 채팅을 위한 간단한 소켓 서버를 만들었다. 부하 테스트를 위해 JMeter를 사용하려고 한다. 일단 JMeter설치 후 소켓 서버 테스트를 하기 위해선 별도로 플러그인을 설치해야한다. JMeter 설치JMeter Plugin 설치WebSocket Sampler 다운부하 테스트 진행 JMeter 설치1. 아래 URL 접속https://jmeter.apache.org/download_jmeter.cgi Apache JMeter - Download Apache JMeterDownload Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the d..
- [ECLIPSE] 이클립스 SVN - target 타겟 폴더 제외 ignored 1.Window -> Preferences -> Version Control(Team) -> Ignored Resources add pattern... 클릭 2. */target/** 입력 후 ok -> apply
- [JAVA] SSO 인증 심플 구현 - 예제 A사이트에서 로그인을 하고 A사이트에서 특정 버튼/메뉴 클릭 시, B사이트 (메인)페이지로 이동(B사이트 자동 로그인) 1. A사이트에서 B사이트 호출() 시 헤더에 특정 name으로 userId를 담아 보냄 2. B사이트에서 헤더 name을 확인하고 value(userId)를 B사이트 DB에서 조회 3. DB 조회 후 userId가 존재한다면 로그인 처리 후 메인화면으로 이동 없다면 얼롯창 안내 후 B사이트 로그인 페이지로 이동 1. B사이트 호출 URL 지정(약속)해야 함 2. 호출 시 헤더 name 지정(약속)해야 함 3. dispatcher-servlet.xml에서 호출 URL 세션 및 로그인 예외 처리 1. A사이트에서 B사이트 요청 jsp 스크립트 2. B사이트에서 요청 받음, java 단에서..
- [ORACLE] 오라클 regexp_replace 정규표현식 - 전화번호, Email 마스킹 예제 select REGEXP_REPLACE(REGEXP_REPLACE(tel, '(02|.{3})(.+)(.{4})', '\1-\2-\3'), '(.{3})(.*)(.{4})', '\1-****-\3') as tel1 -- 결과: 010-****-4567 ,REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(tel, '(02|.{3})(.+)(.{4})', '\1-\2-\3'), '(.{3})(.*)(.{4})', '\1-****-\3'),'-','') as tel2 -- 결과: 010****4567 from dual select REGEXP_REPLACE('test@test.co.kr' , '([[:alnum:]]+)(@[[:alnum:]]+(\.[[:alnum:]]+)+)','******..
- [MariaDB] JAVA /JDK 버전 별 Mariadb JDBC 드라이버 다운 - mariadb-java-client JAVA /JDK 버전 별 Mariadb JDBC 드라이버 다운 방법( mariadb-java-client) 아래 사이트에서 JAVA /JDK 버전 별 Mariadb JDBC 드라이버 버전을 확인한다. https://mariadb.com/kb/en/mariadb-connector-j-releases/ List of MariaDB Connector/J Releases A list of all Connector/J releases mariadb.com 그리고 아래 사이트에 들어가 해당 버전에 맞는 드라이버를 다운 받는다. https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
- [Javascript] Clipboard, 텍스트 복사 (ctrl + C) 기능 구현 함수 function copyEv(){ let text = $(".copyText").text() + "\r\n" + $(".copyTextBr").text(); // 복사할 내용 let t = document.createElement("textarea"); var agent = navigator.userAgent.toLowerCase(); if(agent.indexOf("msie") != -1 || agent.indexOf('trident') != -1){ // IE일 때 document.body.appendChild(t); t.value = text; window.getSelection().selectAllChildren(t); }else{ // chrome일 때 t.textContent = text; d..
- [ERwin] 테이블 코멘트Comment 추가 스크립트(DDL) 추출 방법 논리/물리 모델 모두 작성 후 테이블을 생성 했는데 코멘트가 빠져있네.. 코멘트를 추가해준다.. 환경: ERwin7 1. Physical(물리)를 선택하고 Database -> Pre & Post Scripts > Model-Level 2. Stored Procedures 창이 나오면 New -> 이름 지어주고 (ex) M) -> OK 를 클릭한다 3. 아래 해당 DB툴 컬럼 코멘트 생성 스크립트 복사 MySQL %ForEachTable() { ALTER TABLE %TableName COMMENT = '%EntityName'; %ForEachColumn() { ALTER TABLE %TableName CHANGE COLUMN %ColName %ColName %AttDatatype %AttNullOpti..
- [ERwin] 테이블 생성 스크립트(DDL) 추출 방법 순서 DB 설계 중.. 설계한 ERD를 DDL문으로 만들어 테이블을 생성하려고 한다 환경: ERwin7,mysql(mariaDB) 1. Physical(물리)를 선택하고 Tools -> Forward Engineer -> Schema Generation 2. Forward Engineer Schema Generation 창이 나오면 Schema의 post-Scipt와 Create Procedure를 체크하고 Preview를 클릭한다 3. Create 문이 생성된 걸 확인 할 수 있다 .sql 파일로 저장해도 되고, 복사해서 사용할 수도 있다
- [MSSQL] IF 문 사용법 MS SQL의 IF문은 오라클보다 익숙한 형태이다 IF (조건1) BEGIN 조건1이 참일경우 SQL END ELSE IF (조건2) BEGIN 조건1이 거짓이고, 조건2가 참일경우 SQL END ELSE BEGIN 조건1,2 모두 거짓일경우 SQL END
- [MSSQL] 문자로 자릿수 채우기 - 오라클 LPAD, RPAD 오라클의 LPAD, RPAD는 특정 문자로 자릿수를 채울 수 있다 SELECT LPAD( '111', 5, 0 ) -- 00111 FROM DUAL SELECT RPAD( '111', 5, 0 ) -- 11100 FROM DUAL MSSQL로 위와 같은 기능을 구현하려면 SELECT REPLICATE( 0 , 5 -LEN('111'))+ '111' AS LPAD -- 00111 , '111' + REPLICATE( 0 , 5 -LEN('111')) AS RPAD -- 11100 위와같은 형태로 작성할 수 있다
- [MSSQL] 가상 테이블 사용하기 - 오라클의 DUAL 오라클에서 가상 테이블을 사용할 때 DUAL을 사용한다 SELECT SYSDATE FROM DUAL MS SQL에서 가상 테이블을 이용하려면 단순히 FROM을 빼주면 된다 SELECT SYSDATE
- [MSSQL] 오라클 yyyymmddhh24miss 날짜 포멧 변경 오라클 버전(?)으로 만든 프로젝트를 MSSQL로 변경중이다 날짜 포멧이 거의 TO_CHAR(SYSDATE, 'yyyymmddhh24miss') 인데 MS SQL 포멧에 이게 없다 CONVERT(CHAR(8), GETDATE(), 112) + REPLACE(CONVERT(CHAR(8),GETDATE(),108),':','') 혹은 FORMAT(GETDATE(), 'yyyyMMddHHmmss')
- [ORACLE] 오라클 ORA-01722: 수치가 부적합합니다. - DECODE 사용 시 주의사항 데이터 타입이 일치하지 않는 경우 발생하는 오류이다. 하지만 아~무리 쿼리를 확인해도 데이터 타입은 전부 일치했다. 이럴 때 정말 당황스럽다..^____^ 어찌 감으로 해결했는데 원인은 DECODE 사용할 때 함수 결과 데이터 타입이 일치하지 않아서였다. 예를 들어 DECODE( ? , 'Y', 1000 , 'FREE') as price ? 에는 'N'이나 'Y'만 온다고 가정할 때, ? = 'N' 일 경우 price는 문자열인 'FREE'가 되고, ? = 'Y' 일 경우 price는 숫자(넘버)인 1000이 된다. 결론: 함수 결과의 데이터 타입도 맞춰야 한다.! 이외 기본적인 데이터 타입이 STRING인데 NUMBER를 더하고 뺀다던가 (ex '만원' - 3000 ) price가 NUMBER로 정의되..
- [Windows] 원격 데스크톱(RDP) 복사 붙여넣기 안될 때 - mstsc 일하면서 원격 데스크톱(RDP)이나 VPN을 정~말 많이 쓴다. 근데 원격 데스크톱 사용 중 로컬PC와 복붙(Ctrl+C, Ctrl+V)이 안된다면? 너무너무너무너무 불편하다. 빨리 해결해보자! (개발 시 로컬에도 소스 백업을 해두는데 복붙이 안되서 당황했다^^) * 막간 상식 * - VPN와 원격 데스크톱의 차이 - 둘 다 각각의 장점이 있지만 그 특징과 용도가 다르다. VPN은 고객의 연결을 보호하고 인터넷의 제한된 콘텐츠에 액세스할 수 있게 해주는 반면, 원격 데스크톱은 컴퓨터에 액세스할 수 있게 해준다. 해결 방법 1 원격 데스크톱 연결(mstsc) 클립보드 체크 원격 데스크톱 연결 창을 열고 옵션표시(O) -> 로컬 리소스 -> 클립보드가 체크 되어 있는지 확인한다. 근데 보통 체크되어 있다. ..
- [jQuery] css() 메소드로 속성 수정(변경) 방법 - !important 안 먹을 때 jQuery css 속성을 변경할 때 보통 이렇게 변경한다 $('tel').css('background-color', '#BBDEFB'); !important 를 설정하는 경우 아래와 같이 작성하면 될 것 같지만.. $('tel').css('background-color', '#BBDEFB !important'); !important도 적용 안되고 background-color도 변경되지 않는다.. 변경 방법은 아래와 같다 $('tel').attr('style', 'color: #BBDEFB !important'); !important를 value 값으로 생각하나,,,?
- [JavaScript] 리스트에서 ''으로 묶인 값 제거해서 동적 property 사용하는 방법 - EVAL() 사용 피하기, 대괄호 표기법 리스트를 생성하고 그 값들으로 for문을 돌려 동적 property에 들어 있는 값을 사용해야하는 상황이있었다 잘못된 예) //req.data = ['a': '1', 'b':'2', 'c':'3', 'd': '4', 'e': '5']; var list = ['a', 'b', 'c', 'd', 'e']; var result = req.data; for(i in list){ console.log(result.list[i]); } 처음에 당연히 result.list[i] 이렇게 작성하면 데이터가 뽑힐 줄 알았는데 오류가 났다.. 이유는 정확히 모르겠으나 리스트 안에 ''으로 감싸져 있기 때문이 아닐까 하는데... 나도 정확한 이유가 궁금하다ㅋㅋ 아무튼 내가 해결한 방법은 result.list[i] 에서 res..
- [Oracle] 다중 INSERT - 여러 행 한번에 넣기 Oracle - 다중 INSERT 하는 방법이다 보통 INSERT를 할 때 쓰는 쿼리문은 이런 형태이다 INSERT INTO 테이블 명 VALUES ('값1', '값2', '값3') 만약 특정 컬럼에만 INSERT를 하고싶다면 INSERT INTO 테이블 명 (컬럼1, 컬럼2, 컬럼3) VALUES ('값1', '값2', '값3') 이제 다중 테이블이나 특정 테이블에 두번 INSERT하면 INSERT ALL INTO 테이블 명 (컬럼1, 컬럼2, 컬럼3) VALUES ('값1', '값2', '값3') INTO 테이블 명 (컬럼1, 컬럼2) VALUES ('값1', '값2') SELECT * FROM DUAL 이렇게 사용하면 된다
- [ORACLE] NULL 값 치환 NVL, NVL2 함수 - 그룹핑 예제 포함! 오라클에서 쿼리문 작성 중 SUM이나 AVG 등으로 그룹핑을 하는데, 데이터가 NULL값이면 데이터가 뽑히지 않는다! 근데 나는 0 이나 '' 라도 뽑고싶다! 그럴 때 NVL, NVL2 함수를 사용하면 된다. 사용법은 간단! NVL(컬럼, NULL일때 반환 값) 이렇게 감싸주면 된다. - 예제 - NVL(컬럼,0) -- 컬럼의 값이 NULL일경우 0으로 치환 NVL(컬럼,'') -- 컬럼의 값이 NULL일경우 ''으로 치환 NVL(컬럼,SYSDATE) --컬럼의 값이 NULL일경우 현재날짜로 치환 그리고 SUM 이나 AVG 등으로 그룹핑을 할 때는 NVL(SUM(컬럼), 0) -- SUM한 컬럼의 값이 NULL일경우 0으로 치환 NVL(SUM(컬럼), ’’) -- SUM한 컬럼의 값이 NULL일경우 ''..
- [SQL] SELECT문, 서로 다른 조건, 한 줄로 출력! - Key값 없이 Join 사용하기 리포트 개발 소프트웨어를 사용하던 중 데이터를 한 줄로 뽑아 넘기면 데이터를 사용하기 편한 상황이 있었다. (물론 여러 개의 쿼리문으로 뽑아 컨트롤러나 서비스단에서 VO에 담아 줄 수도 있었다.. 주절주절 TMI..) 아무튼 그때 쓴 쿼리다! 가정 1 A테이블(a1, a2, a3, a4 ~~) B테이블(b1, b2, b3, b4 ~~) * 서로 겹치는 데이터 없음 * SLELECT * FROM ( SELECT 1 AS FLAG ,A.A1 ,A.A2 ,A.A3 ,A.A4 FROM A테이블 A WHERE 조건 )AA INNER JOIN ( SELECT 1 AS FLAG ,B.B1 ,B.B2 ,B.B3 FROM B테이블 B WHERE 조건 )BB ON AA.FLAG=BB.FLAG; INNER JOIN을 FRO..
- [SERVER] IPv6 와 IPv4 스프링으로 로컬 개발 중 request.getRemoteAddr() 함수로 아이피 주소를 가져오는데 0:0:0:0:0:0:0:1 로 찍히는 사용자와 127.0.0.1 찍히는 사용자를 보았다. 이유는 간단! 0:0:0:0:0:0:0:1는 IPv6 주소이고 127.0.0.1는 IPv4 주소이기 때문이다. 그럼 IPv6와 IPv4는 무엇일까? IPv6(Internet Protocol version 6)는 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 버전 6 인터넷 프로토콜(version 6 Internet Protocol)로 제정된 차세대 인터넷 프로토콜을 말한다! 인터넷(Internet)은 IPv4 프로토콜로 구축되어 왔으나 IPv4 프로토콜의 주소가 32비트라는 제한된 주소 공간 및 국가별로 할당..
- [인공지능] 게임 트리 - 미니맥스(minimax) 알고리즘, 알파베타 가지치기, 휴리스틱 평가 함수(evaluation function) 인공지능에서 게임은 상단히 좋은 연구주제 입니다. Tic-Tac-Toe나 체스, 바둑과 같은 게임은 추상적으로 정의할 수 있고 지적 능력과 연관이 있는 것으로 생각되었습니다. 게임의 규칙을 아래와 같이 합니다. 1. 2인용 게임 2. 두 경기자를 MAX와 MIN으로 부름 3. 항상 MAX가 먼저 수를 둔다고 가정 4. 차례대로 수를 두는 게임만 대상으로 함(순차적인 게임) 5. 제로썸 게임- 한명이 승리하고 한명은 패배이며, 협동적인 승리는 없음 Tic-Tac-Toe 게임트리 Tic-Tac-Toe 게임트리의 일부입니다. Tic-Tac-Toe 게임 트리의 크기는 게임보드가 3X3 크기를 가지고 있고, 한 곳에 수를 놓으면 다른 사람이 놓을 수 있는 곳이 하나 줄어들게 됩니다. 따라서 9*8*7*6*5*4*..
- [인공지능] 오류 역전파 알고리즘 핵심 요약 - 경사 강하법(gradient descent) 기존에 개발된 학습방법 중에 현재까지 가장 많이 사용되고 기본적인 학습방법 중 하나인 오류 역전파 알고리즘에 대해 알아보겠습니다. 오류 역전파 알고리즘란? 전체 학습 데이터에 대한 전체 오차를 최소화하는 방향으로 연결 강도를 갱신하여 학습하는 알고리즘입니다. 역전파 알고리즘은 지도학습(Input에 대한 Output이 정해져 있는 상태)에서 신경망을 학습시킵니다. 지도학습에 대해서는 이전 게시물을 참고해 주세요! https://ssollacc.tistory.com/29?category=973418 [인공지능] 딥러닝이란? - 헷갈리는 의미와 학습 방법 3가지 쉽게 설명! 요즘 인공지능에 대한 관심이 정말 많이 높아진 것 같다. 하지만 막상 인공지능이 무엇인지 머신러닝, 딥러닝이 무엇인지 차이를 구분할 줄 ..
- [React Native] 리액트 네이티브 배열과 JSX구문 배열에 여러 개의 JSX문을 담을 수 있습니다. App.tsx import React from 'react' import {SafeAreaView, Text} from 'react-native' export default function App(){ const children = [ test_1 , test_2 , test_3 ] return {children} } {children} 을 보면 배열 변수에 담긴 JSX문은 반드시 부모 컴포넌트의 자식 컴포넌트 형태로 만들어야 합니다. 배열 JSX문을 만들 때 조심할 점 JSX문에서 여러개의 자식 컴포넌트가 있을 때는 반드시 XML작성 원칙을 준수해야 합니다. XML 문법에서 부모 요소 없이는 여러 개의 XML 요소를 만들 수 없습니다. JSX 역시 XML..
- [React Native] Xcode iOS 앱 프로젝트 생성 XCode를 실행하고 file -> New -> Project 메뉴를 클릭합니다. 다음 화면에서 Document App 을 선택하고 Next를 누릅니다. 다음 화면에서 Project Name 항목에는 프로젝트 이름을 입력하고 Interface 항목에는 Storyboard를, Language 항목에는 Objective-C를 선택하고 Next를 누릅니다. 그리고 프로젝트를 저장할 디렉터리를 선택하고 Create버튼을 누르면 다음처럼 Xcode 프로젝트 화면이 나타납니다. 화면 왼쪽 위 화살표 아이콘 오른쪽에 있는 실핼 대상 시뮬레이터를 눌면 다양한 iOS 시뮬레이터가 나오고 다크모드를 제공하는 iPhone 11 시리즈를 선택합니다.
- [React Native] 안드로이드 앱 프로젝트 생성 안드로이드 스튜디오 초기 화면에서 를 누릅니다. 다음 화면이 나오면 를 선택하고 를 누릅니다. 이어서 Save location에는 안드로이드 프로젝트를 저장할 디렉터리를 설정하고 Language 항목은 Java로 선택한 후 Finish를 눌러 프로젝트를 생성합니다. 그러면 다음 처럼 안드로이드 스튜디오 프로젝트 화면이 나타납니다. 그래들 빌드가 끝나면 Run 메뉴 가장 위의 Run 'app'을 실행합니다. 그러면 안드로이드 에뮬레이터에는 다음의 왼쪽과 같이 빌드한 앱을 실행한 모습이 나타납니다.
- [React Native] 리액트 네이티브 React.createElement와 JSX 구문과의 관계 아래 예제에서 Text를 리액트와 리액트 네이티브에서는 컴포넌트(Component)라 합니다. App.tsx import React from 'react' import {Text} from 'react-native' export default function App(){ const textElement = React.createElement(Text, null, 'Hello World') return text Element } React.createElement는 컴포넌트를 가상 DOM 객체로 만듭니다. 컴포넌트는 여러개의 속성(propeaty)과 하나 이상의 자식 컴포넌트를 가질 수 있습니다. 따라서 컴포넌트에는 속성과 자식 컴포넌트가 올 수 있으므로 React.createElement는 다음 형태로 ..
- [React Native] 리액트 네이티브 마크업 언어 용어 HTML 마크업 언어는 xml 마크업 언어의 부분집합(subset)입니다. XML은 태그나 속성을 마음대로 확장할 수 있으나 HTML은 그렇지 못하기 때문입니다. JSX가 'JavaScript HTML'이 아니라 'JavaScript XML'인 이유는 HTML은 문서를 구성하는 요소의 태그 이름이 모두 고정되어 있지만 XML은 문서 구성 요소의 태그 이름을 자유롭게 지정할 수 있기 때문입니다. 이것이 '확장 가능(eXtensible)'의 의미 입니다. 마크업 언어 문법은 다음처럼 div와 같은 태그(tag)를 꺾쇠 기호()로 감싼 시작 태그를 처럼 만들고 처럼 태그 이름 앞에 / 기호를 추가한 끝 태그로 감싼 형태가 기본 입니다. 그리고 시작 태그에는 id, style과 같은 속성(attribute)을 ..
- [React Native] 리액트 네이티브 JSX JSX = JavaScript + XML JSX는 'JavaScript XML'의 줄임말로, XML에 자바 스크립트를 결합할 용도로 만든 구문입니다. React.createElement 호출 코드를 좀 더 단순하고 간결하게 만들 수 있고, 이를 자바스크립트를 확장하는 방식으로 구현합니다. '자바스크립트를 확장한다'라는 의미는 표준 ESNext 자바 스크립트나 타입스크립트 문법에는 JSX 구문이 없다는 뜻입니다. 리액트 네이티브 프레임워크 개발사인 페이스북은 마치 JSX 구문이 표준 자바스크립트 문법에 포함된 것처럼 동작하도록 설계했습니다. 그리고 이런 설계를 할 수 있었던 이유는 ESNext 자바스크립트 컴파일러인 바벨(babel)이 플러스인 구조로 동작하기 때문입니다. 바벨은 ESNext 자바스크립트 ..
- [React Native] 리액트 네이티브 개발에서 사용하는 명령, 초기화하는데 사용하는 명령 요약 리액트 네이티브를 개발할 때 실행하는 명령 명령 의미 npm i package.json 파일에 명시된 패키지를 node_modules 디렉터리에 설치합니다. 설치한 패키지는 android나 ios 디렉터리의 네이티브 모듈에서 동작하는 파일을 가질 수 있습니다. npx pod-install 오브젝티브-C 처럼 C 계열 언어는 원격지 저장소에서 패키지(라이브러리)를 내려받아 설치하는 기능이 없습니다. 따라서 pod 프로그램을 실행하여 원겨지 저장소에서 필요한 패키지를 내려받아 로컬 컴퓨터에 설치해야 합니다. 이와는 달리 안드로이드 빌드 도구인 그래들은 원격지 저장소의 라이브러리를 내려받는 기능이 있으므로 이 과정이 필요 없습니다. npm start npm run android나 npm run ios 명령은 ..
- [React Native] 리액트 네이티브 React.createElement API 리액트와 리액트 네이티브에서 React.createElement API는 가장 저수준 기능으로서 가상 DOM 객체를 생성한다. HTML로 웹 브라우저에 'Hello World' 등의 텍스트를 출력하려면 아래와 같이 작성한다. Hello world 그러면 웹 브라우저가 렌더링하여 화면에 웹 페이지를 표시한다. 자바스크립트로 앞의 HTML 텍스트과 동일한 효과를 구현하면 다음과 같은 코드로 물리 DOM 객체를 생성한다. const pElement = document.createElement('p') pElement.innerText = 'Hello JavaScript world' 그리고 이 물리 DOM 객체는 다음 코드가 있어야만 렌더링되어 화면에 나타난다. document.body.appendChild(p..
- [React Native] 리액트 네이티브 DOM과 렌더링 - 물리 DOM, 가상 DOM, 차이점, react 패키지 역할, 브릿지 방식 렌더링 리액트 네이티브 DOM과 렌더링 DHTML 방식은 자바스크립트가 Hello world와 같은 텍스트를 만드는 것이 아니라 객체 지향 언어의 상속 관계로 설계한 문서 객체 모델(Document Object Model, DOM)타입 자바스크립트 객체를 생성하는 방식으로 동작한다. 웹 브라우저는 정적 HTML 문서를 만나면 파싱(parsing) 과정을 거쳐 웹 브라우저 개발 도구 창(F12)에서 본 DOM 트리 같은 형태의 자바스크립트 객체 구조를 만든다. 웹 브라우저는 , 과 같은 HTML 형태로 보여주지만 자바스크립트 코드 관점에서 는 HTMLDivElement 클래스의 인스턴스(instance)이고, 은 HTMLHeadingElement클래스의 인스턴스이다. HTMLDivElement, HTMLHeadi..
- [인공지능] 탐색 알고리즘 - 상태공간, 8-PUZZLE, 깊이 우선 탐색(DFS), 너비우선 탐색(BFS), 언덕 등반 기법, A* 알고리즘 초기 인공지능 학자들은 답을 찾는다라는 것에 집중하였는데, 그렇기 위해서는 탐색 기법을 잘 만들어야 한다고 생각했다고 한다. 우리가 잘 아는 알파고 또한 딥러닝과 탐색 기법을 통해 수를 읽었다. 탐색(search)이란 '상태공간에서 시작 상태->목표 상태까지의 경로를 찾는 것' 상태공간 * 상태공간(state space): 상태들이 모여 있는 공간 연산자: 다음 상태를 생성하는 것 시작상태: 초기상태 목표상태: 문제가 해결된 상태 8-PUZZLE 8-PUZZLE은 퍼즐을 최소한으로 이동하여 원래 상태로 맞추는 것이다. 8-puzzle에서 연산자는 up, left, down, right 연산자로 4가지 연산이 가능. (빈칸을 움직이는 것이 연산) 탐색 트리를 8-puzzle로 설명하면 상태 = 노드(nod..
- [React Native] 리액트 네이티브 샘플 코드 샘플 코드를 보면서 이전 게시물을 토대로 기본 앱의 소스 코드와 리액트 네이티브 프로젝트의 구조를 살펴보자! Create React Native App으로 생성한 프로젝트의 시작 코드인 App.js import React form "react"; import { StyleSheet, Text, View } from "react-native"; export default class App extends React.Component { render(){ return ( Hello, world! ); } } const styles = StyleSheet.create({ container : { flex: 1, backgroundColor: "#fff", alignItem: "center" justifyCont..
- [인공지능] 파이토치(PyTorch)란? 설치방법 간략하게 소개 텐서 플로우 1.0은 코드를 이해하거나 다루기 어려웠고, 파이토치가 나와 인기가 많아지자 이를 대항하기 위해 텐서 플로우 2.0도 나왔다. 딥러닝 초반에는 텐서플러우가 많이 사용되었지만 요즘에는 파이토치를 더 많이 쓰는 추세라고한다. 파이토치에 대해 알아보자! 파이토치란? 2017년 초에 공개된 딥러닝 프레임워크이다. GPU를 활용하여 쉽게 인공 신경망 모델을 만들고 학습시킬 수 있다. 파이토치 공식 문서에서는 이렇게 적혀 있다. (https://pytorch.kr/) Python 기반의 과학 연산 패키지로 다음과 같은 두 집단을 대상으로 합니다: - NumPy를 대체하면서 GPU를 이용한 연산이 필요한 경우 - 최대한의 유연성과 속도를 제공하는 딥러닝 연구 플랫폼이 필요한 경우 Numpy: 행렬이나 일..
- [인공지능] 딥러닝이란? - 헷갈리는 의미와 학습 방법 3가지 쉽게 설명! 요즘 인공지능에 대한 관심이 정말 많이 높아진 것 같다. 하지만 막상 인공지능이 무엇인지 머신러닝, 딥러닝이 무엇인지 차이를 구분할 줄 아는 사람은 극히 드물다. 관심이 높아진 만큼 제대로 알고 관심을 가져보자! (나도 공부!!) 이전 게시물에서 인공지능에 대해 꽤 이야기 했기 때문에 이번에는 딥러닝에 대해 알아보기로 한다. 딥러닝이란?? 위 그림과 같이 딥러닝은 머신러닝 기법 중 하나이며 머신러닝(기계학습)은 인공지능 분야 중 하나이다. 차례대로 설명하자면 인공지능은 '기계가 인간의 인지 과정을 모방하는 것'이고 인지 과정 중 에는 '학습'과 '문제해결'이 있는데 그 방법이 머신러닝이다! 머신러닝은 말그대로 '기계가 학습하게 하자!' ,'기계가 학습을 통해 지능을 갖게 하자!'라는 의미이다. 그럼 딥러..
- [MyBatis] 스프링 마이바티스 MariaDB XML Alias 별칭 AS 사용 방법 - INSERT INTO 시 특정 값 변경 Alias는 다양한 상황에서 쓰이지만! 나같은 경우는 INSERT INTO를 할 때 같은 테이블을 복사해서 특정 값만 변경하여 저장하기 위해 사용했다. (사실 특정 값 변경 방법이 생각 안나서 임시테이블 생성 -> 테이블 복사 -> 특정 값 변경(수정) -> 기존 테이블에 저장 하는 방법을 사용하려했다..^^) 아무튼 Alias를 사용해서 더 깔끔하고 간단하게 특정 값 변경해서 INSERT INTO 가능! ALIAS란? ALIAS는 값에 별칭을 주어 접근을 별칭 형태로 할 수 있도록 하는 역할을 한다. 데이터,칼럼,테이블,서브쿼리,WHERE절 등에 사용할 수 있고 대표적으로 알아보기 힘든 칼럼에 AS(별칭)을 많이 사용. 예약어는 AS 이고 의미 있는 별칭을 사용하는 것이 좋습니다. 사용 예 /* 테이블..
- [MyBatis ] 마이바티스 부등호 사용 XML 에러 (The content of elements must consist of well-formed character data or markup) MyBbatis에서는 와 같은 부등호를 사용하면 태그로 인식되어 에러가 난다. 해결 방법은 간단! 으로 감싸준다. 예제 10 ]]>
- [IntelliJ] 인텔리제이(Intellij) 학생계정 인증 무료 라이센스 발급 및 설치 방법 무료 버전인 IntelliJ Community 버전이 있지만! Community 버전과 Ultimate 버전은 기능 차이가 있다. 학생 메일계정이 있으면 졸업년도까지 매년 무료로 라이센스를 준다고 한다. 써보자! 단, 매년 홈페이지에 들어가서 인증을 하고 재발급을 받아야함. 1. 인텔리제이 학생 라이센스 인증 링크 접속한다. https://www.jetbrains.com/community/education/#students Free Educational Licenses - Community Support Learn or teach how to code with best-of-industry tools from JetBrains. Free Educational Licenses for JetBrains' t..
- [인공지능] 인공지능의 겨울과 붐, 발전과 도약 제 1차 AI 붐(인공지능의 태동) 1943년에 Warren McCulloch과 Walter Pitts는 뉴런들의 간단한 네트워크를 분석하고 이것이 간단한 논리 기능을 수행할 수 있음을 보여주었고, 그리고 이것을 연구자들이 인공 신경망이라고 부르게 되었음 튜링 테스트, 페셉트론, 다트머 학술 대회, "탐색으로 추론하기"시대 등의 사건(?)으로 AI 붐이 일어남. 첫 번째 인공지능(AI) 겨울 컴퓨터로 ‘추론·탐색 을 하는 것으로 특정한 문제를 푸는 연구가 한계에 도달. 결국 1970년대에 첫 번째 겨울을 맞이함. 선형문제만 풀 수 있었고 그 당시2, 3층으로 만들 학습 방법이 없었음. 당시의 문제점 1. 1970년대에는 충분한 컴퓨터 파워가 없었다. 실제로 유용한 결과를 내는데 필요한 CPU의 속도나 충..
- [인공지능] 튜링 테스트, 엘리자(ELIZA), 중국어 방(중국인 방), 퍼셉트론,전문가 시스템 튜링 테스트 튜링 테스트(Turing Test)는 이미테이션 게임으로도 불리며, 인공지능의 판별 기준으로 널리 알려져 있음. 영국의 수학자 알란 튜링은 "기계가 생각할 수 있을까?"라는 질문에 기계와 사람을 구분할 수 없다면 인공 지능이 구현 되었다고 보야한다고 주장. 튜닝 테스트는 "50년 뒤에는 일반인으로 구성된 심사위원들이 5분 동안 대화를 한 뒤, 기꼐와 대화를 했다고 깨닫는 비율이 70%를 넘지 않도록 프로그래밍하는 것이 가능해 질 것"이라고 한 예견을 기반을 둬서 만든 테스트임. 일반인으로 구성된 심사위원이 컴퓨터와 채팅을 통해 텍스트로 대화를 한다. 즉, 응답 내용 이외에 컴퓨터와 사람을 구별할 수 있는 요소는 모두 차단된 상태에서 진행. 사람으로 판정하는 비율이 30% 이상이 되면, 인간처..
- [인공지능] 인공지능(AI)이란? - 강인공지능, 약인공지능, 인공지능 역사 인공지능(人工智能, Artificial intelligence, AI)이란? 인간의 학습능력, 추론 능력, 지각 능력, 그 외에 인공적으로 구현한 컴퓨터 프로그램 또는 이를 포함한 컴퓨터 시스템이라고 정의 합니다. 하지만 인공지능은 연구자들마다 정의가 다르다고 합니다. 정의 분야 인간처럼 사고하기 (Thinking Humanly) Cognitive Science, 신경망 합리적으로 사고하기 (Thinking Rationally) 논리학, 추론 인간처럼 행동하기 (Acting Humanly) Turing Test, 로봇 공학 합리적으로 행동하기 (Acting Rationally) 에이전트: 목표를 성취하기 위해 행동, 추론을 포함 인공지능의 유형에는 강인공지능(strong AI)과 약인공지능(weak AI..
- [용어] 보일러 플레이트 (Boiler Plate) 요약 프로그래밍에서 말하는 보일러 플레이트는 동작을 위해 반드시 포함되어야하는, 필수 내용이 포함된 코드를 말함! 일반적으로 수정되지 않아도 동작하는 코드이며, 필요에 따라 이 코드를 바탕으로 수정하여 사용하게 되는 기본 틀을 일컫는다. 정보기술에서 말하는 보일러 플레이트는 변경 없이 계속하여 재 사용할 수 있는 저작품을 말한다. 확대 해석하면, 이 아이디어는 때로 "보일러 플레이트 코드"라고 부르는, 재사용 가능한 프로그램을 가리키는데 사용되기도 한다. 이 용어는 철강 제조 부문에서 유래되었으며, 보일러 플레이트는 원래 증기 보일러 내에 사용되는 커다란 압연 강판을 의미한다. 이 용어는 보일러 플레이트가 오랜 기간동안 시험되었으며, 강철처럼 튼튼하다, 또는 반복적으로 재사용하기에 충분할 정도로 강력한 ..
- [ReactNative] 리액트 네이티브 로컬 개발 환경 설정 2가지 방법(create-react-native-app, 기본적인 방법)과 실행 리액트 네이티브 개발 환경 설정 방법은 크게 두가지로 나눌 수 있습니다. 첫번 째는 Create React Native App이라는 도구를 사용하는 방법이고 두번 째는 React-Native init 명령어를 이용하여 프로젝트를 생성하는 아주 전형적인 개발 환경 설정입니다. 교육적인 목적이나 프로토타이핑을 생각하는 초심자는 Create React Native App를 추천! 리액트 네이티브 앱을 전문적으로 사용하거나 자바스크립트와 자바, 오브젝티브-C 혹은 스위프트(Swift)코드와 같은 네이티브 코드를 함께 사용하는 하리브리드 앱을 작성하게 된다면 결국 init 명령어를 이용하여 프로젝트를 생성하는 전형적인 개발 설정을 사용하게 될 것 입니다. Create React Native App Create R..
- [ReactNative] 리액트 네이티브 대상 플랫폼 API 리액트 웹과 리액트 네이티브의 가장 큰 차이점은 대상 플랫폼 API를 대하는 방식입니다. 웹 환경에서는 아직도 브라우저마다 표준 기술을 지원하고 있는 정도가 다른데 이런 파편화 특성은 해결해야 하는 문제로 취급됩니다. 이와 달리 리액트 네이티브에서는 해당 플랫폼에서만 지원하는 플랫폼 특유의 API는 멋지고 자연스러운 사용자 경험을 만듦에 있어 중요한 열쇠가 됩니다. 물론 여기에도 고려해야 할 사항이 많은데 모바일 API는 데이터 저장소, 위치 서비스, 카메라와 같은 하드웨어 접근에 대한 모든 것을 포함하고 있습니다. 기본적으로 iOS와 안드로이드를 위한 리액트 네이티브는 일반적으로 많이 사용되는 기능을 대부분 지원하고 있습니다. 그리고 리액트 네이티브는 비동기 네이티브 API도 지원합니다. 그리고 대상 ..
- [SQL] 조인 - join이란? INNER, OUTER, CROSS, SELF 조인이란? "두 테이블로부터 특정 조건을 만족하는 레코드들을 하나의 레코드로 결합하는 연산" 조인은 두개 이상의 테이블이나 데이터 베이스를 연결하여 데이터를 검색하는 방법입니다! 검색하고 싶은 컬럼이 다른 테이블에 있을 경우 주로 사용하고 테이블을 연결하려면 최소 하나의 컬럼은 서로 공유 되고 있어야 합니다. 보통 Primary Key 혹은 Foreign Key로 연결. INNER JOIN INNER JOIN은 기준 테이블과 JOIN한 테이블의 중복 값을 보여줍니다. LEFT OUTER JOIN 기준 테이블의 모든 값 + JOIN한 테이블과 중복된 값을 보여줍니다. 조건을 넣어주면 중복된 값을 제거해줄 수 있습니다. RIGHT OUTER JOIN JOIN한 테이블의 모든 값 + 기준 테이블과 JOIN한 ..
- [Oracle] 오라클에서 데이터 타입 number VS integer VS int 차이 문득 테이블 생성시 데이터 타입을 생각하다가 number 와 integer, int 의 차이가 궁금해졌다. 여러 사이트를 뒤져본 결과... BINARY_INTEGER = -2147483647에서 2147483647 사이의 정수 NUMBER[(P, S)] = 고정 및 부동 소숫점 수에 대한 기본 유형 INT = INTEGER의 또다른 이름 int와 integer는 같은 뜻이고 정수. number는 소수점까지! 보통 integer보단 number를 많이 쓰는 것 같다. 참고로 오라클에서는 integer를 잘 사용하지 않으며 integer 사용시 오라클에서 자체적으로 number로 변환하여 저장한다고 한다. float 타입도 마찬가지! 참고 Data Types - MariaDB Knowledge Base ht..
- [ReactNative] 리액트 네이티브 컴포넌트 만들기 (뷰 작업, JSX 사용, 네이티브 컴포넌트 스타일링) 모든 리액트의 코드는 리액트 컴포넌트 안에 존재합니다. 리액트 네이티브 컴포넌트는 일반적인 리액트 컴포넌트와 대부분 비슷하지만 렌더링과 스타일 적용 방법에서 큰 차이가 있습니다. 뷰 작업하기 리액트를 이용해서 웹 페이지를 만들 떄는 일반적인 HTML요소 (, , 등)를 사용하여 렌더링 합니다. 리액트 네이티브는 이러한 요소 대신에 플랫폼에 종속적인 리액트 컴포넌트를 사용합니다. 리액트 리액트 네이티브 , , 자식 아이템 가장 기본적인 컴포넌트는 크로스 플랫폼 인데, 단순하고 유연한 UI 요소로 와 유사합니다. 컴포넌트는 iOS에서는 UIView로 렌터링되고 안드로이드에서는 VIEW로 렌더링 됩니다. 다른 컴포넌트들은 특정 플랫폼에서만 동작합니다. 예를 들어 는 iOS의 표준 날짜 선택기를 렌더링합니다. ..
- [eclipse] 이클립스 "the default workspace is in use or cannot be created. please choose a different one" error 문 해결방법 간혹 이클립스를 사용하다보면 아래와 같은 에러문이 발생할 때가 있다. The default workspace is in use or cannot be create. 라는 메시지가 나오면서 평소에 사용하는 워크스페이스가 아닌 다른 워크스페이스를 지정하라고 하는데, 해결 방법에는 두가지가 있다. 해결 방법 1. Windows 작업관리자(CTRL + SHIFT + ESC) - 프로세스 - eclipse.exe 프로세스 끝내기 2. workspace폴더 - .metadata폴더 안에 .lock 파일 삭제
- [React Native] 리액트 네이티브 동작 원리(DOM, bridge, 렌더링 라이프 사이클 ) 기술적인 측면에서 리액트 네이티브의 동작 원리를 이해하려면 먼저 리액트의 특징 중 하나인 가상(Virtual) DOM에 대해 알아야 합니다. 리액트에서 가상 DOM은 '화면이 어떤 모습이어야 하는지 개발자가 작성한 내용과 실제 화면에 렌더링되는 것 사이에 존재하는 레이어'에 해당됩니다. 브라우저에서 상호작용하는 사용자 인터페이스를 렌더링하기 위해서 개발자는 반드시 브라우저의 DOM(Document Object Model)을 수정해야합니다. 하지만 과도한 DOM 수정은 심각한 성능 저하를 유발합니다. 리액트는 페이지의 변화를 바로 렌더링하지 않고 먼저 메모리에 존재하는 가상 DOM에서 변화가 필요한 곳을 계산하고 필요한 최소한의 변경사항만 렌더링 합니다. state 변경 -> 차이점 계산 -> 다시 렌더링..
- [eclipse] SVN Check Out 프로젝트 import 오류 / Maven Update SVN에서 새로운 프로젝트 파일을 다운 받았는데 package도 못찾고 어노테이션도 import가 안되는 현상 발견.... 해결 방법은 생각보다 간단했다! maven Update!! 정확히는 모르겠으나 메이븐 빌드가 잘못됐던 거 같다.. 문제 해결 방법 프로젝트 선택 후 마우스 우클릭 -> Maven -> Update Maven Project 해당 프로젝트 선택 후 Force Update of Snapshots/Releases 체크 후 OK 요약 프로젝트에서 마우스 우클릭 -> Maven -> Update Maven Project ->Force Update of Snapshots/Releases 체크 ->OK 또는 프로젝트 클릭 -> Alt+ F5 ->Force Update of Snapshots/Rel..
- [eclipse] 이클립스 'UTF-8' 한글 깨짐 해결! 전체 인코딩& 개별 프로젝트 인코딩 방법 eclipse를 새로 설치하니.. 설정할 게 너무 많다..ㅜㅜ 보통 이클립스를 깔고 처음 프로젝트를 진행하면 한글 깨짐 현상을 발견할 수 있습니다. 이럴 땐 인코딩을 해주어야 하는데, 인코딩 방법은 두가지가 있습니다! 이클립스 전체 인코딩 설정과 개별 프로젝트 별 인코딩 설정 방법 모두 소개하겠습니다~ 이클립스 전체 인코딩 설정 이클립스 상단 메뉴바에서 [Windows -> Preferences]에서 [General -> Workspace]를 찾아 들어갑니다! Workspace 설정창에서 Text file encoding 항목을 찾아 원하는 인코딩 방식(UTF-8)으로 변경합니다. 그럼 끝~!! 개별 프로젝트 인코딩 설정 개별 프로젝트 인코딩 설정은 프로젝트를 선택하고 [ 마우스 우클릭 -> Proper..
- [eclipse]이클립스 자바스크립트(js) 파일이 흑백으로 나올 때 스프링 프로젝트를 실행 시켰더니 js파일이 흑백으로 나왔다... 해결 방법을 찾아보니, 파일 내에서 우클릭 후 [Open With -> Generic Text Editor]을 선택하면 js의 색상이 돌아왔다..! 하지만 이건 임시방편일 뿐이니, 근본적으로 해결해보자!! 문제 해결 방법 해결 방법은 자바스크립트 파일에 대한 기본 에디터를 설정하는 것이다! 상단 메뉴 바에서 [Window - Preferences - File Associations]를 들어가 준다. 그 후 Add를 눌르고 창이 뜨면 .js 입력 후 ok를 누른다. 그러면 File types에 *.js가 생길텐데 선택하면 Text Editor가 가장 상단에 있는 것을 볼 수 있다. 우리는 Generic Text Editor를 쓸 것이니 클릭하..
- [React Native] 리액트 네이티브란? 개념과 특징, 장단점 ! 리액트 네이티브란?! 리액트 네이브는 'iOS와 안드로이드에서 동작하는 네이티브 모바일 앱을 만드는 자바스크립트 프레임워크'입니다. 리액트 네이티브는 사용자 인터페이스를 만드는 페이스북의 자바스크립트 라이브러리인 리액트에 기반을 두고 있는데, 브라우저가 아닌 모바일 플랫폼이 타깃입니다. 즉, 웹 개발자가 익숙한 자바스크립트 라이브러리를 이용하면서 겉모습과 실제 동작까지 진짜 네이티브인 모바일 앱을 만들 수 있습니다. 게다가 작성한 코드 대부분을 플랫폼 간에 공유할 수 있어서 리액트 네이티브를 이용하면 iOS와 안드로이드 앱을 동시에 개발할 수 있습니다! 공식 리액트 네이티브 프로젝트는 iOS와 안드로이드에서 모두 동작하는 모바일 앱을 작성할 수 있게 해 주는데, 커뮤니티 프로젝트를 이용하면 리액트 네이티..
- [React Native]맥에서 앱 개발 환경 갖추기 #2 (Xcode, 코코아팟, 왓치맨, 안드로이드 스튜디오) 1편에 이어 mac 개발 환경을 소개합니다. https://ssollacc.tistory.com/entry/mac-reactnative1 [iOS] 맥에서 앱 개발 환경 갖추기 #1 (홈브루, 비주얼스튜디오코드, Node.js, 자바8 JDK ) 맥에서 앱 개발 환경을 갖추는 방법입니다. 홈브루 설치 https://brew.sh/index_ko Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 방문하여 다음 명령을 복사한 후 터미널에서 실행합니다.. ssollacc.tistory.com Xcode 설치 iOS 앱을 개발하려면 Xcode가 필요합니다. 그러려면 먼저 developer.apple.com에서 계정을 만들어야 합니다. http..
- [React Native] 맥에서 앱 개발 환경 갖추기 #1 (홈브루, 비주얼스튜디오코드, Node.js, 자바8 JDK ) 맥에서 앱 개발 환경을 갖추는 방법입니다. 홈브루 설치 https://brew.sh/index_ko Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 방문하여 다음 명령을 복사한 후 터미널에서 실행합니다. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 비주얼 스튜디오 코드 설치 터미널에 다음 명령으로 VSCode를 설치합니다. brew install cask brew install --cask visual-studio-code *Homebrew 2.6 이하라면 'brew cask install 설치할 앱' 명..
- [React Native] 리액트 네이티브 VSCode 환경 설정 및 사용법 #4 비주얼 스튜디오 코드(이하 VSCode)는 자바, 파이썬, PHP 등 다양한 프로그래밍 언어를 지원하는 만능 편집기입니다! 따라서 VSCode에서 타입 스크립트로 리액트 네이티브 프로젝트를 개발하려면 그에 맞는 환경설정과 사용법에 대한 이해가 필요합니다. Windows와 Mac 설정 동일합니다! 한국어 언어 팩 설치 Scoop으로 설치한 VSCode는 기본으로 영문 버전인데, 이를 한국어로 바꾸려면 언어 팩을 설치해야 합니다. VSCode 왼쪽 아이콘 바에서 [Extension]을 누르거나 [View ->Extension] 메뉴를 실행시킵니다. 그런 다음 'Korean'을 검색해 다운로드하여 주시면 됩니다! 타입 스크립트 설치 VSCode는 Windows PowerShell(윈도우 파워 셸) 같은 터미널..
- [React Native] 리액트 네이티브 안드로이드 스튜디오 설치 및 설정 #3 안드로이드 스튜디오 설치하는 방법 두 가지를 설명해 드리겠습니다! 첫 번째 방법은 홈페이지에서 다운을 받아 설치하는 방법입니다. 아래 링크 게시물에서 확인해주세요! https://ssollacc.tistory.com/entry/Android-setup [Android] 안드로이드 스튜디오 설치 방법 Windows10에 안드로이드 스튜디오 설치 방법을 상세하게 알려드리겠습니다! - Android Studio Download address - https://developer.android.com/studio?hl=ko&gclid=Cj0KCQjw6s2IBhCnARIsAP8RfAiBHex90_uh8rLJf.. ssollacc.tistory.com 두 번째 방법은 윈도우 파워 셸(Windows PowerShell..
- [Android] windows에서 안드로이드 스튜디오 설치 방법 Windows10에 안드로이드 스튜디오 설치 방법을 상세하게 알려드리겠습니다! - Android Studio Download address - https://developer.android.com/studio?hl=ko&gclid=Cj0KCQjw6s2IBhCnARIsAP8RfAiBHex90_uh8rLJfPAp1vygPRTLLXaQ2XqM0K6zBdYBpUPEupJWxQ0aAkMnEALw_wcB&gclsrc=aw.ds
- [React Native] 리액트 네이티브 윈도우 개발환경 갖추기 #2 윈도우에서 개발환경을 갖추기 위해 Scoop와 Node.js, Java8 JDK, VSCode를 설치해 보겠습니다! Scoop 설치 Scoop 프로그램 설치는 관리자 모드로 실행한 윈도우 파워 셸에서 진행합니다. 파워 셸에서 Scoop을 설치하려면 다음 명령을 실행합니다. >>> Set-ExecutionPolicy RemoteSigned -scope CurrentUser 명령을 실행한 후 '모두 예'를 의미하는 A를 입력합니다. 그 후 'SCOOP'이라는 이름의 파워 셸 환경 변수를 다음처럼 설정합니다. >>> $env:SCOOP='C:\Scoop' 그러면 앞으로 Scoop으로 설치한 모든 프로그램은 C:\Scoop 디렉터리에 위치합니다. 하지만 이 환경변수 설정은 파워셸에서 Scoop으로 프로그램을 설..
- [React Native] 리액트 네이티브 앱 프로그래밍 시작하기 #1 안녕하세요! 앱 개발을 시작하기 전에 #리액트네이티브 프레임워크를 소개해보도록 하겠습니다~ #리액트 프레임워크는 2013년에 페이스북에서 발표한 오픈소스 자바스크립트 프레임워크입니다. 리액트는 가상 DOM(virtual DOM)과 JSM(javascript XML)라는 새로운 방식으로 동작하는 프레임 워크로 많은 사람들이 프런트엔드 웹을 개발할 때 사용하고 있습니다. #네이티브(native)라는 단어는 '운영체제를 만들 때 사용한 프로그래밍 언어와 똑같은 언어로 만든’이란 의미입니다. 그리고 네이티브 앱은 모바일 운영체제 (안드로이드 - 자바, iOS - 오브젝티브-C)로 만든 앱을 네이티브 앱이라고 합니다. 네이티브 앱은 실행 속도가 빠른 장점이 있지만 습득해야 할 지식이 많고, 똑같은 기능을 안드로이..
728x90