본문 바로가기
728x90

전체 글748

[Programming] Prolog: Family Tree Example Prolog: Family Tree Example 프롤로그(Prolog)를 공부하는 있어서 대표적으로 많이 나오는 문제가 Famil Tree에 대한 예제이다. 한국말로 하면 가족 관계도에 해당하며 프롤로그를 통해서 Family Tree를 만들고 이에 대한 원하는 결괏값을 바로바로 확인이 가능하다. 아래의 링크를 들어가면 SWISH에서 Family tree example code를 제공해주고 있으니 참고하고 직접 실행해보는 것도 좋다. SWISH -- SWI-Prolog for SHaring % KNOWLEDGE BASE % FACTS: % MALES male(abraham). male(clancy). male(mr_burns). male(homero). male(seymur_skinner). male(b.. 2021. 8. 5.
[HOO's Information] 프로그래밍 공부하는 방법 #00 - Prologue 프로그래밍 공부하는 방법 #00 - Prologue Programming을 공부하는 건 쉽지 않다. 책을 보고 교수님이 주신 과제를 따라서 한다고 해도 과연 내가 프로그래머인가 고민이 되고 걱정이 된다. 프로그래밍에 대한 공부를 해왔지만 과연 내가 프로그램 개발을 실제로 할 수 있는지 의문이 드는 게 프로그래밍 공부이다. 심지어 실무에서 프로그램 개발자도 본인 실력이 정체되어 있지 않은지에 대한 불안감과 걱정을 한다. 프로그래머라는 직업은 계속 공부를 해야 하는 직업이다. 프로그래밍 분야에 따라서 차이가 있을 수 있지만 필자가 공부하고 개발하고 있는 Artificial Intelligence, Data science 분야는 지속적인 공부가 필요하다. 프로그래밍은 매 순간 새로운 툴이나 알고리즘이 나오다 .. 2021. 8. 4.
[Python] 파이썬에서 멀티프로세싱이란?(What is Multiprocessing in Python?) 파이썬에서 멀티프로세싱이란? (What is Multiprocessing in Python?) 멀티프로세싱(Multiprocessing)은 수많은 데이터 처리를 효율적으로 할 수 있는 기본적인 기능이다. Data Science 분야와 같이 빅데이터를 분석하고 활용하기 위해서는 다중처리가 가능한 HW뿐만 아니라 SW에서 알고리즘 방식을 어떻게 가져가느냐가 중요하다. 파이썬에서는 멀티 프로세싱이라는 기능을 제공함으로써 효율적인 데이터 처리를 할 수 있도록 도와주고 있다. 이번 포스트에서는 멀티 프로세싱에 대한 기본적인 개념에 대해서 살펴볼 예정이다. 멀티 프로세싱이란? 멀티프로세싱은 한국에서 다중처리, 병렬 처리 등으로 불리며, 여러 프로세서를 기반으로 병렬적으로 업무 처리를 하는 방식을 의미한다. HW 기.. 2021. 8. 4.
[APP Development] 코틀린 기반 안드로이드 애플리케이션 개발할때 알아두면 좋은 사이트 코틀린 기반 안드로이드 애플리케이션 개발할 때 알아두면 좋은 사이트 애플리케이션을 통한 일 처리에 제약이 많았던 과거와 달리 최근에는 거의 모든 일을 웹을 대신하여 앱에서 처리가 가능하다. 또한 기존 방식의 네이티브 앱뿐만 아니라 웹 앱으로도 충분히 네이티브 앱의 기능을 실행하고 구현할 수 있게 되다 보니 스마트 폰의 앱을 통해 모든 일을 간편하게 처리할 수 있게 되었다. 앱이 다양하게 출시되고 사용자가 불편함 없이 사용할 수 있는 제일 큰 이유는 개발자가 아이디어만 있다면 과거에 비해 상대적으로 손쉽게 개발이 가능하기 때문이다. 또한 스타트업을 준비하는 사람이라면 인프라 시설이나 많은 시드 머니가 필요로 하지 않는 앱 개발을 통해 비즈니스를 시작할 수 있다. 물론 프로그래밍 기술과 많은 노력이 있어야 .. 2021. 7. 31.
[Programming] Queue: 원형 큐(Circular Queue) 단계별 과정 Queue: 원형 큐(Circular Queue) 추가 설명 #01 Q: 공식만 봐서는 이해가 되지 않아서 원형 큐 추가 설명해주세요. 앞선 큐(Queue) 관련 포스트에서 Linear Queue와 Circular Queue에 대해서 살펴보았다. [Programming] Queue(큐): 선형 큐(Linear Queue), 원형 큐(Circular Queue) Queue(큐) Queue란? Queue(큐)는 Data Sturcutre(자료구조)의 한 종류로써 간단한 방식을 사용하지만 많이 사용되는 Data Sturcutre이다. 선입선출이라고 불리는 FIFO(First Input First Output) 방식을 사용하고.. whoishoo.tistory.com Bro 중에서 원형 큐에 대해서 구현 과정을.. 2021. 7. 28.
[Programming] Quick Sort, Sort Algorithms #01 Quick Sort, Sort Algorithms 한국에서는 퀵 소트, 퀵 정렬 또는 빠른 정렬이라고 불리는 대표적인 자료구조(Data Structure) 알고리즘이다. Quick sort에 대한 설명은 포스트 하나에서 자세하게 다루기 어려운 관계로 포스트를 여러 개로 나누어서 소개를 하려고 한다. 이번 포스트에서는 간단하게 Quick sort에 대해서 알아보도록 하겠다. Quick sort란? 한국에서는 퀵 소트 또는 퀵 정렬이라고 불리는 대표적인 자료구조(Data Structure) 알고리즘이다. Quick sort에 대한 설명은 포스트 하나에서 자세하게 다루기 어려운 관계로 포스트를 여러 개로 나누어서 소개를 하려고 한다. 이번 포스트에서는 Quick sort에 대한 근본적인 원리를 살펴봄으로써 Q.. 2021. 7. 28.
[App Examples] 앱 배경 화면 이미지 넣는 방법 예제 코드: android:background="@drawable/" 앱 배경 화면 이미지 넣는 방법 예제 코드: android:background="@drawable/" import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } 2021. 7. 19.
[HOO's Q&A] 1년차 개발자인데 이력서 경력 정리가 필요할까요? Q: 1년 차 개발자인데 이력서 경력 정리가 필요할까요? 당장 이직할 마음은 없지만 미리부터 이력서를 관리하는 건 좋은 생각이다. 이직을 하지 않더라도 1년 동안 자신이 어떤 업무를 담당해서 경험을 쌓고 있는지 스스로 돌아볼 수 있는 계기가 되기 때문이다. 이러한 이력서 경력 정리는 특히 신입 개발자에게 좋은 습관이자 자신의 능력 향상에 큰 도움을 준다고 생각한다. 이력서 경력 정리는 프로그래밍 분야 결정에 도움을 준다. 신입 개발자 중에서 자신이 특정 프로그래밍 분야의 전문가로 활동하지 않는다면 대부분 실무에서 프로그래머로 경험을 쌓으며 공부를 병행하는 과정을 거친다. 이러한 경우 경력을 쌓고 자신의 분야를 찾아 이직을 하고 싶더라도 막상 어떤 프로그래밍 분야로 갈지 막막해진다. 필자는 대학교를 가기 .. 2021. 7. 18.
[HOO's Q&A] FSM과 FSA의 차이가 무엇인가요? Q: FSM과 FSA의 차이가 무엇인가요? FSM이라고 불리는 Finite State Machine과 FSA라고 불리는 Finite State Automata에 대해서 헷갈리는 경우가 종종 있다. 비슷하면서도 FSM와 FSA는 방식에서 다소 차이가 있다. FSM과 FSA를 동일하다고 이야기하는 이유는 FSM 안에 FSA가 존재하기 때문이다. FSM이라고 불리는 방식은 한 가지 방식을 의미하는 게 아니다. 따라서 FSM 방식 안에 FSA라는 방식이 존재하다 보니 FSM == FSA라고 오해하는 경우가 종종 생기는데 그렇지는 않다. 우선 FSM은 전기 회로에 대한 설계를 위한 설계 방식에 해당하며 binary에 대한 이동 방식을 표현하는 사용된다. 그렇다 보니 상황에 따라 입력값이나 결괏값이 한 가지 이상이.. 2021. 7. 17.
[Programming] Finite State Automata: FSA Examples Finite State Automata: FSA Examples #01 ∑={a,b} L={aab+a} ∑={a,b} L={aab+a} L(aaba) -> Yes L(aabbba) -> Yes L(aabbbba) -> Yes L(aabbb) -> No L(aabbbaa) -> No L(baaaa) -> No L(baa) -> No #02 ∑={a,b} L={a^xb^y | x,y > 0} ∑={a,b} L={a^xb^y | x,y > 0} L(aabb) -> Yes L(ab) -> Yes L(aabbb) -> Yes L(aaaaaabb) -> Yes L(bbbbb) -> No L(aaaaa) -> No L(abab) -> No L(baa) -> No #03 ∑={a,b} L={a(ba)*} ∑={a,b}.. 2021. 7. 15.
[Python] 파이참에서 파이썬 패키지 쉽게 설치 하는 방법: import [패키지명] 파이참(Pycharm)에서 파이썬(Python) 패키지(Packages) 쉽게 설치 하는 방법: import [패키지명] 필자의 경우 자주 사용하는 컴퓨터에 기본적으로 패키지 세팅이 되어 있다 보니 추가적으로 새로운 패키지를 설치하는 일이 드물다. 솔직히 프로그래밍을 하는 것보다 세팅하는 과정 자체가 귀찮고 특히 처음 프로그래밍을 접하는 Bro들의 경우에는 하루 웬 종일 세팅만 하다가 하루가 다 가기도 한다. 따라서 파이참에서 손쉽게 패키지를 설치하는 방법을 살펴보려고 한다. pip를 통한 패키지 설치 파이썬에서 추가적인 패키지를 설치한다고 한다면 일반적으로 cmd에서 pip를 통한 패키지 설치가 이루어지곤 한다. pip install numpy 예를 들면 위의 numpy 패키지 설치한다고 할 때 위의 .. 2021. 7. 12.
[Python] 파이썬 연산자: Arithmetic operations 파이썬 연산자: Arithmetic operations 파이썬에서 계산할 때 사용하는 대표적인 연산자 종류로써 아래의 표에 나와있는 연산자는 기본적으로 알아야 하는 연산자이다. 수학적 표기 방법과 비슷하지만 일부는 다른 점도 있으니 유의해서 사용해야 한다. 연산자 표 아래에는 각 연산자 별 파이썬 코드 예제를 통해 연산자의 기능을 살펴볼 수 있다. Operator Operator Name x + y Addition x - y Subtraction x * y Multiplication x / y True division x // y Floor division x % y Modulus x ** y Exponentiation -x Negation 덧셈, 뺄셈, 곱셈은 기본적으로 알고 있는 친숙한 연산자이기에 .. 2021. 7. 11.
[HOO's Q&A] 어셈블리 언어는 시스템 프로그래밍할 때 자주 사용하는 언어인가요? Q: 어셈블리 언어는 시스템 프로그래밍할 때 자주 사용하는 언어인가요? 최근 IoT를 통한 무선 인터넷이 연결된 초소형 기기들 사용이 증가하고 다양한 분야에서 사용이 되다 보니 어셈블리 언어가 인기가 많아진 건 사실이다. 일부 통계 분석 전문 웹사이트에 따르면, 어셈블리 언어가 작년 14위에서 8위로 랭킹 순위가 급상승을 한 것만 보아도 과거에 비해 많은 사람들이 사용하고 있다고 볼 수 있다. 하지만 사실 어셈블리 언어를 전문적으로 사용하는 분야가 아니라면 사용하지 않기 때문에 자주 사용한다고 말하기도 애매하다. 임베디드 시스템 분야나 디바이스 드라이버 관련 시스템 개발 또는 어셈블리 언어의 큰 특징인 실행속도, 프로그램 크기, 모든 HW 시스템 개발 등이 필요한 특정 프로그램의 최적화 과정에서는 어셈블.. 2021. 7. 11.
[Python] 파이썬 버전 확인하는 방법: python, python --version 파이썬 버전 확인하기: python, python --version 파이썬에 오픈소스나 추가 패키지를 설치한다고 할 때 버전 확인을 해야 하는 경우가 종종 있다. 버전 확인을 제대로 하지 않고 추가 패키지를 설치하다가 고생하는 경우가 발생할 수 있기 때문에 간단하게 방법으로 파이썬 버전을 확인해 보는 것이 좋다. 특히 여러 개의 패키지를 사용하거나 연결되어있는 다양한 프로그램을 이용할 경우에는 특히나 하나의 잘못된 패키지 또는 프로그램 버전 설치로 인한 전체 세팅을 다시 해야 하는 골치 아픈 일이 생길 수 있기 때문이다. 필자도 급하게 프로그래밍을 마무리해서 제출해야 하는데 이런 일이 발생해서 욕이 나왔던 적이 있었다. CMD를 통한 python 버전 확인: python --version CMD에서 파이.. 2021. 7. 11.
[App Examples] 앱 페이지 연결과 이동하는 방법: 버튼을 활용한 페이지 연결, 이동 페이지 연결하기: 버튼을 활용한 페이지 연결 애플리케이션 개발에 있어서 페이지 이동은 기본적인 기능이다. 버튼을 통한 페이지 연결과 이동을 살펴보자. MainActivity.kt는 첫 번째 페이지를 의미한다. Page2.kt는 첫번째 페이지에서 버튼을 클릭하여 나오는 다음 페이지를 의미한다. import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super... 2021. 7. 11.
[Programming] Lexemes, Tokens Lexemes, Tokens Lexemes란? Lexemes이란 코드에 작성되고 사용되는 모든 문자열, 숫자, 기호 등을 의미한다. Tokens란? Tokens은 다양한 Lexemes에 대해서 카테고리로 묶어서 항목별로 분류해놓은 것을 의미한다. 아래의 예제를 통해 Lexemes와 Tokens에 관계에 대해서 살펴볼 수 있다. tNum = 5*num+20; Lexemes Tokens tNum identifier = equal sign 5 int literal * multiplication operator num identifier + addition operator 20 int literal ; semicolon 2021. 7. 10.
[Programming] Queue(큐): 선형 큐(Linear Queue), 원형 큐(Circular Queue) Queue(큐) Queue란? Queue(큐)는 Data Sturcutre(자료구조)의 한 종류로써 간단한 방식을 사용하지만 많이 사용되는 Data Sturcutre이다. 선입선출이라고 불리는 FIFO(First Input First Output) 방식을 사용하고 있기에 가장 먼저 들어온 데이터가 제일 먼저 내보내지는 방식을 보인다. 큐의 종류는 대표적으로 선형 큐와 원형 큐가 있으며, 두가지 방식 모두 FIFO 방식이지만 형태의 차이에 따른 기능적 차이가 있다. 따라서 상황에 따라서 선형 큐를 사용하는 것이 효율적일 수 있고 반대로 원형 큐를 사용하는 것이 프로그래밍에 효율적일 수 있다. Queue 용어 Queue를 프로그래밍에서 사용하기 위해서는 각 기능에 대한 용어가 어떤 것이 있는지 알아두는 것이.. 2021. 7. 8.
[HOO's Information] 무료로 프로그래밍 공부하는 방법: 고용노동부, 직업훈련 포털, 국민내일배움카드 무료로 프로그래밍 공부하는 방법: 고용노동부, 직업훈련 포털, 국민내일배움 카드 https://www.hrd.go.kr/hrdp/ma/pmmao/indexNew.do 직업훈련포털 HRD-Net 나에게 맞는 훈련과정은 어떤 것들이 있나요? 청년이 많이 찾는훈련과정은 어떤 것들이 있나요? 구직자가 많이 찾는훈련과정은 어떤 것들이 있나요? 재직자가 많이 찾는훈련과정은 어떤 것들이 www.hrd.go.kr 프로그래밍 공부를 혼자 하는 방법을 터득하거나 노력을 하지 않고는 꾸준히 지속하기가 어렵다. 또한 효율적인 공부 방법을 모르는 상태에서 혼자 프로그래밍 공부를 하기는 더더욱 어렵다. 물론 돈을 내고 학원에 가서 프로그래밍을 교육을 받을 순 있다. 최근에는 도대체 어디서 무엇을 들어야 할지 막막할 정도로 정말 .. 2021. 7. 6.
[Programming] 어셈블리 명령어(Assembly Instructions): SHL, SHR, SAL, SAR, ROL, ROR, RCL, RCR 어셈블리 명령어(Assembly Instructions): SHL, SHR, SAL, SAR, ROL, ROR, RCL, RCR 이번 포스트에서는 어셈블리 명령어 중에서도 bit의 이동(shift)을 통한 데이터 값의 변화를 주는 Instructions에 대해서 살펴보겠다. 표로 간략하게 각 Instructions의 기능을 알아보면 아래와 같다. SHL, Shift left 왼쪽으로 밀어(shift) 높은 bit를 내보내고 Carry Flag로 복사 낮은 bit쪽에 0을 더하여 채운다. SHR, Shift right 오른쪽으로 밀어 낮은 bit를 내보내고 Carry Flag로 복사 높은 bit 쪽에 0을 더하여 채운다. SAL, Shift arithmetic left SHL과 결과적으로 동일하다. 왼쪽으.. 2021. 7. 3.
[Programming] 어셈블리(Assembly) 용어 정리: EAX, EBX, ECX, ESI, EDI, ESP, EBP, INC, DEC, MOV 어셈블리(Assembly) D용어 정리: EAX, EBX, ECX, ESI, EDI, ESP, EBP, INC, DEC, MOV EAX, Extended Accumulator Register 산술 연산을 수행하며 결과값이 지정된 레지스터에 저장 ECX, Extended Counter Register 정해진 횟수에 맞춰 반복 작업 수행 ESI, Extended Source Index 복사된 데이터의 주소 저장 EDI, Extended Destination Index 데이터 복사시 목적지(Destination)에 대한 주소 저장 ESP, Extended Stack Stack의 끝 지점 주소, PUSH/POP, 4 Bytes EBP, Extended Base Pointer Stack의 시작 지점 주소, Sta.. 2021. 7. 3.
[Programming] FIFO Algorithm, FIFO와 QUEUE의 차이점 FIFO Algorithm FIFO란 First Input First Output의 줄임말로 한국에서는 선입선출로 알려져 있다. (필자는 FIFO라고 표현할 것이다.) FIFO는 말 그대로 제일 처음 입력된 데이터가 제일 처음으로 내보내진다라는 의미를 가지고 있다. 즉, 새로운 데이터가 저장되거나 입력되면 오래된 데이터를 내보내고 새로운 데이터가 저장되는 방식이 FIFO인 셈이다. FIFO에 대해서는 이번 포스트에서 처음 알게 된 BRO들도 있겠지만 사실 프로그래밍을 공부하다 보면 많이 접할 수 있는 기초 알고리즘 방식 중에 하나가 바로 FIFO이다. 그렇기에 어느 정도 BRO들이 대략적으로 FIFO에 대해서 알고 있지만 유의할 점이 있다. FIFO는 하나의 data structure가 아니라 data .. 2021. 6. 30.
[Programming] 어셈블리 코드 기본 세팅, assembly code settings 어셈블리 코드 기본 세팅 어셈블리 언어는 기계어보다 조금 더 High language에 속하는 언어이다. 그렇지만 일반적으로 사용하는 자바, 파이썬, C와 같은 High Level Language가 아닌 Low Level Language로써 기계어랑 똑같이 Low Level Language로 취급을 받는 언어이다. 어셈블리 언어를 사용해서 프로그래밍을 할때 기본적인 세팅 방법이 있다. C++에서 라이브러리와 메인 부분을 표시하듯이 어셈블리 코드에서도 기본적으로 포함해야될 기본 세팅 방식이 존재한다. 아래 코드는 어셈블리 언어를 기반으로 프로그래밍을 할때 사용할 수 있는 기본 세팅 방식이다. ;HOOAI .386 .model flat, stdcall .stack 4096 ExitProcess PROTO, .. 2021. 6. 27.
[HOO's Q&A] C++ 다음으로 어떤 프로그래밍 언어를 공부해야 할까요? Q: C++ 다음으로 어떤 프로그래밍 언어를 공부해야 할까요? 분야에 따라 사용하는 언어는 가지각색이다. 특히 4차 산업 시대에 들어서면서 다양한 분야에 SW가 활용되다 보니 분야와 상황에 맞는 프로그래밍 언어를 선택적으로 골라서 사용되고 있다. 물론 점차적으로 파이썬이 전반적인 분야에서 독식하는 형태를 보이는 건 사실이다. 워낙 사용하기가 편하다 보니 파이썬 언어 기반으로 사용하지 않던 분야에서도 파이썬을 기반으로 한 툴이 개발되고 있다. 프로그래밍 관련 학과 학부생이나 컴퓨터와 관련 없는 학부생이지만 전과를 하지 않고 프로그래밍을 배우는 학생들이 프로그래밍 언어에 대한 고민을 많이들 가진다. 위의 Bro도 C++ 언어를 학부때 배우고 자기 계발의 목적으로 다른 프로그래밍 언어를 공부하려고 한다고 필자.. 2021. 6. 19.
[HOO's Q&A] 컴퓨터공학과 학부 졸업 예정자인데 프로그래머랑 맞지 않는거 같아요. Q: 컴공과 학부 졸업 예정자인데 프로그래머랑 맞지 않는 거 같아요. 최근에는 초등학생들도 선택 수업에서 코딩을 배운다. 학교 수업에 없더라도 코딩 열풍으로 초등학생 자녀가 있다면 코딩 학원을 보내거나 과외를 시키는 경우가 많이 늘어나고 있다. 필자에게도 초등학생 프로그래밍 과외를 해줄 수 있냐는 문의가 자주 들어오는 편이다. 필자는 억지로 학원을 다니고 주입식 교육은 반대하지만 다양한 경험을 해봐야 한다는 건 인정하는 부분이다. 현재 컴퓨터 공학과 대학생이나 컴퓨터 공학 전공으로 대학교를 입학 예정인 학생들을 보면 지금의 초등학생들처럼 코딩 수업을 통해 프로그래밍에 대해서 경험을 해보지 못한 점이 안타깝다. 필자도 현재 학부생들처럼 프로그래밍을 경험하지 못하고 대학교에서 처음 접하게 되었기에 얼마나 경.. 2021. 6. 17.
[HOO's Q&A] 알고리즘 공부를 왜 해야 하나요? Q: 알고리즘 공부를 왜 해야 하나요? 프로그래밍 공부를 하거나 취업 준비하는 Bro들과 이야기를 나누다 보면 공통적으로 이야기하는 부분이 알고리즘이 어렵다는 것이다. 찬찬히 이야기를 나누다 보면 알고리즘이 어려운 이유는 알고리즘을 왜 공부해야 하는지 정확히 모르기 때문이다. 알고리즘 공부에 대한 필요성을 느끼지 못하다 보니 그다지 공부를 하기 싫게 느껴진다. 알고리즘을 모르고도 프로그래밍이 가능하다. 사실 알고리즘을 공부를 하지 않고도 프로그래밍을 할 수 있다. 특히 정형화된 프로그래밍일수록 사실 알고리즘을 모르고도 프로그램 개발을 하는데 당장의 지장은 없다. 실제로도 멘토링을 통해서 취업을 한 3년 차 이내 Bro들과 이직 멘토링을 하다 보면 알고리즘을 다 잊어버린 Bro들이 대부분이다. 솔직히 필자.. 2021. 6. 17.
[HOO's Q&A] 내년 졸업인데 취업 준비 어떻게 해야 할까요? Q: 컴퓨터 공학 전공으로 내년 졸업인데 취업 준비를 어떻게 해야 할까요? 프로그래머로 취업을 원하는 학부생의 경우 졸업이 다가오면 고민이 많아진다. 프로그래머라는 직업이 의외로 분야가 다양하고 각 분야에서 사용하는 언어, 툴, 프로그래밍 개발 방식 등이 다르다 보니, 어떻게 취업 준비를 해야 하는지 불안하고 조급해진다. 멘토링 과정에서 이 질문을 해준 Bro의 경우 자신이 가고자 하는 분야의 방향성은 정해졌지만 졸업이 다가오면서 불안함에 조급해서 뭐라도 더 해보고 싶은 마음이 컸다. #01 분야를 결정해라 앞서 이야기한바와 같이 질문을 한 Bro의 경우 자신이 일하고자 하는 분야가 정해진 친구였다. 자신의 어떤 분야에서 일을 할 것인지가 정해졌다면 그다음부터는 정하기가 수월하다. 왜냐하면 목표가 정해졌.. 2021. 6. 15.
[Java] UML Diagram이란? Unified Modeling Language Diagram UML이란? 프로그램 개발을 하다 보면 개발자 간의 소통의 수단으로 사용되는 것 중 하나가 UML Diagram이다. UML은 Unified Modeling Language의 줄임말로 한국말로는 통합 모델링 언어라고 부른다. Language라는 의미가 포함되었다는 것은 개발자 간의 생각을 공유하기 위한 수단으로 이용되는 것이라는 의미를 내포하고 있다. 그러니 UML 다이어그램은 개발한 코드에 대해서 생각의 공유가 쉽게 이루어지기 위한 시각적인 언어인 셈이다. UML Diagram의 종류와 표준 UML Diagram은 정말 다양한 종류가 존재한다. 수많은 종류와 방법 중에서 여러분의 팀이나 동료 개발자와 원하는 방식을 채택해서 사용하면 된다. U.. 2021. 6. 13.
[HOO's Q&A] MySQL과 SQL은 무슨 관계인가요? Q: MySQL과 SQL은 무슨 관계인가요? MySQL이 대중적으로 정말 많이 사용되는 툴이다 보니, MySQL과 SQL(Structured Query Language)를 동일시하거나 MySQL과 SQL에 대해서 혼란스러워하는 Bro들이 종종 있다. 두 개를 전혀 다른 툴로 이해하고 있거나, 마치 자바와 자바스크립트의 관계처럼 오해하기도 한다. 거두절미하고 얘기하자면 SQL은 Programming Language이고 MySQL은 Application, 필자가 그냥 통칭 부르는 툴이다. 필자는 여기서 뭐가 옳고 틀리고를 이야기하고 싶은 게 아니라 그만큼 MySQL를 많이 사용하기 때문에 DB 쪽 프로그래머뿐만 아니라 Web programmer라면 MySQL정도는 알고 있으면 정말 정말 좋다. SQL에 대해.. 2021. 6. 11.
[Programming] 2의 보수 계산하는 방법, Two's Complement 2의 보수 계산하는 방법, Two's Complement # 보수(Complements)를 사용하는 이유? Two's Complement는 한국에서 "2의 보수라고도 부른다. 여기서 말하는 보수는 반대로 세어가는 수라는 의미로 Computer Science에서 사용되는 단어이다. Two's Complement에서 Complement라는 단어는 보완하다 또는 덧붙이다 등과 같은 의미로 사용되는 단어이다. 단어의 의미에서 유추해 볼 수 있듯이 보수 즉 Complement는 이진법 계산에서 양수와 반대되는 값인 음수 값을 의미한다. 프로그래밍에서 보수와 같은 계산 방식이 필요한 이유는 연산 시스템의 이유가 있다. 컴퓨터는 우리가 쉽게 계산하듯이 덧셈, 뺄셈을 할 수가 없다. 덧셈을 기반으로 뺄셈이 이루어지기 .. 2021. 6. 11.
[Programmer INFO] 신입 개발자가 취업할때 조심해야하는 경력 뻥튀기 사기 파견 업체 최근 한 Bro가 알려준 사실이다. 해당 Bro는 필자와 공부 및 진로의 방향성을 정하고 작년에 웹프로그래머 취업했다. 이 친구의 경우 학부 때 프로그래머 관련 학과가 아니다 보니 국비 지원 학원을 통해 웹 프로그래밍의 기본을 배울 수 있었다. 당시에 같이 학원을 다니던 동기 중에서 몇 명이 사기 파견 업체에서 피해를 보고 있다는 걸 필자를 통해 알려주었고 현재 공부를 같이하고 있는 Bro들에게도 알려줘야 되겠다는 생각이 들었다. 미꾸라지 한마리가 흙탕물을 흐리듯이 일부 업체에서 신입 개발자에게 반강제로 경력 뻥튀기를 시키고 프로그래머 필요한 업체에 파견을 보내는 경우가 있다. 사실 이러한 문제는 갑자기 생겨난 문제는 아니다. 이전부터 있어왔고 어쩌면 정보 공유가 더딘 과거에 더 많았을 수도 있다. 그런.. 2021. 6. 10.
728x90