OLD개발이야기

    VDI란 (Virtual Desktop Infrastructure 가상 데스크톱 인프라)

    VDI(Virtual Desktop Infrastructure) 가상 데스크톱 인프라 사용자들은 각자의 컴퓨터에서 가상 데스크톱에 원격으로 액세스한다. 보통 데이터 보안을 위해 망분리를 위해서 사용한다. [VDI 장점] 원격 액세스 : 다양한 단말에서 접속을 지원한다. 비용절감 : 전력 세이브 보안 : PC 분실/ 도난/ 파손 등의 위험이 없음 중앙 집중식 관리 : 서버에서 데이터를 관리한다. // 실제로 VDI사용시 너무너무 느리다.. - 어떤 사용자가 접속을 하던 같은 PC환경을 제공한다. (표준화 관리 가능, 스마트오피스 구현 가능) 실제 대학교 랩실에서 VDI를 통해서 수업별 프로그램 세팅을 할 필요가 없었다. 단점으로는 개인이 설치가 불가능해서 다른 버전이 필요할때 굉장히 곤란했다.. 관리자를 ..

    [취준] IT 취업준비 DB 관련 자주 나오는 질문

    Commit: 하나의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝났을 때, 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산 Rollback: 하나의 트랜잭션 처리가 비정상적으로 종료되어 DB의 일관성을 깨뜨렸을 때, 모든 연산을 취소(Undo)시키는 연산. 2. DBMS에 대해 설명해보시오 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용프로그램이다. 3. PK, FK, ER모델이란 Primary Key: 관계형 DB에서 레코드(튜플)의 식별자로 이용하기에 가장 적합한 것을 후보키 중에 하나 선택한 것 Foreign Key: 관계형 DB에서 한 테이블의 키 중 다른 테이블의 튜플을 식별할 수 있는 키 ER-Model: 관계형 데..

    비트 제어

    비트 연산은 알지만 비트의 ㅇㅇㅇ를 clear해라~ 를 보면서 어림짐작으로 & 연산자를 사용을 알았지만 자세히는 몰랐기 때문에 조금 정리해보려고 한다. & AND 같으면1 0 0 0 0 1 0 1 0 0 1 1 1 | OR 하나만 1이어도 1 0 0 0 0 1 1 1 0 1 1 1 1 ^ XOR 다르면1 0 0 0 0 1 1 1 0 1 1 1 0 ~ NOT 결과값 반대로 num 1= 0; num2 = ~num1 //num2 : 1 [shift 연산] > 2); // 6: 0000 0110: num2의 비트 값을 오른쪽으로 2번 이동 & 모두 1이면 1 | 하나만 1이면 1 ^ 서로 다르면 1, (서로 동일하면 0) ~ 반대로 출력 오른쪽으로 비트단위로 이동 * 1/2 (0.5배) Mask On Mask ..

    VPN (Virtual Private Network) 가상사설망

    VPN이란? Virtual Private Network 가상사설망가장 잘 정리: 공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 바깥 사람에게 드러내지 않고 통신할 목적으로 쓰이는 사설 통신망VPN은 인터넷을 통해 전용망과 같은 사설 네트워크를 구성할 수 있도록 해주는 기술 가상사설망을 이용하면 VPN 사업자가 운영하는 원격 서버를 통해 인터넷에 접속하게 됩니다. VPN 서버는 안전한 네트워크 연결을 목적으로, 사용자가 안전하게 웹사이트에 접속하기 위한 역할을 합니다. IP 우회 수단으로 해킹과 같은 일에 사용되곤 한다. -VPN은 둘 이상의 네트워크에서 가상의 터널을 만들고 암호화된 데이터를 전송할 수 있도록 구성된 네트워크-공중망 상에서 구축되는 논리적인 전용망-ISP가 사용자의 인터넷 활동 내역..

    자료구조) 덱

    덱덱은 double-ended queue 의 줄임말, deque전단, 후단 모두에서 삽입 삭제가 가능하다. 따라서 첫번째 노드와 마지막 노드를 가리키는 포인터 두개가 필요하다, head, tail.덱은 보통 이중 연결리스트로 구현된다. 왜냐하면 양쪽 삽입, 삭제를 위해서 양쪽으로 링크를 가지고 있어야함 123456789101112131415161718192021222324252627282930313233typedef int element; typedef struct DlistNode{ element data;struct DlistNode * llink;struct DlistNode * Rlink;}DlistNode; typedef struct DequeType{ DlistNode *head; DlistN..

    자료구조 정리) 큐

    큐는 선입 선출 FIFO FIrst In First Out큐의 삽입이 일어나는 곳을 후단(rear)큐의 삭제가 일어나는 곳을 전단(front) 삽입 연산인 enqueue삭제 연산인 dequeue 삽입 삭제 관리를 위해 스택에서는 top이라는 변수를 사용한다면,큐에서는 rear와 front 2개의 변수를 사용한다. 1) 선형큐 (배열로 구현된 큐)front와 rear의 초기값은 -1데이터 증가시 : rear++, 그 자리에 데이터가 저장된다데이터 삭제시: front ++, 그자리에 있는 데이터를 삭제 단점: 언젠가는 배열의 끝에 도달하게 되어서, 배열의 앞부분이 비어있어도 사용하지 못한다는 점따라서 주기적으로 모든요소를 왼쪽으로 옮겨야한다. 2) 원형 큐 특징: front와 rear값이 배열에 끝에 도달하..

    C++/ double 소수점 자리 뒤 출력 /int string 으로

    내가 궁금한거는123456이 있을 때, 456만 출력하고 싶다면?부터 시작해서 그냥 수 출력에 대해서 간단히 정리해 보았당. 12345678910111213141516171819202122double d=123.123456789; cout

    알고리즘 공부 ) 프로그래머스 - 최대공약수와 최소공배수 C++

    유클리드 호제법(Euclidean algorithm)은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. 1. 입력으로 두 수 m,n(m>n)이 들어온다.2. n이 0이라면, m을 출력하고 알고리즘을 종료한다.3. m이 n으로 나누어 떨어지면, n을 출력하고 알고리..

    프레임워크란?

    지금까지 프레임워크를 들으면 알듯말듯해서 정리해 보기로 하였다.지금까지의 생각은 프레임워크는 부분적인 동작을 도와주는 것이고 프레임워크들이 모이면 엔진이다. http://moolgogiheart.tistory.com/87여기에서 잘 정리해 둔 것 같다. 프레임워크는 프로그램의 뼈대(틀)이라고 보면 된다. . 애플리케이션을 구축할 때 모든 애플리케이션의 공 통적인 부분을 제공해줍니다.그렇다면 플랫폼이란?프로그램 실행 환경

    Vector사용법

    vector 문법 템플릿 형식 templateclass vectorT는 vector 컨테이너 원소의 형식 생성자 vector vv는 빈 컨테이너이다. vector v(n)v는 기본값으로 초기화된 n개의 원소를 갖는다. vector v(n,x)v는 x 값으로 초기화된 n개의 원소를 갖는다. vector v(v2)v는 v2 컨테이너의 복사본이다.(복사 생성자 호출) vector v(b,e)v는 반복자 구간 [b,e)로 초기화된 원소를 갖는다. 멤버함수 v.assign(n,x)v에 x 값으로 n개의 원소를 할당한다. v.assign(b,e) v를 반복자 구간 [b,e)로 할당한다. v.at(i)v의 i번째 원소를 참조한다. v.back()v의 마지막 원소를 참조한다. p=v.begin()p는 v의 첫 원소를 ..

    프로그래머스 숫자의표현 C++ 알고리즘 문제 Level4

    알아가기+)math.h 의 ceil()함수, float를 무조건 올림하여 인트형으로, round()는 반올림floor()는 내림 수학을 공부하던 민지는 재미있는 사실을 발견하였습니다. 그 사실은 바로 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지라는 것입니다. 예를 들어, 15를 표현하는 방법은 (1+2+3+4+5) (4+5+6) (7+8) (15) 로 총 4가지가 존재합니다. 숫자를 입력받아 연속된 수로 표현하는 방법을 반환하는 expressions 함수를 만들어 민지를 도와주세요. 예를 들어 15가 입력된다면 4를 반환해 주면 됩니다. #include using namespace std; int expressions(int testCase) { int answer = 0; for(in..

    프로그래머스 효진이 멀리 뛰기 C++ 알고리즘 연습 level3

    효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 출력하는 jumpCase 함수를 완성하세요. 예를 들어 4가 입력된다면, 5를 반환해 주면 됩니다. #include #include using namespace std; int jumpCase(int n) { if(n==1) return 1; else if(n==2) return 2; else return (jumpCase(..

    프로그래머스 야근지수 C++알고리즘 연습 level3

    프로그래머스 야근지수 C++알고리즘 연습 level3 야근 지수 회사원인 수민이는 많은 일이 쌓여 있습니다. 수민이는 야근을 최소화하기 위해 남은 일의 작업량을 숫자로 메기고, 일에 대한 야근 지수를 줄이기로 결정했습니다. 야근 지수는 남은 일의 작업량을 제곱하여 더한 값을 의미합니다. 수민이는 1시간 동안 남은 일 중 하나를 골라 작업량 1만큼 처리할 수 있습니다. 수민이의 퇴근까지 남은 N 시간과 각 일에 대한 작업량이 있을 때, noOvertime 함수를 제작하여 수민이의 야근 지수를 최소화 한 결과를 출력해 주세요. 예를 들어, N=4 일 때, 남은 일의 작업량이 [4, 3, 3] 이라면 야근 지수를 최소화하기 위해 일을 한 결과는 [2, 2, 2]가 되고 야근 지수는 22 + 22 + 22 = ..

    안드로이드 스튜디오 뷰 View

    안드로이드에서의 화면은 모두 View라는 클래스를 상속 받는다. 뷰 클래스는 위젯이라고 한다.ex) 버튼은 버튼위젯, 코드에서는 버튼 클래스 . 위젯을 담아서 배치하는 툴 ( 레이아웃) 즉 View 가 모든 위젯의 부모 클래스 이다. 위젯과 레이아웃들은 모두/ View 클래스의 속성과 메소드를 상속 받는다. XML속성id속성 - 코드에서 해당 아이디로 접근을 시도한다.findViewById(R.id.해당아이디);( 텍스트뷰나 배경이미지 이미지뷰는 굳이 아이디 속성 필요 ㄴ) Match_parent 부모에 폭이나 높이를 맞춤Wrap_content 자신의 글자가 들어갈 정도로 맞춤

    안드로이드 기본 레이아웃 설정

    gridLayout같은 경우는먼저 사이즈를 정의를 함 frameLayout은 각각 겹치게 놓을 때 LinearLayout은 요즘 많이 쓰임 && RelativeLayout맨위에 android:orientation="horizontal" 이걸로 레이아웃 설정하는듯 한쪽 방향으로 선형적 요소들 나열 할 떄

    안드로이드 스튜디오 Linear Layout

    종류는 2가지이다.android:orientation=“vertical” // 세로 android:orientation=“horizontal” // 가로 android:layout_width/height:"match_parent/wrap_content” match_parent- 내용과 상관없이 화면을 꽉 채움wrap_content- 내용이 들어있는 만큼만 화면을 차지한다Android:textColor=“#fc0000” Android:background= “#68f1fd" 일반 레이아웃과 달라진 점 ?

    안드로이드 스튜디오 인텐트란 , 인텐트 호출

    Intent? 안드로이드 기기에 설치되어 있는 다른 앱에 푸쉬를 보낼 때 사용 public void onClick(View v){ Intent intent = new Intent(getApplicationContext(),SecondActivity.class); startActivity(intent);}새로운 인텐트 객체를 생성하고, 다른 클래스를 파라미터로 넘긴다. startActivity()안에 넣어주면 인텐트 객체인 새로운 화면인 SecondActivity가 실행된다.인텐트 객체에 데이터를 넣어서 전달한다.startActivity()는 새로운 액티비티에서 응답이 없을 때 사용한다.startActivityForResult()의 경우에는 새로 띄운 액티비티로 받는 응답을 처리할 경우에 사용한다. Exa..

    피보나치 수열 C++

    재귀 함수? Re(int n){if(n==0)return 0;return n + Re(n-1);} 피보나치 점화식 : F_0=0, \ F_1=1, \ F_{n+2}=F_{n+1}+F_{n}F0​=0, F1​=1, Fn+2​=Fn+1​+Fn​ 피보나치 방법 2개있지 않나 ? 순환? 재귀 ? 피보나치는 F(0) = 0, F(1) = 1일 때, 2 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 점화식 f(1) = f(2) = 1f(n) = f(n-1) + f(n-2) if (n==0)=> 0if (n==1)=> 1if (n==2)=> 1 int fibo( int n){if(n == 0)return 0;if( n==1)return 1;elsereturn fibo(n-1) + fibo(..

    C++ 사인 그리기

    #include#include#include#includevoid Init(bool(*buf)[10]){for (int y = 0;y 60)x = 59; // ?int y = (float)sin(i / 180.0f*3.14) * 5;//라디안 값으로, -5~ 5 // sin / cos tan 바꾸면 다 됨 if (y = 10)y = 9;buf[x][y] = true;}}void Render(bool(*buf)[10]){for (int y..

    언리얼 엔진 공부 (1)

    쉐이더? GPU를 통해 연산하는 행위 gpu 에는 계산가능한 코어가 수백~수천개가 들어있음cpu의 100배가 넘음이를 통해서 버텍스와 픽셀값을 한번에 계산 가능 그럼 왜 엔진을 쓰는가?3D max 등 그래픽 에디터 툴에서 만든 모델을 실제 게임에 적용하기는 어려움.opengl/ directx 같은 경우 파싱과 로더를 만들어야 함.그래서 이부분을 Unity/ Unreal 이 쉽게 도와줌 셰이더란? GPU를 통해 연산을 하는 것언리얼에선 다양한 셰이더를 지원함 셰이더 종류1. Vertex 2, Fragment(pixel) CPU에서 전송-> 1로 연산 -> 2로 연산 -> 디스플레이에 표현 1: 속도가 빠름2: 속도가 느림GLSl( opengl shading language) 그래픽스의 모든 요소는 행렬로 ..