본문 바로가기

전체 글

[ IT 지식 ] 하드웨어: 컴퓨터의 논리와 구조, 프로세서 속도와 심장 박동수 하드웨어는 컴퓨팅에서 형체가 있고 눈에 보이는 부분이다. 즉, 직접 보고 조작할 수 있는 기기나 장비를 말한다. 컴퓨터는 적어도 두 가지 측면에서 살펴볼 수 있다. 첫번째는 논리적 구성(또는 기능적 구성)으로, 컴퓨터가 어떤 부분들로 이루어져 있고 무슨일을 하며 어떻게 연결되는지에 주목한다. 다음은 물리적 구조로, 각 부분이 어떻게 생겼고 어떻게 만들어지는지를 나타낸다. 어떤 사물의 기능과 물리적 속성 간의 차이, 즉 그것이 무엇을 하는지와 내부적으로 어떻게 만들어지고 얼마나 빨리 작동하는지의 차이를 인지하는 것은 중요하다. 컴퓨터에서 ‘어떻게 만들어지는지’부분은 경이로운 속도로 변하고 있고 ‘얼마나 빨리 작동하는지’부분도 마찬가지지만, ‘무엇을 하는지’ 부분은 꽤 안정적으로 유지되고 있다. 맥과 pc모.. 더보기
[ IT지식 ] 디지털 세상의 핵심 아이디어 4개 디지털 세상의 핵심 아이디어는 다음과 같이 몇가지에 불과하다. 1. 정보의 보편적 디지털 표현: 서로 전혀 다르게 처리됐던 아날로그 표현(종이 편지, 종이지도 등)은 모든 것이 그저 숫자로 처리되는 공통의 저수준 표현, 즉 디지털 정보로 대체됐다. 2. 보편화된 디지털 처리 장치: 이 모든 디지털 정보는 단일 범용 장치인 디지털 컴퓨터로 처리할 수 있다. 정보의 균일한 디지털 표현을 처리하는 디지털 컴퓨터는 아날로그 표현을 처리하는 정교하고 복잡한 기계 장치를 대체했다. 3. 보편화된 디지털 네트워크: 인터넷은 디지털 표현을 처리하는 디지털 컴퓨터를 서로 연결한다. 즉, 컴퓨터와 휴대전화를 메일, 검색, SNS, 쇼핑, 금융, 뉴스, 오락 및 기타 모든 서비스와 연결해 준다. 세계 인구 다수가 이 네트워.. 더보기
[IT 지식] 하드웨어, 소프트웨어, 통신, 데이터란? IT 업계에서 일하면서, 혹은 일상생활에 녹아든 컴퓨팅 세계는 우리가 살아가는 데, 알아야할 것 같아서, 공부하면서 정리해보도록 한다. 컴퓨팅은 네가지 핵심 기술 영역으로 나누어 살펴보면 좋다: 하드웨어, 소프트웨어, 통신, 데이터. 하드웨어: 가시적인 부분으로, 보고 만질 수 있고, 우리가 늘 갖고 있는 휴대전화에도 들어있는 컴퓨터를 의미한다. 컴퓨터 내부에는 무엇이 있고, 컴퓨터는 어떻게 작동하고 어떻게 만들어질까? 어떻게 정보를 저장하고 처리할까? 비트와 바이트는 ㅁ무엇이고 음악이나 영화, 그 밖의 모든 것을 표현하는 데 어떻게 사용될까? 소프트웨어: 즉 컴퓨터에 무엇을 해야 하는지 알려 주는 명령어는 하드웨어와 달리 뚜렷한 실체가 없다. 컴퓨터로 무엇을 계산할 수 있고, 얼마나 빨리 계산할 수 있.. 더보기
[Android Studio] 깃허브 토큰 발급하기 안드로이드 스튜디오에서 pull을 눌러 업데이트를 받아보려고 보니, 경고 알림이 뜬다. 깃허브에 로그인 하라는 알림창이였다. Log In via GitHub 버튼을 눌렀더니, 윈더우 창이 뜨면서, JET BRAINS가 나오고, 'Authorize in GitHub'를 클릭했더니, 이런 창이 떠서 굉장히 당황했다. 해결법: 안드로이드에서 경고창이 나올 때, Use Token 클릭 그 뒤에 나온 팝업창에서 Generate 클릭을 하면 자동으로 (로그인 되어있다면) 내 깃허브 셋팅에 'New Personal access token'화면으로 넘어가진다. (원래라면, 깃허브 Setting -> (맨 밑에) Developer Settings -> Personal access token -> Generate new .. 더보기
[MySQL] 다중 정렬, 정렬기준 2가지 이상일 때: order by 해당 테이블에서, 기본적으로 id순으로 정이 되어있다. 하나의 정렬은 order by를 사용한다. 레시피 이름(컬럼명: name)대로 정렬을 해서 보려면 코드는 하기와 같다. select * from recipe order by name; 짧은 조리시간(cook_time이 적은 순)부터 보고싶다. 그리고, 이름순으로 정렬하고싶다. 하면 하기 코드처럼 해보자 -> 첫번째 정렬 조건이 cook_time순, 그리고 그 중에서 이름 순으로 정렬 select * from recipe order by cook_time, name; 데이터가 큰 순(즉, 반대로) 정렬을 하고 싶으면: DESC 명령어를 사용한다. select * from recipe order by cook_time desc, name; 더보기
[Android] Fragment 프래그먼트 Fragment이란 파편, 조각이라는 뜻을 가진 Fragment는 하나의 Activity로 여러개의 화면을 구성하도록 해준다. 지금까지 하나의 Activity는 하나의 화면을 구성한다고 배웠지만, Fragment를 활용하면 좀 더 쉽고 효율적으로 많은 화면을 구성할 수 있게 된다. 화면을 각각 분할해서 독립적인 코드로 구성할 수 있게 도와주는 것이 Fragment이다. Fragmen는 Activity가 설정한 화면 위에 존재하고, Activity처럼 Fragment도 자신만의 화면을 구성하는 xml파일을 가지고 있다. 따라서 여러개의 Fragment를 만들고 Activity위에 Fragment를 교체하면 하나의 Activity를 가지고 여러화면을 제작할 수 있다. Fragment는 뷰는 아니지만, 뷰처럼.. 더보기
[Android] Inflater Inflater setContentView() 메소드는 View나 xml 파일(view들로 구성)을 메모리상에 객체화하여 화면에 보여주는 역할을 한다. 이때 필요한 과정이 inflate이다. inflate는 Layout파일인 xml 내용이 메모리상에 로드(load)되어 객체화 되는 것을 말한다. 즉, xml 파일에 정의해놓은 view들을 실제의 view 객체로 만드는 역할을 한다. 먼저 activity_main.xml 파일을 setContectView() 메소드의 매개변수로 넣어 화면전체를 설정한다. 전체 화면 중 일부 화면만 다른 xml파일로 구성된 Layout을 보여주려면 LayoutInflater 클래스를 사용해야한다. inflater 메소드는 LayoutInflater클래스의 메소드이다. 이 메소.. 더보기
[Android] Retrofit에서 Multipart form으로 데이터를 보내는 방법 Retrofit에서 Multipart form으로 데이터를 보내는 방법 파일을 보내기 위한 방법 텍스트를 보내기 위한 방법 Multipart란? Multipart는 HTTP를 통해 File을 Server로 전송하기 위해 사용되는 Content-type이다. HTTP 프로토콜은 크게 Header와 Body로 구분이 되고, 데이터는 Body에 들어가서 전송이 되는데, Body에 들어가는 데이터 타입을 명시해주는 게 Content-type이다. 이때 타입으로 지정해주는 형태를 MIME 타입으로 지정해줄 수 있는데, Multupart(=multipart/form-data)는 MIME 타입 중 하나이다. Multipart는 말 그대로 메시지(파일)을 여러 파트로 나누어서 메시지를 전달하는 방식이라고 이해하면 좋다.. 더보기