blue-dot의 등록된 링크

 blue-dot로 등록된 티스토리 포스트 수는 180건입니다.

파이썬 머신러닝 입문 공부일지 5. Pandas 판다스 Index 객체 [내부링크]

Pandas 의 index 객체에 대해서 RDBMS (관계형 데이터베이스 관리 시스템) 의 PK(Primary Key) 와 유사하게 사용된다는 것을 앞서 확인하였습니다. https://blue-dot.tistory.com/178 파이썬 머신러닝 입문 공부일지 3. 판다스 Pandas, DataFrame 관련 메소드 기능들 (1) 판다스Pandas 일반적으로 대부분의 데이터 세트는 2차원(행렬구조) 를 이루고 있습니다. (RDBMS : 관계형 데이터베이스 관리 시스템) 판다스는 R을 모티브로 만든 파이썬 라이브러리로 행과 열로 이 blue-dot.tistory.com index 객체 추출 데이터 프레임이나 시리즈에서 Index 객체만 추출하기 위해서는 DataFrame.index, Series.index ..

파이썬 머신러닝 입문 공부일지. 회귀 분석의 회귀란 무슨 뜻일까? [내부링크]

머신러닝을 공부하면서 '회귀분석' 이라는 말을 계속해서 보게 됩니다. 회귀분석이란 둘 이상의 변수 간의 관계를 보여주는 통계적인 방법입니다. 일반적으로 그래프로 표현되는데, 종속 변수와 독립 변수 간의 관계를 테스트 합니다. 비전공자였던 저로써는 남들 다 통계학의 꽃이라고 하는 회귀분석이 대체 무엇인지, 왜 '회귀' 라고 하는지 의아했었어요. 제가 아는 회귀라고 함은 돌아온다는 뜻이에요. (ex. 회귀하다, 로맨스 장르 회귀물 등등...) 그렇다면 회귀 분석이라고 한다면 어떤 것으로 되돌아간다는 뜻인데, 두 변수 간의 관계를 구하는 회귀 분석이 왜 그런 뜻을 가졌는지 도통 모르겠었어요. 그런데 이것은 통계학의 역사에 등장한 인물이 붙인 이름이라 그렇게 표시되었다고 합니다. '회귀' 라는 단어를 처음 붙여..

후회 없는 삶 이제부터라는 것을 마음 편안히 갖게 하소서 [내부링크]

입동의 시 임강빈 땀 흘린 만큼 거두게 하소서 손에 쥐게 하소서 들판엔 노적가리가 아직 남아 있습니다 주먹을 펴게 하소서 찬바람이 지나갑니다 뒤돌아보는 지혜를 주소서 살아 있다는 여유를 가르쳐주소서 떨리는 마음에 불을 지펴주소서 남은 해는 짧습니다 후회없는 삶 이제부터라는 것을 마음 편안히 갖게 하소서 나의 겨울은 항상 이 시로 시작해. 후회 없는 삶, 이제부터라는 것을. 마음 편안히 갖게 하소서.

사랑에 빠져서 정말 좋았던 건 세상 모든 순간들이 무언가 되고 있는 중이었다는 것 [내부링크]

사랑에 빠진 자전거 타고 너에게 가기 김선우 자전거 바퀴 돈다 바퀴 돌고 돌며 숨결 되고 있다 풀 되고 있다 너의 배꼽에서 흐르는 FM 되고 있다 실개천 되고 있다 버들구름 되고 있다 막 태어난 햇살 업고 자장가 불러주는 바람 되고 있다 초록빛 콩꼬투리 조약돌 되고 있다 바퀴 돌고 돌며 너에게 가는 길이다 무엇이 될지는 알 수 없지만 모두 무언가 되고 있는 중인 아침 부스러기 시간에서도 향기로운 밀전병 냄새가 난다 밀싹 냄새 함께 난다 기운차게 자전거 바퀴 돌린다 사랑이 아니면 이런 순간 없으리 안녕 지금 이 순간 너 잘 존재하길 바래 그다음 순간의 너도 잘 존재하길 바래 자전거 바퀴 돌리는 달리아꽃 빨강 꽃잎 흔들며 인사한다 다음 생에 코끼리 될 꿀벌 자기 몸속에서 말랑한 귀 두짝을 꺼낸다 방아깨비들의..

어느 날 네가 또 슬피 울 때, 네가 기억하기를 네가 나의 자랑이란 걸 [내부링크]

나의 자랑 이랑 김승일 넌 기억의 천재니까 기억할 수도 있겠지. 네가 그때 왜 울었는지. 콧물을 책상 위에 뚝뚝 흘리며, 막 태어난 것처럼 너는 울잖아. 분노에 떨면서 겁에 질려서. 일을 하고 살아야 한다는 것이, 네가 일을 할 줄 안다는 것이. 이상하게 생각되는 날이면, 세상은 자주 이상하고 아름다운 사투리 같고. 그래서 우리는 자주 웃는데. 그날 너는 우는 것을 선택하였지. 네가 사귀던 애는 문밖으로 나가버리고. 나는 방 안을 서성거리면 내가 네 남편이었으면 하고 바랐지. 뒤에서 안아도 놀라지 않게, 내 두 팔이 너를 안심시키지 못할 것을 다 알면서도 벽에는 네가 그린 그림들이 붙어 있고 바구니엔 네가 만든 천가방들이 수북하게 쌓여 있는 좁은 방 안에서, 네가 만든 노래들을 속으로 불러보면서. 세상에..

약한 불에서 오래오래 기억을 졸이면 얼마든 달콤해질 수 있다 [내부링크]

슈톨렌 안희연 "건강을 조심하라기에 몸에 좋다는 건 다 찾아 먹였는데 밖에 나가서 그렇게 죽어 올 줄 어떻게 알았겠니" 너는 빵을 먹으며 죽음을 이야기한다 입가에 잔뜩 설탕을 묻히고 맛있다는 말을 후렴구처럼 반복하며 사실은 압정 같은 기억, 찔리면 찔끔 피가 나는 그러나 아픈 기억이라고 해서 아프게만 말할 필요는 없다 퍼즐 한조각만큼의 무게로 죽음을 이야기할 수 있다 그런 퍼즐 조각을 수천수만개 가졌더라도 얼마든지 겨울을 사랑할 수 있다 너는 장갑도 없이 뛰쳐나가 신이 나서 눈사람을 만든다 손이 벌겋게 얼고 사람의 형상이 완성된 뒤에야 깨닫는다 네 그리움이 무엇을 만들었는지 보고 싶었다고 말하려다가 있는 힘껏 돌을 던지고 돌아오는 마음이 있다 아니야 나는 기다림을 사랑해 이름 모를 풀들이 무성하게 자라는..

마침내 네가 이르게 될 모든 끝의 시작을! [내부링크]

20년 후에 지에게 최승자 지금 네 눈빛이 닿으면 유리창은 숨을 쉰다 지금 네가 그린 파란 물고기는 하늘 물속에서 뛰놀고 풀밭에선 네 작은 종아리가 바람에 날아다니고 이상하지, 살아 있다는건 참 아슬아슬하게 아름다운 일이란다 빈 벌판에서 차갑고도 따스한 비를 맞고 있는것 같지 눈만뜨면 신기로운 것들이 네 눈의 수정체 속으로 헤엄쳐 들어오고 때로 너는 두 팔벌려 환한 빗물을 받으며 미소짓고....... 이윽고 너는 새로운 눈을 달고 세상으로 출근하리라 많은 사람들을 너는 만날것이고 많은 사람들이 네 눈물의 외줄기 길을 타고 떠나가리라 강물은 흘러가 다시 돌아오지 않고 너는 네 스스로 강을 이뤄 흘러가야만 한다 그러나 나의 몫은 이제 깊이깊이 가라앉는일, 봐라 저 많은 세월의 개떼들이 나를 향해 몰려 오잖니..

물에 젖는 건 싫어하지만 햇볕이 남아 있는 단어들은 아껴먹으려고 남겨 둔 사탕 같은 것 [내부링크]

사탕과 해변의 맛 서윤후 해변에 버려진 것 중엔 내가 가장 쓸모 있었다 버려진 사람들이 잃은 것을 대신해 다시 버려진 사람을 줍는 세계에서 우리의 수도는 어느 쪽이었을까 한 뼘의 파라솔이 그늘을 짓고 우리는 통째로 두고 간 유실물로 남겨져 하나의 관광지를 이룬다 파도의 디저트가 되네 하나밖에 모르는 맛으로 사탕처럼 둥글게 앉아 녹아 가는 연인들 철썩이는 파도가 핥아 가네 발가락부터 녹으며 조금씩 둘레를 잃어 가는 사랑이여 사랑한다는 말을 남발하던 연인들이 전투적으로 질투하고 비로소 세계는 달콤해지고 온화해지네 해변이라는 말을 좋아해 물에 젖는 건 싫어하지만 햇볕이 남아 있는 단어들은 아껴먹으려고 남겨 둔 사탕 같은 것 내가 먹어본 사탕 중엔 네가 제일 별로였어 너처럼이라는 직유가 가진 설탕과 소금 사이의..

그러므로 이제 이 눈과 코와 입과 귀를 막아 새로운 세상을 보게 하시길 [내부링크]

꽃잎, 꽃잎, 꽃잎 이장욱 무섭다 결국 그곳엔 아무도 없을 것이다 무섭다 마음이 무섭고 몸이 무섭고 싹 트고 잎 피고 언제나 저절로 흐드러지다가 바람 불어 지는 내 마음 속 꽃잎 꽃잎, 그대가 무섭다 나는 너무 오랫동안 하나의 육체로만 살아왔으므로 아주 정교하게 정렬해 있는 하나의 고요한 세상을 지니고 있으니, 무섭다 그러나 나는 나를 이끄는 매혹에 최선을 다해 복종하였으므로 내 고요한 세상에 피고 지는 아름다운 모반을 주시하였다 그대가 처연히 휘날려 내 몸과 마음이 어지러울 때 단 한번도 나는 봄 여름 가을 겨울 흘러가는 나의 사랑을 의심하지 않았으므로 기억을 만나면 기억을 죽이고 불안을 만나면 불안을 죽이고, 그러므로 이제 이 눈과 코와 입과 귀를 막아 새로운 세상을 보게 하시길 그대에게 익숙한 세상..

맨손이면 부드러워질 수 있을까 [내부링크]

한 사람이 있는 정오 안미옥 어항 속 물고기에게도 숨을 곳이 필요하다 우리에겐 낡은 소파가 필요하다 길고 긴 골목 끝에 사람들이 앉아 있었다 작고 빛나는 흰 돌을 잃어버린 것 같았다 나는 지나가려 했다 자신이 하는 말이 어떤 말인지도 모르는 사람이 진짜 같은 얼굴을 하고 있었다 반복이 우리를 자라게 할 수 있을까 진심을 들킬까봐 겁을 내면서 겁을 내는 것이 진심일까 걱정하면서 구름은 구부러지고 나무는 흘러간다 구하지 않아서 받지 못하는 것이라고 나는 구할 수도 없고 원할 수도 없었다 맨손이면 부드러워질 수 있을까 나는 더 어두워졌다 어리석은 촛대와 어리석은 고독 너와 동일한 마음을 갖게 해달라고 오래 기도했지만 나는 영영 나의 마음일 수밖에 없겠지 찌르는 것 휘어감기는 것 자기 뼈를 깎는 사람의 얼굴이 ..

파이썬 머신러닝 입문 실습. 사이킷런으로 캐글 타이타닉 생존자 예측하기 (2) [내부링크]

이전까지 전처리 과정과 데이터 탐색을 마쳤으므로 이번에는 데이터 가공을 해보겠습니다. 데이터 가공 1. Survived 속성 별도 분리 후 클래스 결정값 데이터 세트로 설정 (학습 데이터 생성) 원본 CSV 데이터를 다시 로딩한 뒤, 피처 데이터 세트와 레이블 데이터 세트 추출 생성된 데이터 세트에 transform_features() 함수로 일괄 데이터 가공합니다. titanic_df = pd.read_csv('./titanic_train.csv') # 재로딩 y_titanic_df = titanic_df['Survived'] # Survived 값만 별도로 y 값 지정 X_titanic_df= titanic_df.drop('Survived',axis=1) # 기존 칼럼 삭제 후 새 칼럼 생성 X_ti..

파이썬 머신러닝 입문 실습. 사이킷런으로 캐글 타이타닉 생존자 예측하기 (1) [내부링크]

캐글에서 제공하는 타이타닉 탑승자 명단 데이터를 기반으로 생존자 예측을 해보겠습니다. Titanic 생존자 예측 머신러닝 실습 실습 목적 : 사이킷런 사용 및 데이터 전처리와 학습과정에 대한 연습 실습 내용 : 타이타닉 호 침몰 사건 당시의 사망자와 생존자를 구분하는 요인 분석을 통해 승객의 생존 여부를 예측한다. 전처리 과정 시작 1. https://www.kaggle.com/c/titanic/data 에서 타이타닉 탑승자 데이터 명단 다운로드 후 해당 데이터에 대한 개략적인 설명 확인합니다. PassengerId : 각 승객의 고유 번호 Survived : 생존 여부(종속 변수) 0 = 사망 1 = 생존 Pclass : 객실 등급 - 승객의 사회적, 경제적 지위 1st = Upper 2nd = Mid..

파이썬 머신러닝 입문 공부일지 4. 판다스 Pandas, DataFrame 관련 메소드 기능들 (2) [내부링크]

Numpy, 리스트, 딕셔너리, DataFrame 상호 변환하기 데이터 프레임은 파이썬의 리스트, 딕셔너리, 넘파이의 ndarry (배열) 과 상호로 변환할 수 있습니다. 앞으로 우리가 사용할 사이킷런 이라는 기계학습 라이브러리 사용에 있어서 API가 DataFrame 을 인자로 입력받을 수 있지만, 기본적으로 넘파이 ndarray 를 사용하는 경우가 대부분 입니다. 그렇기 때문에 데이터 프레임과 넘파이 ndarray 의 상호 변환은 자주 발생하므로 숙지해둡시다. 넘파이 ndarray 와 리스트와 달리 데이터 프레임은 칼럼명을 가지고 있습니다. 변환 시에 칼럼명을 지정하지 않으면 자동으로 칼럼명을 할당합니다. 또한 데이터 프레임은 행과 열을 가지는 2차원 데이터이므로 2차원 이하만 데이터 프레임으로 변환..

파이썬 머신러닝 입문 공부일지 3. 판다스 Pandas, DataFrame 관련 메소드 기능들 (1) [내부링크]

판다스Pandas 일반적으로 대부분의 데이터 세트는 2차원(행렬구조) 를 이루고 있습니다. (RDBMS : 관계형 데이터베이스 관리 시스템) 판다스는 R을 모티브로 만든 파이썬 라이브러리로 행과 열로 이루어진 2차원 데이터를 가장 효율적으로 가공/처리할 수 있는 가장 인기 있는 라이브러리 입니다. 파이썬의 리스트, 컬렉션, 넘파이 등의 내부 데이터 뿐만 아니라 CSV 등의 파일을 쉽게 DafeFrame 으로 변경하여 데이터를 가공/분석하기 편리하게 만들어줍니다. DataFrame 판다스의 핵심 개체는 DataFrame데이터 프레임 입니다. 데이터 프레임은 여러 개의 행과 열로 이루어진 2차원 데이터를 담는 구조 입니다. 데이터 프레임은 중요한 객체인 Index와 유사한 Series 를 이해해야 합니다. ..

파이썬 머신러닝 입문 공부일지 2. Numpy 기본 함수 공부 (2) 넘파이 배열 인덱싱, 슬라이싱, 정렬과 선형대수 연산 [내부링크]

앞서 Numpy 넘파이의 기본 배열 함수에 대해서 알아보았습니다. 이번에는 선택자 함수인 인덱싱과 슬라이싱 그리고 정렬에 대한 것을 알아보겠습니다. Numpy의 선택함수 인덱싱, 슬라이싱 ndarray 인덱싱 몇 번째 index 멤버에 접근한다는 인덱싱Indexing을 Numpy에서도 사용할 수 있습니다. Numpy 배열의 indexing 의 종류는 다음과 같습니다. - 특정 데이터만 추출 : 리스트, 튜플 등에서의 인덱싱과 동일. 숫자를 잘못 쓰면 값에 오류가 납니다. - 슬라이싱Slicing : 리스트, 튜플에서의 슬라이싱과 동일. 숫자를 잘못 써도 오류가 나지는 않지만 결과는 기댓값과는 달라질 수 있습니다. - 팬시 인덱싱Fancy Indexing : 일정한 인덱싱 집합을 리스트 또는 배열 형태로 ..

파이썬 머신러닝 입문 공부일지 1. 머싱러닝의 시작 / Numpy 기본 함수 공부 (1) [내부링크]

오늘부터는 파이썬 머신러닝에 대한 공부를 시작합니다! 공부에 참고하는 책은 다음과 같습니다. http://www.yes24.com/Product/Goods/87044746?pid=123487&cosemkid=go15512575975554503&gclid=Cj0KCQiAnsqdBhCGARIsAAyjYjQKjmU0jrIOHD6QLjRxl_GPSDYDYspRtW6RLggUxWSKFcIkMNVRJIMaAiA8EALw_wcB 파이썬 머신러닝 완벽 가이드 - YES24 『파이썬 머신러닝 완벽 가이드』는 이론 위주의 머신러닝 책에서 탈피해 다양한 실전 예제를 직접 구현해 보면서 머신러닝을 체득할 수 있도록 만들었다. 캐글과 UCI 머신러닝 리포지토리에서 www.yes24.com 저자의 소스 코드 참고 깃허브 : ht..

장고 프로젝트 오류 ImportError: cannot import name 'url' from 'django.conf.urls' [내부링크]

또 다시 오류와의 전쟁 ^^ 우.. 해보자고... ImportError: cannot import name 'url' from 'django.conf.urls' 에러가 발생했다... 아무래도 django 버전의 문제인 것 같습니다. django의 4.0 버전은 url 함수를 없애서 지원하지 않는다고 해요.... 터미널에서 pip list 를 쳐보면 장고 버전이 4.0 일 경우가 9999...%... 본인의 경우 4.1.3 버전...^^ ㅠ 결국 다운 그레이드를 해보기로 결정합니다. pip uninstall django 다시 3.2버전으로 설치합니다.. pip install django==3.2 재설치까지 마치고... 설레이는 이마음은 뭘까 왠지 run을 누를 수가 없어.. 다시금 서버를 실행해봅니다. p..

장고 프로젝트 오류 ModuleNotFoundError: No module named 'crispy_forms' [내부링크]

학원의 커리큘럼에 따라 며칠간 백엔드 공부를 한참 하던 와중, 갑작스럽게 앞서 작업했던 장고 프로젝트를 완성하라는 이상한 커리큘럼에 따라 다시금 장고 프로젝트를 열었습니다. (우리 학원 커리큘럼 정말 이상해요) 장고 프로젝트를 진행하면서 무수한 오류들을 마주하는 고로, 이것을 지금이라도 정리하지 않으면 미래의 내가 과거의 내게 욕을 한 무더기 정도는 하겠다 싶어서 (장수의 비결..) 오류를 하나씩 정리해보고자 합니다. 분명히 오류를 다 처리하고 사이트까지 정상적으로 업로드 한 뒤에 도메인까지 연결한 나의 사이트. 오랜만에 cmder 에서 python manage.py runserver 로 서버를 연결해 보았더니. 그럼 그렇지 ......... ,, 쉽게 될리가 없지 ,, 분명 무언가 잘못 되었었는데 불법..

노드 js 입문 공부 일지 8. 웹소켓 (실시간 데이터 교환) [내부링크]

우리가 주소창에서 볼 수 있는 HTTP(Hypertext Transfer Protocol) 는 인터넷으로 데이터를 주고 받는 규약(protocol) 입니다. 즉, HTML을 전송하는 통신 프로토콜을 의미하는 것입니다. HTTP 는 요청이 있을 때만 반응하는 타입으로 요청이 있을 때만 응답을 주는 방식입니다. 요청과 응답 이후에는 연결이 해제됩니다. (Stateless 정적인 속성) 이것과 다른 방식으로 서로 연결된 상태를 유지하는 프로토콜이 있습니다. 바로 웹 소켓이에요. 웹소켓 웹소켓은 서로가 연결된 상태를 유지합니다. 서로간의 연결을 기반으로 하며, 일정량을 균일하게 주고 받는 것이 아니라 불규칙적인 정보교환이 가능합니다. 즉, 데이터 송수신을 동시에 처리할 수 있고, 클라이언트와 서버가 서로에게 원..

노드 js 입문 공부 일지 7. express 뷰 엔진, PUG 설치하기 [내부링크]

뷰 엔진은 express 어플리케이션이 사용자에게 페이지를 줄 수 있도록 도와주는 도구입니다. 뷰 엔진은 정적인 HTML 인 문서와 달리 자바스크립트 데이터를 문서 안에 포함하는 형태로 동작합니다. 즉, 뷰 엔진은 지금까지 페이지 하나로 확인하던 정적 엔진과 다르게 동적 템플릿 엔진입니다. 우선 정적 메소드부터 확인해볼게요. express 의 sendFile(x) 메소드를 사용하면 정적 문서를 클라이언트에게 제공할 수 있습니다. 더불어 정적 문서의 경로를 지정할 수도 있습니다. 정적static 문서라는 것은 지금까지 우리가 만들었던 것중에 html과 css로 만들었던 단편적인 페이지를 생각할 수 있습니다. 요청이 있고, 응답을 할 때마다 새로운 정적 페이지를 링크해서 옮겨가는 형식이었어요. // 정적 경..

노드 js 입문 공부 일지 6. 라우팅(routing) [내부링크]

라우팅(routing)은 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정입니다. 즉, 경로에 따라 적절한 데이터를 전송할 수 있도록 하는 것이 라우팅이에요. 아래는 웹에서 라우팅을 사용한 예입니다. 네이버 금융 국내증시 : https://finance.naver.com/sise/ 네이버 금융 해외증시 : https://finance.naver.com/world/ 같은 서버(https://finance.naver.com) 에 위치하고 있으나 / 뒤에 있는 키워드에 따라서 주어지는 최종적인 정보가 달라집니다. 라우팅은 이렇게 경로에 따라서 주어지는 주소를 다르게 하는 것을 말합니다. / 뒤에 붙는 키워드를 루트rout 라고 합니다. express 를 사용하면 라우팅을 관리할 수 있습..

노드 js 입문 공부 일지 5. post 요청하기 (nodemon 실행하기) [내부링크]

지금까지 express 가 가지고 있는 기능 중 get 메소드로 요청을 받았을 때를 정의해보았으니, 이번에는 응답에 대한 동작을 알아보겠습니다. pakage.json 생성 우선 동일한 방법으로 pakage.json 을 만들기 위해 app01 폴더를 만듭니다. npm init 으로 노드 프로젝트 폴더 안에 pakage.json 을 생성해주세요. pakage.json 을 생성하는 방법에 대해서는 이전 포스팅을 참고해주세요. https://blue-dot.tistory.com/166 노드 js 입문 공부 일지 3. 첫 서버 만들기 http , NPM & express 노드 기반의 서버 노드를 이용하면 다양한 자바스크립트 어플리케이션을 개발할 수 있습니다. 그 중에서도 노드는 서버를 개발하는 데 가장 많이 사용..

클론 코딩 1. HTML / CSS 로 카카오톡 화면 구현하기 (1) 디자인 구상하기 [내부링크]

HTML 과 CSS로 카카오톡 메신저 화면과 유사한 톡 메신저 화면을 구성하는 것을 진행해보고자 합니다. 자바 스크립트를 사용하지 않고, 그저 화면 디자인과 구성만 하는 것이니 간단하게 따라할 수 있어요. 우선 이번에 만들 화면의 샘플 홈페이지는 다음과 같습니다. (1) 로그인 접속 화면 (2) 친구 목록 화면 (3) 채팅 목록 화면 (4) 채팅창 화면 전체적인 윤곽 잡기 우선 세부적인 디자인을 하기 전 전체적인 윤곽을 잡아줍니다. 생성해야 할 폴더 생성해야 할 html 페이지 components - 공통(재사용) css pages - 각 페이지의 css index, 채팅창, 친구목록, 채팅목록 각 html에 대한 css 파일을 생성해줍니다. html의 명과 동일한 이름의 css 파일로 만들어주세요...

노드 js 입문 공부 일지 4. get 메소드로 요청 받기 (nodemon 사용하기) [내부링크]

이전에 처음으로 서버를 만드는 것을 실행해보았습니다. https://blue-dot.tistory.com/166 노드 js 입문 공부 일지 3. 첫 서버 만들기 http , NPM & express 노드 기반의 서버 노드를 이용하면 다양한 자바스크립트 어플리케이션을 개발할 수 있습니다. 그 중에서도 노드는 서버를 개발하는 데 가장 많이 사용됩니다. 서버는 네트워크를 통해 클라이언 blue-dot.tistory.com 이제 두 번째 서버를 만들어 볼 거예요. 첫 번째 서버를 만들었던 과정 그대로 진행하여 아래의 네 개의 파일들이 생성이 되었습니다. 저는 두 번째 서버라고 이름 지었어요. 처음 서버를 만들었을 때와 같이 app.js 에 다음과 같이 태그를 입력합니다. const express = requir..

노드 js 입문 공부 일지 3. 첫 서버 만들기 http , NPM & express [내부링크]

노드 기반의 서버 노드를 이용하면 다양한 자바스크립트 어플리케이션을 개발할 수 있습니다. 그 중에서도 노드는 서버를 개발하는 데 가장 많이 사용됩니다. 서버는 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램을 말합니다. 클라이언트란 서버가 제공하는 정보나 서비스를 제공받는 주체로, 정보나 서비스가 필요한 클라이언트는 서버에게 요청을 보냅니다. 클라이언트 클라이언트가 요청을 하면 서버는 그에 대한 응답으로 정보를 제공합니다. 클라이언트가 어떤 요청을 보내는가에 따라 응답은 달라집니다. 로컬호스트와 포트번호 IP는 전 세계 모든 컴퓨터에 주어지는 네트워크 상에서의 식별자입니다. 로컬호스트(localhost)란, 컴퓨터 네트워크에서 ‘자신의 컴퓨터’를 의미하는 호스트명입니다. 로컬호..

노드 js 입문 공부 일지 2. 노드 실행하는 방법 [내부링크]

REPL REPL은 Read(읽기) , Eval(평가하기) , Print(출력하기) , Loop(반복하기) 라는 의미로, 대화형 테스트 콘솔을 제공합니다. 터미널에서 node 명령어를 실행하여 REPL을 실행시킬 수 있습니다. 노드가 제공하는 대화형 셸이라고 생각하시면 됩니다. cmd -> 명령 프롬프트 -> node 입력 자바스크립트 파일 실행하기 자바스크립트 파일을 만들고 해당 디렉토리에서 node 명령어를 실행합니다. 모듈화하기 모듈화란, 코드를 기능 또는 규모에 따라 분할하는 것을 의미합니다. 모듈이란 하나의 자바스크립트 파일을 의미합니다. 노드에서는 모듈 내보내기/불러오기를 위해 다음 두 가지를 사용할 수 있습니다. require(모듈) : 모듈에서 내보낸(exports) 대상을 반환한다. ..

노드 js 입문 공부 일지 1. Node.js 노드 설치하고 예제 실행하기 [내부링크]

Node.js Node.js(이하 노드)는 V8 자바스크립트 엔진으로 빌드된 이벤트 기반 자바스크립트 런타임(runtime)입니다. 런타임은 쉽게 말하면 실행환경이라는 뜻이에요. 즉, V8 엔진으로 만든 자바스크립트 실행 환경입니다. V8 자바스크립트 엔진은 크롬에서 사용하는 엔진과 같습니다. 노드는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용할 수 있는 소프트웨어 플랫폼입니다. 지금까지 자바스크립트를 위해 필요한 환경은 웹 브라우저였습니다. 하지만 노드.js 는 웹 브라우저가 아닌 환경에서도 실행할 수 있는 것입니다. 대표적인 차이점은 웹 브라우저에 있는 표준 API (document 등) 입니다. 서버 사이드 - 데이터를 제공하기 위한 처리입니다. 네트워크의 한 방식인 클라이언트..

자바 스크립트(js) 입문 공부 20. 클래스 class [내부링크]

클래스 class 자바스크립트에서 객체를 만들면 프로토타입이 자동으로 상속이 됩니다. (객체가 가져야할 기본적인 사항에 대한 프로토타입) 클래스란 오브젝트를 생성하기 위한 설계도 입니다. 기존 자바스크립트의 프로토 타입을 대체할 수 있으며, 클래스를 통해 정의한 오브젝트는 Array, Date 등 내장 객체와 동일하게 취급할 수 있습니다. 클래스 내부에 정의된 함수는, 객체의 멤버함수와 마찬가지로 메소드라 부릅니다. new 연산자에 의해 실제 사용 가능한 객체를 생성하며, 생성된 객체를 통해 메소드를 호출할 수 있습니다. 생성된 객체를 통해 메소드를 호출할 수 있는 메소드 = 인스턴스 메소드 class Member{ getName(){ return "이름"; } } let memberObj = new M..

자바 스크립트(js) 입문 공부 19. 프로미스promise [내부링크]

프로미스란? new promise 를 하면 프로미스 객체를 만들 수 있습니다. 프로미스 객체는 비동기 작업에 대한 약속입니다. (작업 이후 발생할 완료 또는 실패, 그 결과값) 비동기 작업이란 언제 끝날지 알 수 없는 독립적인 작업입니다. 작업의 상태가 시작, 진행중, 완료인 것과 무관하게 프로그램은 계속해서 실행이 됩니다. 프로미스 생성 방법 프로미스 객체를 생성하면서 콜백함수처럼 전달합니다. 다음과 같이 비동기 작업을 수행하는 함수가 있을 때, 이를 promise 객체(약속)를 생성하면서 인자로 전달합니다. Promise 객체에 전달된 함수는 두 가지 콜백 함수를 인자로 받습니다. 하나는 작업 성공 시 실행되는 함수(resolve), 하나는 실패 시 함수(reject) 입니다. 어디까지나 매개변수이기..

자바 스크립트(js) 입문 공부 18. ECMAScript, ES6 이후 개선된 문법들 (화살표 함수, 디폴트 파라미터, 객체 구조 분해) [내부링크]

ECMAScript ECMAScript(ES)는 범용 목적의 스크립트 언어 표준을 뜻합니다. ‘스크립트 언어를 사용할 때는 이렇게 사용하세요’라고 재정의를 해서 자바 스크립트를 사용하는 문법을 정의하는 단체라고 보시면 됩니다. ECMAScript는 스크립트 언어가 준수해야 하는 규칙, 세부 사항 및 지침을 제공합니다. 그리고 자바스크립트(JavaScript)는 ECMAScript 명세를 준수하는 스크립트 언어입니다. ECMAScript 버전 ECMAScript는 자바스크립트의 표준을 제정하기 위해 1997년 처음 등장했으며, 그 후로 꾸준히 새로운 버전의 ECMAScript 명세가 발표되었습니다. 초기에는 ES1, ES2, ES3와 같이 숫자를 올려가며 버전을 표기했지만, 2015년 등장한 여섯 번째 버..

자바 스크립트(js) 입문 공부 17. 배열 메소드 (2) (콜백함수를 사용하는 대표 메소드) [내부링크]

배열에는 여러 메소드들이 있고, 그 중 자기 자신을 매개변수로 삼는 콜백함수를 사용하는 메소드들이 있습니다. 이번에는 콜백함수를 사용하는 배열 메소드들을 하나씩 살펴볼게요. 메소드 기능 forEach 배열의 각 요소에 대해 콜백을 호출 map 배열의 각 요소에 대해 콜백을 호출한 결과를 모아 새로운 배열을 반환 filter 배열의 각 요소에 대해 콜백을 호출한 결과 true 를 반환하는 모든 요소를 모아 새로운 배열 반환 forEach() 매개변수는 한 번 호출될 때마다 요소 하나씩을 전달하고, 하나씩 출력하는 기능이 있습니다. forEach 의 경우 매개변수를 하나 더 가질 때마다 인덱스 번호를 같이 가집니다. 매개 변수가 하나 있으면 요소를 하나 전달하는 것, 매개 변수가 하나 더 있으면 인덱스 번호..

자바 스크립트(js) 입문 공부 16. JSON 제이슨, localStorage로컬스토리지 [내부링크]

JSON은 자바스크립트 객체 표기법(JavaScript Object Notation)을 뜻하며, 이는 자바스크립트 객체를 문자열로 표현하는 데이터 포맷입니다. 즉, 자바스크립트에서 사용하는 표기법을 다른 환경이나 다른 프로그래밍 언어에서도 사용할 수 있는 형태(문자열)로 변환하기 위해 사용합니다. 문자열은 거의 모든 현대 프로그래밍 언어에서 사용할 수 있기 때문에 다른 프로그래밍 언어에서도 호환할 수 있기 때문입니다. JSON 표현법 JSON 형식은 자바스클비트 객체 리터럴 표기법에 기반을 두고 있습니다. 객체 키와 문자열은 따옴키로 묶습니다. 객체 리터럴의 모양 객체 리터럴의 모양 JSON 표기법 const todo = { todoContent : "공부하기", todoDone : false, todo..

자바 스크립트(js) 입문 공부 15. 객체 리터럴 , 스프레드 연산자 [내부링크]

객체 리터럴 객체를 구성하는 속성(값이나 기능, 객체의 상태를 나타내는 값. 프로퍼티 property)의 이름과 실제 값을 한 쌍으로 묶어 표현하는 ‘객체 리터럴’을 이용하면 객체를 생성할 수 있습니다. 이때 속성 프로퍼티의 이름을 키(key), 속성의 실제 값을 밸류(value)라고 합니다. 마치 파이썬의 바이너리를 연상시키는 형태입니다. 객체 리터럴의 형식은 아래와 같습니다. const cat = { name : "쿠키", age : 5 }; 여기에서 name과 age는 key, “쿠키" 와 5는 value에 속합니다. 객체 리터럴의 중괄호는 코드 블록을 의미하는 것이 아니라 값으로 불리기 때문에 닫는 괄호 뒤에는 세미콜론을 붙여줍니다. 객체 리터럴의 value가 되면 사용할 수 있는 모든 값이 되므..

자바 스크립트(js) 입문 공부 14. Math, 로또 추첨 번호 만들기 [내부링크]

공부 출처 : http://www.tcpschool.com/javascript/js_standard_math, 유노코딩 youtube 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com Math는 수와 관련된 속성과 메소드를 가진 내장 객체입니다. 대부분의 Math 메소드는 각 브라우저마다 다른 결과값을 얻을 수 있으므로, 정확한 값이 필요한 경우에는 Math를 사용하지 않는 것이 좋습니다. 생성자가 아니라 메소드, 속성으로 사용하므로 다음 문법으로 작성합니다. Math.메소드() Math.속성 Math 의 메소드 속성들은 다음과 같습니다. 이 이외에도 Math.min(), Math.max() 등 Math의 메소드는 무척..

자바 스크립트(js) 입문 공부 13. 배열 메소드 (1) [내부링크]

배열 배열은 여러 개의 데이터를 보관하는 ‘주머니’ 역할을 하는 객체입니다. 이전까지 변수(또는 상수)에는 데이터를 하나씩만 대입할 수 있었지만, 배열을 사용하면 여러 개의 데이터를 대입할 수 있습니다. 배열을 만드는 방법 1. 배열 리터럴 대괄호로 묶어서 표현하고 각 요소들을 쉼표로 구분합니다. 2. Array 생성자로 생성 배열을 만드는데 사용하는 기본 내장 생성자 new 로 생성합니다. 생성 시에 배열 안에서 문자열, 정수 등이 섞여 있어도 상관 없습니다. (자료를 사용할 때에는 어렵지만요.) 배열의 특징 배열에 포함된 값 하나하나를 ‘배열 요소’라고 합니다. 각 배열 요소는 왼쪽부터 순서(번호)가 매겨지며, 이를 ‘인덱스 번호’라 합니다. 인덱스 번호는 0부터 시작합니다. 배열 요소 수는 원하는 ..

자바 스크립트(js) 입문 공부 12. Element.classList [내부링크]

classList에 대한 공부 출처 : https://sisiblog.tistory.com/234 [javascript] 자바스크립트 classList 사용 방법 참고: https://www.javascripttutorial.net/javascript-dom/javascript-classlist/ 이 튜토리얼에서는 javascript classList 속성을 사용하여 element의 class를 사용하는 방법을 보입니다. classList는 element의 읽기전용 속성으로 sisiblog.tistory.com Element.classList Element.classList는 element의 읽기전용 속성으로 css class의 현재 값을 반환합니다. classList는 DOMTokenList 객체로 e..

자바 복습 Test 공부(정보은닉, 오버라이딩, 컬렉션프레임워크, 상한제한, 하한제한) [내부링크]

1. 정보 은닉, 캡슐화, 상속, 다형성 (정의만) - 정보은닉 : 접근 제어자는 정보 은닉을 위한 키워드 public : 변수에 대한 모든 접근 가능 private : 클래스 내부에서만 사용되고, 외부에서 접근 불가 protected : 상속받은 하위 클래스에게만 접근을 허용 default : 같은 패키지, 같은 클래스 내에서 참조할 수 있는 기본접근 제어자 - 캡슐화 : 데이터와 알고리즘을 하나로 묶음. 캡슐화의 가장 큰 장점은 저보 은닉. 관련이 있는 변수와 함수를 하나의 클래스로 묶고 외부에서 접근하지 못하도록 은닉. 외부에서 특정 객체의 데이터나 함수의 직접적인 접근을 막아서 변경을 못하도록 한다. 유지보수나 확장 시 오류의 범위를 최소화 할 수 있다. 데이터가 변경되어도 다른 객체에게 영향을 ..

자바 스크립트(js) 입문 공부 11. 타이머 기능, 자바스크립트로 디지털 시계 만들기 [내부링크]

이번에는 자바스크립트의 타이머 관련 기능들에 대해서 알아보겠습니다. 타이머 기능 setTimeout window 의 기본 함수 중 setTimeout 함수가 있습니다. 이것은 정해진 시간이 지나고 나면 주어진 함수를 진행해주는 타이머 메소드입니다. setTimeout(실행할함수, ms단위의시간) (ms 단위의 시간은 1000ms 일 때 1s초 가 지나는 것입니다. ) 이렇게 함수에다가 인자를 전달하는 것 콜백함수라고 합니다. setTimeout은 콜백함수로 실행할 함수를 하나 받습니다. setTimeout(function(){ console.log("자, 이제 시작이야.") }, 1000) 타이머 기능으로 기능을 수행하는 함수를 알아보았으니, 이번에는 시간 간격에 따라 실행하는 함수를 알아볼게요. set..

자바 스크립트(js) 입문 공부 10. 생성자, 기본생성자(Date), 시간의 표시 [내부링크]

생성자 생성자란 객체를 만들기 위한 함수를 의미합니다. 자바 스크립트에는 두 가지 유형의 생성자가 있습니다. 1. 일반 함수를 생성자로 사용하기 (직접 객체를 반환) 2. 클래스 내부에 생성자를 포함시켜 사용하기 (return 문이 없어도 새로운 객체를 반환) function sayHello(){ // 일반 함수를 생성자로 사용하기 console.log("Hello!") } function Dog(){//클래스 내부에 생성자를 포함시켜 사용하기 console.log("멍멍!") } 두 가지의 함수에서는 차이가 있습니다. 하나는 콘솔에 출력을 하기 위한 것이고, 하나는 Dog 라고 하는 새로운 객체를 만들기 위해서 만든 함수예요. function Dog(){ console.log("멍멍!") } let d..

자바 스크립트(js) 입문 공부 9. createElement & appendChild, value 입력한 값 불러오기 [내부링크]

document.createElement 우리는 랜더링의 중간 과정 중 DOM 단계에서 document 을 통해 개체에 접근할 수 있습니다. document의 createElement 메소드는 지정된 이름의 HTML 요소를 만들어 반환해 줍니다. 상기 코드로 HTML 에는 태그가 생성이 됩니다. 이 기능을 활용하면 리스트를 작성하는 것도 가능합니다. 하지만 이것은 화면에서 반환하는 것이 아니라 DOM 단계에서 반환하기 때문에 화면에 추가되지 않습니다. 화면에 추가하기 위해서는 그 다음으로 appendChild 메소드를 사용해야 합니다. appendChild appendChild 메소드는 DOM 내 개별 요소(‘노드’라고도 함)에 자식 요소를 추가할 때 사용하는 메소드입니다. appendChild 를 해줌..

[경향신문 2022년 신춘문예 당선작 소설부문] 현관은 수국 뒤에 있다 - 김채원 [내부링크]

https://www.khan.co.kr/culture/culture-general/article/202112312044005 [2022 경향 신춘문예]소설부문 당선작 - 현관은 수국 뒤에 있다 몹시 무더운 아침 무렵, 동우와 석용은 햇빛을 피해 자양동 거리의 지하도를 따라 걷다가 자판... www.khan.co.kr 더보기 몹시 무더운 아침 무렵, 동우와 석용은 햇빛을 피해 자양동 거리의 지하도를 따라 걷다가 자판기 사진을 찍는 기계를 보았다. 사진 찍을래? 석용이 물었다. 아니. 동우가 대답했다. 두 사람은 자판기 사진을 찍는 기계에 들어가 자판기 사진을 찍었다. 플래시가 터지는 기계가 아니었는데도 어째서인지 얼굴이 전부 하얗게 뭉개져 있어 두 사람은 사진을 오래 들여다볼 것도 없이 각자 주머니에 넣..

[문화일보 2022년 신춘문예 당선작 문화평론부문] 감정의 연금술과 만짐의 기술(技術/記述) : 김초엽, 천선란, 정세랑의 SF소설을 중심으로 - 전청림 [내부링크]

http://www.munhwa.com/news/view.html?no=2022010301033312000001 감정의 연금술과 만짐의 기술(技術/記述) : 김초엽, 천선란, 정세랑의 SF소설을 중심으로 - 전청림 문학평론1. 감정의 유물론과 ‘만짐’의 망탈리테감정에도 ‘몸’이 있다. 물성이 있고, 두툼하고, 만져진다. 만.. www.munhwa.com 더보기 1. 감정의 유물론과 ‘만짐’의 망탈리테 감정에도 ‘몸’이 있다. 물성이 있고, 두툼하고, 만져진다. 만져지기 때문에 만짐이 있고, 만짐이 있기 때문에 만져짐이 있다. 다소 선문답스러운 이 ‘몸’의 정체화가 중요한 이유는, 감정의 물성이라는 ‘몸’의 개념으로부터 능동과 수동의 구분이, 주체와 타자의 구분이 사라지기 때문이다. 이때 비로소 감정이..

[문화일보 2022년 신춘문예 당선작 동화부문] 농구의 신 - 최정희 [내부링크]

http://www.munhwa.com/news/view.html?no=2022010301033112000001 농구의 신 - 최정희 동화골대 아래에서 민우가 손을 흔드는 게 보였다. 나는 공을 달라는 민우의 신호를 무시하고 그대로 슛을.. www.munhwa.com 더보기 골대 아래에서 민우가 손을 흔드는 게 보였다. 나는 공을 달라는 민우의 신호를 무시하고 그대로 슛을 했다. 림을 맞고 나온 공이 맥없이 떨어졌다. “야, 나한테 줬어야지.” 민우가 나를 내려다보며 화를 냈다. 나는 민우를 올려다보며 소리를 질렀다. “내 맘이다. 아야!” 감독님이 내 머리에 알밤을 먹였다. “신우현, 네 위치를 지켜. 득점 욕심부리지 말고.” 억울해서 눈물이 핑 돌았다. 하지만 이를 악물고 참았다. 민우가 학교에 ..

자바 스크립트(js) 입문 공부 8. 이벤트 event, addEventListener [내부링크]

이벤트란? 사용 중이거나 프로그래밍 중인 시스템 내에서 일어나는 사건’을 뜻합니다. 예를 들어 웹에서 발생하는 이벤트란 가장 많이 사용하는 키보드, 마우스, HTML DOM, Window 객체 등을 처리하는 이벤트가 매우 다양하게 제공되고 있습니다. ex) 웹페이지 사용자가 버튼을 클릭했다, 클릭 이벤트! 웹페이지 사용자가 키보드를 눌렀다, 키다운 이벤트! 웹페이지 사용자가 입력 폼의 내용을 제출했다, 제출 이벤트! 등등... 이벤트 사용에 대한 예를 들어보겠습니다. 웹 사용자가 버튼(button) 요소를 클릭 했을 때, alert 다이얼로그 박스를 띄워 환영의 메시지를 보여주고 싶다면 이것 클릭 이벤트로 작성할 수 있습니다. push const handleClick = function(){ window..

자바 스크립트(js) 입문 공부 7. 함수 선언식과 함수 표현식, 함수의 호출 [내부링크]

함수란? 함수는 ‘호출될 수 있는 코드 조각’입니다. 변수를 선언하고 데이터를 대입하면 변수의 이름을 데이터 대신 사용할 수 있는 것처럼, 함수를 선언하면 함수의 이름을 코드 조각 대신 사용할 수 있습니다. 함수 만드는 방법 함수를 만드는 두 가지 방법이 있습니다. 1. 함수 선언식 2. 함수 표현식 위 방법들을 차례대로 알아볼게요. 함수 선언식 함수 선언식은 다음과 같은 형태를 가집니다. function 을 사용하면 선언과 같은 의미가 됩니다. 선언 이후에 함수명은 중괄호 안의 기능 대신 사용될 수 있습니다. function sayHello(){ console.log("안녕!") } sayHello() 함수 표현식 함수 표현식은 다음과 같은 형태를 가집니다. 즉, 이름 없는 선언식에 나중에 이름을 붙여..

[문화일보 2022년 신춘문예 당선작 시부문] 상자 놀이 - 김보나 [내부링크]

http://www.munhwa.com/news/view.html?no=2022010301032712000003 상자 놀이 - 김보나 시내 방엔 뜯지 않은 택배가여러 개 있다심심해지면상자를 하나씩 열어 본다오래 기다린 상자는갑자기 쏟.. www.munhwa.com 상자 놀이, 김보나 내 방엔 뜯지 않은 택배가 여러 개 있다 심심해지면 상자를 하나씩 열어 본다 오래 기다린 상자는 갑자기 쏟아지는 풍경에 깜짝 놀라거나 눈을 떴다고 생각할지도 모른다 그건 착각이야 세게는 누군가 눈을 뜨기 전에 먼저 빛으로 눈꺼풀을 틀어막지 나는 상자가 간직한 것을 꺼내며 즐거워한다 울 니트의 시절은 지났고 이 세제는 필요하다 새로 산 화분을 꺼내 덩굴을 옮겨 심으면 내 손은 순식간에 흙투성이가 된다 그래도 돼 뮤렌베키아 ..

자바 스크립트(js) 입문 공부 6. 조건문, 반복문 while [내부링크]

조건문의 요소 조건문을 구성하는 세 가지 요소 : 초기식, 조건식, 반복식 입니다. 1. 초기식 : 반복 조건의 초기화 작업 2. 조건식 : 불리언을 반환하거나 불리언으로 해석될 수 있는 표현식 3. 반복식 : 반복이 한 번 끝날 때마다 실행될 작업 반복문은 비슷하거나 동일한 구문을 반복해서 수행할 수 있는 구문입니다. 대표적인 반복문은 다음 두 가지이며, 두 반복문은 구조 및 동작방식에서 차이가 있습니다. while문 for문 반복문 while문 먼저 while문을 확인해봅니다. 키워드 while을 이용해 만드는 구문 while문은 ‘주어진 조건이 참일 동안에 구문을 반복하는’ 반복문입니다. while문의 기본 형태는 다음과 같습니다. while(조건){ // 조건이 true 일 동안에 반복해서..

자바 스크립트(js) 입문 공부 5. 비교 연산, 조건문 if문 , if~ else 문 [내부링크]

자바스크립트는 주어진 두 항을 비교할 수 있는 ‘비교 연산자’를 제공합니다. 자바스크립트에서는 대소 비교와 등가 비교 두 가지의 유형을 볼 수 있습니다. 대소 비교 비교 연산식은 언제나 boolean 데이터를 반환합니다. 크냐 작냐를 비교하는 대소 비교, 같냐 다르냐를 비교하는 등가 비교는 모두 하나의 질문이며, 질문에 대한 답이 참(true) 또는 거짓(false)입니다. 예를 들어 3이 5보다 작은지 -> true 6과 6이 다른지 -> false 등가 비교 등가 비교는 다음 네 가지 연산자를 사용해 처리할 수 있습니다. 등호(이퀄 사인, =) 하나는 대입연산자이므로, 기호 개수를 잘 확인해야 합니다. 등가 비교를 할 때, 등호(=)의 개수에 따라 비교 규칙에 차이를 보입니다. == 는 ‘추상적(ab..

[문화일보 2022년 신춘문예 당선작 소설부문] 퍼레이드를 기다리는 시간 - 유영은 [내부링크]

http://www.munhwa.com/news/view.html?no=2022010301032812000001 퍼레이드를 기다리는 시간 - 유영은 단편소설주말에 디즈니랜드의 퍼레이드에서 조안의 영혼을 본 것 같다고 말했더니, 엄마가 너는 거기까지.. www.munhwa.com 더보기 주말에 디즈니랜드의 퍼레이드에서 조안의 영혼을 본 것 같다고 말했더니, 엄마가 너는 거기까지 가서 술을 얼마나 퍼마신 거냐고 물었다. 미키 귀가 달린 귀여운 컵에 생맥주를 팔길래 딱 한 잔만 마셨다고 하니 주정뱅이 말은 아무도 믿지 않는다는 핀잔이 돌아왔다. 너희 언니가 리지랑 있을 때는 절대 마시지 말라고 하지 않았니? 언니가 리지랑 있을 때만은 하지 말아 달라고 당부한 사항은 음주 외에도 많았다. 욕하지 마라, 에이..

자바 스크립트(js) 입문 공부 4. DOM(Document Object Model), textContent [내부링크]

자바 스크립트의 출력 자바스크립트는 여러 방법을 통해 결과물을 HTML 페이지에 출력할 수 있습니다. 자바스크립트에서 사용할 수 있는 출력 방법은 다음과 같습니다. 1. window.alert() 메소드 window alert() 메소드는 자바스크립트에서 가장 간단하게 데이터를 출력할 수 있는 방법 입니다. window.alert() 메소드는 브라우저와는 별도의 대화 상자를 띄워 사용자에게 데이터를 전달해 줍니다. alert() 메소드는 콘솔을 학습할 때 같이 확인했었습니다. https://blue-dot.tistory.com/137 자바 스크립트(js) 입문 공부 1. 자바 스크립트, 콘솔이란? 자바 스크립트(js)란? 자바 스크립트는 로직을 구현할 수 있는 프로그래밍 언어입니다. 자바 스크립트는 서버..

자바 스크립트(js) 입문 공부 3. 연산, null, undefined, boolean [내부링크]

연산이란 ‘식이 나타낸 일정한 규칙에 따라 계산함’을 뜻합니다. 사용자는 자바스크립트 코드를 통해 연산을 처리하는 식을 만들 수 있고, 여기에 사용하는 기호를 ‘연산자’라고 합니다. 기존에 자바 스크립트 공부 시 작성한 내용을 참고하면 좋을 것 같습니다. https://blue-dot.tistory.com/43 자바 기초 공부 일지 6. 기본 연산자 산술 연산자 사칙연산을 다루는 연산자로, 두 개의 피연산자를 가지는 이항 연산자입니다. 우선순위대로 먼저 적용을 하고 그 뒤에 결합방향대로 연산을 합니다. 결합방향 : 어느 방향으로 blue-dot.tistory.com 여기에서 사용해 볼 연산(과 연산자)은 두 가지 입니다. 바로 산술 연산 , 대입 연산입니다. 산술연산 산술 연산은 일반 사칙 연산과 유..

자바 스크립트(js) 입문 공부 2. 변수 let, 상수 const, 템플릿 리터럴 Template Literals [내부링크]

변수 데이터에 붙이는 이름표이며, 변수를 이용하면 이름표를 붙여 둔 데이터를 기억해두었다가 필요할 때마다 재사용할 수 있습니다. 변수 만드는 방법은 다음과 같습니다. let 변수 이름 = 데이터; 키워드 let은 변수를 만들겠다는 의미로 사용 됩니다. 변수가 생성되고 나면 변수를 지정된 데이터 대신에 사용할 수 있게 됩니다. 이렇게 변수를 만드는 작업을 '변수의 선언' 이라고 부릅니다. 만들어진 변수를 첫 데이터에 지정하는 작업을 '변수의 초기화' 라고 합니다. 두 과정은 동시에 진행하거나 따로 진행할 수 있습니다. let 변수 이름; // 변수 선언 변수이름 = 데이터; // 변수 초기화 변수는 데이터를 기억하기 위해 사용하는데, 한 번에 하나의 데이터만 기억할 수 있으며 기억하고 있는 값을 바꿔가며 ..

자바 스크립트(js) 입문 공부 1. 자바 스크립트, 콘솔이란? [내부링크]

자바 스크립트(js)란? 자바 스크립트는 로직을 구현할 수 있는 프로그래밍 언어입니다. 자바 스크립트는 서버 개발, 어플리케이션 개발 등 다양한 목적을 위해 사용할 수 있지만 주된 목적은 웹 개발(인터넷을 통해 서비스되는 웹 사이트를 개발하는 것) 입니다. css와 html으로 구성을 마치면 그 속에 이루어지는 동작을 자바 스크립트js가 조작합니다. 작성하는 방법 자바 스크립트를 작성하는 방법은 두 가지 입니다. 하나는 HTML 문서 내부에 작성을 하는 방법과 또 하나는 자바 스크립트 파일을 만들고, 그 안에 작성한 코드를 HTML 문서에 연결하는 것입니다. 자바 스크립트의 파일 확장자는 *.js 입니다. 필요한 태그는 입니다. css 는 일반적으로 head 의 하단에 삽입된다면, js 이렇게 src를 ..

웹 CSS 입문 공부 20. 그리드 레이아웃 grid layout [내부링크]

grid layout 그리드 레이아웃 그리드 레이아웃이란 이름 그대로 격자 형태의 레이아웃을 만드는 2차원 레이아웃 방식을 말합니다. 그리드 레이아웃 방식에서, 그리드 아이템의 배치와 정렬은 그리드 컨테이너 내부의 행과 열의 상호작용을 통해 결정됩니다. 그리드 컨테이너 : 그리드 방식으로 레이아웃을 결정할 요소 그리드 아이템 : 그리드 컨테이너 내부에서 그리드 방식으로 배치되는 요소 display: grid; 그리드 영역은 모두 블록 컨테이너 배치가 기본 값이지만 인라인으로도 넣을 수 있습니다. display: inline-grid; 1 2 3 4 5 500px짜리의 그리드가 만들어지고 그 안에 columns(열) 의 공간이 200px 200px 차지하도록 만듭니다. 두 개의 200px 씩 지정된 열들이..

Html / CSS 로 유튜브 홈 화면 구현하기 (3) 컨텐츠 창 만들기 [내부링크]

이번에는 상단의 헤드와 메뉴 네비게이션 창에 이어서 컨텐츠 창을 만들어볼게요. 컨텐츠창은 영상의 썸네일이 추가되고 조회수와 시간이 표시되는 곳입니다. 마찬가지로 reset.css 를 추가해줄 것이고, 썸네일창인 thumbs.css도 만들어서 스타일 시트를 작성해줄게요. 우선 본문 영역의 코드를 보겠습니다. html의 영역이 길지만 같은 영역을 여덟번 반복한 것이에요. 영상 제목 게시자 조회수 100회 · 1시간 전 영상 제목 게시자 조회수 100회 · 1시간 전 영상 제목 게시자 조회수 100회 · 1시간 전 영상 제목 게시자 조회수 100회 · 1시간 전 영상 제목 게시자 조회수 100회 · 1시간 전 영상 제목 게시자 조회수 100회 · 1시간 전 영상 제목 게시자 조회수 100회 · 1시간 전 영상..

Html / CSS 로 유튜브 홈 화면 구현하기 (2) 메뉴 만들기 [내부링크]

다음으로 유튜브 홈 화면의 메뉴 부분을 만들어볼게요. 메뉴는 왼쪽에 햄버거 아이콘 아래의 부분입니다. 여기에서도 스타일 rss 시트를 따로 만들어줄 거예요. (1편 참고!) .nav{ position: fixed; top: 0; left: 0; z-index: 10; } .nav__wrapper{ min-width: 100px; min-height: 100vh; background-color: #f8f8f8; padding: 80px 0 0 0; list-style: none; } .nav__wrapper li{ display: flex; padding: 10px 16px 10px; } .nav__wrapper li:hover{ background-color: #eaeaea; } .nav__icon{ b..

Html / CSS 로 유튜브 홈 화면 구현하기 (1) 헤더 만들기 [내부링크]

유튜브 화면의 구성을 구현해보는 예제를 작성해봅니다. 유튜브 화면 구성 모델링 유뷰트 홈 화면을 구현하기에 앞서 간단하게 홈의 세 부분을 나누어볼 수 있어요. 이렇게 세 개의 html 을 작성해서 하나의 html 으로 만드는 작업을 합니다. 메 뉴 창 헤더 콘텐츠 바디 시작하기에 앞서웹 브라우저에서 기본적으로 주는 스타일이 있습니다. 우리는 반응형 웹 사이트로 브라우저의 기본 스타일을 적용하는 것을 배제해서 직접 설정해주도록 할 것이기 때문에 설정되어 있는 것을 초기화 clear 해주어야 합니다. 작성 reset.css reset.css는 브라우저의 기본 스타일을 삭제하기 위해 사용하는 css 입니다. 에릭 마이어의 reset css를 사용하면, 기존 사용하던 브라우저의 스타일을 삭제할 수 있습니다. h..

웹 CSS 입문 공부 19. 미디어 쿼리, 변형과 전환, 애니메이션animation, 애니메이션으로 공 튀기기 [내부링크]

미디어 쿼리 media query 미디어 쿼리(media query)는 미디어 타입을 인식하고, 콘텐츠를 읽어들이는 기기나 브라우저의 물리적 속성을 감지할 수 있는 유용한 장치(기능)입니다. 모든 미디어 쿼리는 다음 두 가지 구성 요소를 지니고 있습니다. - 미디어 타입 (어떤 타입인가, 음성 출력인가? 영상 출력인가? 미디어가 프린터기기 화면인지 음성기기인지, 어떤 미디어에서 노출이 되고 있는 것인지 등 ) - 조건에 대한 물음(미디어 특성) (=쿼리. 미디어의 크기 등) @medoa 미디어 타입 and 미디어 특성{ /* 해당 기기에서 사용할 CSS 코드 미디어 타입과 조건을 모두 만족할 때 덮어씌울 스타일 선언문 */ } 예를 들어 스크린 (pc와 모바일을 통틀어서 말하는 것) 인데, 기기 너비가 ..

웹 CSS 입문 공부 18. 상속, 공용키워드, z-index [내부링크]

상속 상속은 하위 요소가 상위 요소의 스타일 속성값을 물려받는 것을 의미합니다. 상속이 이루어지는 것은 대부분 글자로 이루어진 개별 요소들이고, 상속이 이루어지지 않는 것들은 대부분 블록으로 형성되어 박스가 되거나 영역이 표시되는 것들입니다. li의 요소를 선택하지 않아도 상위 요소의 ul에 적용된 스타일들이 하위의 li 요소들에게 적용 됩니다. 공용 키워드 모든 속성에 사용 가능한 키워드이며, 상속과 관계가 있습니다. inherit 상속이 가능한지 여부와 관계없이 해당 속성의 값을 받아올 수 있다. initial (브라우저에 지정되어 있는)해당 속성의 기본값을 요소에 적용한다. (브라우저의 초기값을 쓴다.) unset 상속 속성에 대해서는 inherit처럼, 상속되지 않는 속성에 대해서는 initial..

웹 CSS 입문 공부 17. 선택자(2) [내부링크]

기존에 선택자의 요소에는 여러 가지가 있다고 배웠습니다. 오늘은 그 기본 선택자 외의 선택자들에 대해서 알아보겠습니다. https://blue-dot.tistory.com/124 웹 CSS 입문 공부 12. 선택자, 선택자 우선순위 선택자란 선택자 : 어떤 요소에 스타일을 적용 할 것인지에 대한 정보 입니다. 무엇을 CSS로 꾸며줄 것인지 스타일을 입힐 대상 요소에 대한 것을 지정하는 것이에요. 선택자에는 종류가 여러가 blue-dot.tistory.com 1. 특성 선택자(속성 선택자) 특성 선택자(속성 선택자)는 주어진 속성의 존재 여부나 그 값에 따라 요소를 선택합니다. 속성 존재 여부 값에 따른 요소 선택 - 기호를 추가해서 요소를 선택할 수 있는 방식 [class * = ] 클래스 값에 “it”..

웹 CSS 입문 공부 16. flexbox 각 속성들 (예제 작성중) [내부링크]

이번엔 전 시간에 확인했던 flexbox의 각 속성들을 알아볼게요. 수업은 아래의 링크를 참고합니다. 공부 자료 출처 : https://www.youtube.com/c/%EC%9C%A0%EB%85%B8%EC%BD%94%EB%94%A9 유노코딩 강의/집필/기타 협업 문의 [email protected] 기업 및 기관 출강 가능합니다. 웹 프론트엔드(HTML, CSS, JavaScript, React)/파이썬/C언어 등. 배움의 과정에서 겪는 불필요한 고통들이 사라지길 바라고, 또 www.youtube.com flex-direction flex-wrap justify-content align-items align-self align-content 1. flex-direction 플..

웹 CSS 입문 공부 15. float, position 포지션, 레이아웃 flexbox [내부링크]

콘텐츠를 원하는 위치에 삽입하는 것은 여러가지 방법이 있는데, 그 중 float, positon, 레이아웃 flexbox를 통한 방법을 알아보겠습니다. float (플롯) float는 요소가 문서의 일반적인 배치 외로 자신을 포함하고 있는 컨테이너의 왼쪽이나 오른쪽에 배치하게 합니다. 속성값 의미 none 기본값, 원래 상태 left 자신을 포함하고 있는 박스의 왼편 right 자신을 포함하고 있는 박스의 오른편 문서의 일반적인 흐름(위에서 아래로, 왼쪽에서 오른쪽으로) 에서 마치 둥둥 뜬 것처럼 제외되지만 자신이 필요한 공간만큼은 가져갑니다. clear 속성 clear 속성은 float 요소 이후에 표시되는 요소들이 float의 영향을 받지 않고 (즉, float가 clear 해제된 상태) float ..

웹 CSS 입문 공부 14. 요소 유형 display & borde, 박스 모델 Box-Model [내부링크]

디스플레이display 는 우리가 보고 있는 이 화면의 구성 요소들에 대한 설정을 말합니다. 해당 속성값을 변경하는 것을 같이 알아볼게요. display 속성값 속성값 의미 inline 인라인으로 처리한다. block 블록 레벨로 처리한다. inline-block 인라인으로 배치하되, 블록 레벨 요소의 속성을 추가할 수 있도록 처리한다. none 디스플레이(표시)하지 않는다. 인라인과 블록의 차이는 다음과 같습니다. 인라인은 너비와 높이를 임의로 결정할 수 없고, 콘텐츠 크기가 크기를 정합니다. 블록은 생성된 블록의 안에서 너비와 높이를 자유롭게 지정할 수 있습니다. 인라인 블록은 배치 될 때에는 최소한의 자리로 배치가 되지만 원한다면 너비와 높이를 추가정의 할 수 있습니다. border속성 테두리를 만..

웹 CSS 입문 공부 13. 텍스트 속성, 웹 폰트 설정 [내부링크]

우리가 화면에 출력할 텍스트에 스타일을 입혀서 다양한 방식으로 표현할 수있도록 하는 것이 텍스트 속성입니다. 텍스트 속성에 어떤 것이 있는지 알아볼게요. •font-family : 글꼴을 정의한다. •font-size : 글자 크기를 정의한다. •text-align : 정렬 방식을 정의한다. •color : 글자 색상을 정의한다 font-family 글꼴을 변경할 수 있습니다. 글꼴명을 속성값으로 지정합니다. 사용할 수 있는 전제로 존재하는 글꼴을 내 시스템에 설치를 해야만 사용할 수 있습니다. 만약 시스템 내에 설치되어 있지 않고 웹에 존재하는 폰트라면 웹 폰트를 지정하여 설치해야 합니다. 웹 폰트를 설정하는 방법에 대해서도 같이 알아볼게요. 우선 라이센스 걱정없이 상업용으로 쓸 수 있는 무료 폰트..

웹 CSS 입문 공부 12. 선택자, 선택자 우선순위 [내부링크]

선택자란 선택자 : 어떤 요소에 스타일을 적용 할 것인지에 대한 정보 입니다. 무엇을 CSS로 꾸며줄 것인지 스타일을 입힐 대상 요소에 대한 것을 지정하는 것이에요. 선택자에는 종류가 여러가지 있어요. 기본 선택자, 그룹 선택자, 특성 선택자, 결합 선택자, 의사 클래스, 의사 요소 ... 이번에는 기본선택자와 그룹 선택자에 대해서 알아보겠습니다. 스타일 태그는 헤드의 맨 밑에 위치합니다. 우선 기본 선택자를 살펴보겠습니다. 선택자별로 적용되는 스타일을 보기 위해서 본문에는 각각 id와 class를 부여했어요. 김광석 - 그녀가 처음 울던 날 그녀의 웃는 모습은 활짝 핀 목련 꽃 같아 그녀만 바라보면 언제나 따뜻한 봄날이었지 그녀가 처음 울던 날 난 너무 깜짝 놀랐네 그녀의 고운 얼굴 가득히 눈물로 얼룩..

웹 CSS 입문 공부 11. CSS의 정의, CSS문서 코드 적용 [내부링크]

CSS 란? 콘텐츠의 크기, 색상, 위치, 움직임 등 웹문서에 추가되는 스타일 을 추가하는 언어 CSS 라고 합니다. CSS는 Cascading Style Sheets를 의미한다. •Cascading : 계단식 •Style : 멋을 내다 •Sheets : (종이) 한 장 즉 계단식으로 스타일을 정의하는 문서를 의미하며, 태그가 태그를 포함하는 계단식 구조를 지니고 있습니다. CSS 문서(코드) 자체는 독립적으로 존재할 수 있지만, 그 목적이 구조화된 HTML 문서의 스타일을 정의하는 데 있기 때문에 HTML 문서가 없는 CSS 문서는 사실상 의미가 없습니다. 대부분 문서를 별도로 만드렁 작업을 할 때에도 HTML 과 CSS 문서의 이름을 같게 지정하여 작업합니다. HTML : 웹 문서의 콘텐츠를 구성하는..

웹 HTML 입문 공부 10. 뷰포트viewport, 시맨틱 태그, 미디어 태그 [내부링크]

뷰포트 viewport viewport란 현재 화면에 보여지고 있는 이 영역을 말합니다. 모바일별로 뷰포트가 다르기 때문에 동일한 웹 페이지라도 기기에 따른 배율 조정이 발생해 화면의 크기가 다르게 보이는 현상이 나타납니다. 예를 들어 크롬에서 개발자 도구를 열어보면 toggle device가 있습니다. 이것은 모바일 기기로 현재 웹 페이지를 열었을 때 어떻게 호환되는지를 미리 보여주는 화면입니다. 버튼을 누르면 모바일 화면으로 호환된 화면이 보입니다. Respnsive 의 드롭박스를 클릭하면 다양한 휴대폰의 종류도 선택하여 화면을 볼 수 있습니다. 이렇게 우리가 모바일 혹은 pc의 화면에서 보여지는 배율과 화면을 viewport라고 합니다. 즉 모바일 기기에서 여러 단말기의 해상도에 대응하기 위해 사용..

웹 HTML 예제 만들기 2. 로그인 폼 만들기 [내부링크]

입력을 할 수 있는 input 태그와 제출 submit을 할 수 있는 form 을 배웠으니 이번에는 로그인 창을 직접 만들어볼게요. https://blue-dot.tistory.com/119 웹 HTML 입문 공부 9. form 데이터 전송, fieldset form은 사용자가 입력한 데이터(입력값)를 서버로 보내기 위해 사용하는 태그입니다. 여기에서 서버란, 정보를 제공하는 호스트(host)를 말합니다. 가령, 우리가 티스토리 홈페이지를 열고자 할 때 blue-dot.tistory.com 회원 가입 로그인 정보 아이디 비밀번호 비밀번호 확인 개인 정보 이름 메일 주소 상기 코드의 실행화면은 다음과 같습니다.

웹 HTML 입문 공부 9. form 데이터 전송, fieldset [내부링크]

form은 사용자가 입력한 데이터(입력값)를 서버로 보내기 위해 사용하는 태그입니다. 여기에서 서버란, 정보를 제공하는 호스트(host)를 말합니다. 가령, 우리가 티스토리 홈페이지를 열고자 할 때, 티스토리의 서버에 html 페이지를 요청하면 서버에서 html 문서로 이루어진 웹 페이지를 응답으로 보내줍니다. 그리고 우리의 웹 브라우저에 홈페이지가 오픈되는 것이에요. 즉, 클라이언트(사용자)가 요청을 하면, 서버는 그에 대한 응답으로 정보를 제공합니다. 클라이언트가 어떤 요청을 보내는가에 따라, 응답은 달라질 수 있습니다. (아이디가 다르다던가, 비밀번호가 다르면 로그인을 거절하는 응답을 보낼 수도 있습니다.) form 여기에서 form은 입력 요소들을 감싸는 형태이며, 입력 값을 서버 측으로 제출(s..

웹 HTML 입문 공부 8. input 입력 [내부링크]

지금까지 출력태그 (코드에 쓰여진 대로 보여주는 것) 에 대해서 알아보았다면 이번에는 입력태그에 대해서 배워볼게요. 입력 태그는 렌더링 이후의 결과물에다가 내용을 새롭게 기입할 수 있는 태그 입니다. 입력태그 input 태그 사용자로부터 값을 입력받을수 있는 대화형 컨트롤(또는 ‘필드’)를 나타냅니다. 기본적으로 인라인 요소이며, 단일 태그입니다. input은 속성 값에 변화를 주어서 각각의 다른 형태와 속성으로 바꿀 수 있습니다. 즉, input의 핵심은 type 속성이에요. type의 값에 따라 입력 요소의 형태나 입력 데이터 유형 등이 달라집니다. 사용 가능한 type은 20여 가지이며, 기본 타입의 값은 text (문자를 입력하는 네모 박스) 입니다. 그럼 가장 기본적인 text 로 사용할 수 있..

웹 HTML 입문 공부 7. 목록list 생성하기 [내부링크]

HTML 목록 LIST 태그 태그 목록은 연관 있는 항목(item)들을 나열한 것을 의미하며, 목록을 생성하면 블록 레벨 요소가 만들어집니다. HTML에서 목록은 ‘순서 없는 목록’과 ‘순서 있는 목록’으로 구분됩니다. Unordered List 순서가 없는 리스트. 태그 이름도 ul 입니다. Ordered List 순서가 있는 리스트. 태그 이름도 ol 입니다. 위 리스트로 와 를 입력하면 빈 항목 리스트가 생성됩니다. 이제 이 속에 목록의 요소들을 넣어주야 합니다. 태그 태그는 list item 이라는 뜻으로 목록에 들어가는 항목 하나 하나를 표현할 때 사용하는 태그입니다. 항목들( 태그들)을 감싸는 태그가 무엇이냐 (ul인지 ol인지)에 따라 목록의 앞에 붙는 기호가 달라집니다. ol에 들어..

웹 HTML 예제 만들기 1. 이미지로 하이퍼링크 만들기 [내부링크]

하이퍼링크를 표시하는 방법에 대해서 배워보았으니 각 이미지를 클릭하면 해당 하이퍼링크를 표시하는 태그를 작성해보겠습니다. https://blue-dot.tistory.com/115 웹 HTML 입문 공부 6. 하이퍼링크 표시 링크 anchor 링크는 anchor (앵커, 축, 정박지, 닻 과 같은 의미를 가집니다.) 의 약자인 a 태그를 사용합니다. 하이퍼링크를 표시하는 태그는 다음과 같습니다. a 태그 요소는 href 속성을 통해 다른 페 blue-dot.tistory.com 그림의 출처는 픽사베이의 저작권 프리 이미지를 사용했습니다. https://pixabay.com/ko/ 놀라운 무료 이미지 - Pixabay 놀라운 무료 이미지 우리의 관대한 커뮤니티를 통해 공유되는 0.1 백만개의 이미지와 비디..

웹 HTML 입문 공부 6. 하이퍼링크 표시 [내부링크]

링크 anchor 링크는 anchor (앵커, 축, 정박지, 닻 과 같은 의미를 가집니다.) 의 약자인 a 태그를 사용합니다. 하이퍼링크를 표시하는 태그는 다음과 같습니다. a 태그 요소는 href 속성을 통해 다른 페이지, 전화번호, 이메일 주소와 그 외 다른 url로 연결할 수 있는 링크(연결)를 만드는 역할을 합니다. a태그는 인라인 요소이고, 콘텐츠는 주로 링크의 목적지예요. href 는 하이퍼링크 레퍼런스의 약자입니다. 출처 : 유노코딩 ; https://www.youtube.com/c/%EC%9C%A0%EB%85%B8%EC%BD%94%EB%94%A9/about target 타겟 하이퍼링크를 눌러서 열었을 때 새 탭에서 열지, 아니면 현재 창에서 열지를 정할 수도 있습니다. target = "_..

웹 HTML 입문 공부 5. 컨테이너 요소, 전역 속성 (+ 검색 엔진에 노출 잘 되는 법) [내부링크]

이번에는 컨테이너의 요소와 그 전역 속성에 대한 것을 공부하겠습니다. 전역 속성에 대한 것을 살펴 보다보면 문서의 검색 엔진에 노출이 잘 되는 방법들도 같이 참고해볼 수 있으니까 만약 블로그 포스팅에서 노출이 잘 되는 방법 등에 관심이 있으신 분들도 보시면 좋을 것 같아요! 컨테이터 콘텐츠나 레이아웃에 아무런 영향도 주지 않고, 단지 다른 요소 여럿을 묶어 관리하기 편하게 만드는 역할을 하는 태그를 ‘컨테이너’라고 합니다. 하지만 꼭 필요한 경우가 있습니다. 콘텐츠 내용을 구분하거나, 공통적인 스타일을 적용하고자 할 때 컨테이너를 사용하는 것이 좋습니다. 예를 들어 마치 문서를 작성할 때 한꺼번에 글씨체를 바꾸거나 색상을 바꿀 때 드래그해서 전체를 한 번에 묶은 다음 스타일을 적용하는 것처럼요. 스타일을..

웹 HTML 입문 공부 4. 요소 유형 (블록 레벨 태그, 인라인 태그), 이미지 표시 [내부링크]

이번에는 태그 요소들에 대해서 조금 더 알아보고 이미지를 표시하는 것까지 해볼게요. 요소 유형 태그들 중 블록 요소를 형성하는 태그가 있고, 인라인 요소를 형성하는 태그가 있습니다. 블록 레벨 요소 블록 레벨 요소는 자기가 속한 영역의 너비를 모두 차지하여 블록을 형성합니다. 필요하지 않은 너비까지 모두 차지하고 있을 때에는 블록 레벨 요소라고 봅니다. 개발자 도구에서 단락을 만들었을 때 주변을 감싸는 주황색 여백이 있었던 것처럼, 어떤 블록을 새롭게 형성하게 하는 같은 경우에는 블록 레벨 요소라고 볼 수 있습니다. 블록 안에 블록을 넣을 수도 있습니다. 일반적으로 블록 안에 블록을 넣지는 않지만 마치 표 속에 표를 그리는 것과 같은 것이라고 보시면 돼요. 빈정대며 네가 말했지. 나는 끝까지 말하지 ..

웹 HTML 입문 공부 3. 텍스트 입력 [내부링크]

이제 HTML 로 텍스트를 입력하는 것을 직접 해볼게요. 문단 (paragraph) 하나의 단락은 다른 콘텐츠와 구분이 됩니다. p 태그는 문단 요소를 나타내는 태그로써, 가장 많이 사용되는 텍스트 태그입니다. 하나의 p 태그는 하나의 문단을 표현한다. 문단과 문단 사이에는 공백이 있습니다. 즉 글의 내용을 감싸는 여백을 추가합니다. 문단을 작성하는 예제를 작성해볼게요. 우리는 사랑에 관한 비유로 낱말 놀이를 하기로 했어. 너는 치즈, 소금, 얼음이라고 말했어. 나는 입이 없는 것처럼 조용히 웃었어. 왜 사라진 것들 뿐이니. 구름, 바다, 비라고 내가 대답했어. 그렇다면 도처에 사랑이 있겠네. 주황색 하이라이트는 여백을 뜻합니다. 이번에는 단락 두 개를 붙여볼게요. 우리는 사랑에 관한 비유로 낱말 놀이를..

웹 HTML 입문 공부 2. html 문서의 기본 구조 [내부링크]

Tag 태그 HTML의 문법은 딱 한 가지예요. 태그(tag)만 기억하면 됩니다. 태그란 HTML 코드에서 정보(콘텐츠)를 정의하는 형식을 말합니다. 태그는 < > 다이아몬드 기호와 / 기호를 사용해 콘텐츠의 시작과 끝을 표시합니다. 태그는 콘텐츠를 감싸고 있고, 그 안에는 태그명이 기입되어 있습니다. 태그명은 콘텐츠의 성격과 의미를 나타내므로 무척 중요합니다. 태그는 다음과 같은 형태로 사용합니다. 여기에 콘텐츠를 기입합니다 (여는 태그) (닫는 태그) 주석 HTML 주석의 예) 단일 태그< > < /> 앞서 보았듯 태그는 < > 과 기호를 사용해 콘텐츠의 시작과 끝을 표시합니다. 하지만 경우에 따라 시작과 끝을 구분할 필요가 없는 태그도 존재합니다. 이를 단일 태그라 하며, 단일 태그의 형식은 다음과..

웹 HTML 입문 공부 1. HTML 이란? [내부링크]

오늘부터 웹 개발 HTML 입문 공부를 시작합니다! 먼저 개요와 입문의 기초부터 시작합니다. html에 대해서 전혀 모르는 쌩초보, 비전공자 입문을 기준으로 수업을 정리합니다. ^^ 이점 참고 부탁드립니다! 프론트엔드와 백엔드 프론트엔드Frontend : 사용자들에게 시각적으로 보여주는 부분 -> HTML, CSS, 자바스크립트가 필수! 백엔드Backend : 프론트엔드에서 보여주는 정보들은 서버가 보유하고 있는 정보들. 사용자들이 이용할 수 있는 정보를 관리하는 부분. -> 자바, 파이썬, Golang(구글에서 만든 프로그래밍 언어) 등 선택 가능 HTML 이란 HTML 의 의미 ~ 하이퍼 텍스트와 콘텐츠를 표시해주는 언어! ~ HTML은 HyperText Markup Language를 의미합니..

자바 이클립스 클래스 이름 변경하기 [내부링크]

이클립스로 처음 코드를 작성할 때 간혹 어떤 오류인지 알 수 없을 때가 있습니다. 저는 처음 코딩을 할 때 가장 난감했던 오류가 Type mismatch: cannot convert from FileReader to Reader 오류였는데요. 마우스 커서를 가져다 대면 아래와 같이 오류가 발생합니다. 아래의 콘솔 화면을 확인해보면 예외처리에 대한 상세 설명이 있는데요. Exception in thread "main" java.lang.Error: Unresolved compilation problems: The constructor FileReader(String) is undefined Type mismatch: cannot convert from ... 즉, 인자의 타입이 올바르지 않다는데, 아무리봐..

자바 복습. 공부한 내용들의 간단 리뷰! [내부링크]

2022.10.24. ~ 2022.11.08. 자바 기초 공부 ~ 간단한 리뷰! 각 상세한 설명이 필요할 때에는 블로그 검색기능이나 기초공부 카테고리에서 찾기! ~ 객체 지향 : 프로그램 안에서의 동작이 객체간의 상호작용을 통해 이루어진다. 클래스 : 데이터(프로그램 상에서 유지하고 관리할 데이터) 와 기능(프로그램 상에서 처리할 기능) - 인스턴스 변수 : 클래스 내에 선언된 변수 - 인스턴스 메소드 : 클래스 내에 정의된 메소드 참조 변수로 어떤 대상을 참조한단 것은 참조된 주소로 접근할 수 있는 통로를 만드는 것 참조 변수의 특성 : BankAccount yoon = new BankAccount(); 일 때 yoon은 new BankAccount();가 가지고 있는 주소 값을 가지게 ..

자바 기초 공부 일지 54. 쓰레드Thread 생성과 쓰레드 동기화 방법 [내부링크]

쓰레드Thread란 프로세스의 작업 단위입니다. 프로그램 내에서 실행을 흐르는 이루는 최소 단위이며 main 메소드의 실행도 하나의 쓰레드에 의해 진행이 됩니다. (프로세스가 여러가지 행동들을 실행해야 할 때 쓰레드에 할당을 하여 실행이 됩니다. ) 쓰레드의 존재는 자바 프로그램 안에서도 존재합니다. class CurrentThreadName { public static void main(String[] args) { Thread ct = Thread.currentThread(); // 참조할 수 있는 현재 쓰레드 선언 String name = ct.getName(); // 쓰레드의 이름을 반환 System.out.println(name); } } 쓰레드를 생성할 때 메인 쓰레드는 만들지 않아도 생성되어..

자바 기초 공부 일지 53. I/O 스트림(InputStream, OutputStream) (작성중) [내부링크]

전에 공부하였듯 스트림이란 데이터가 이동하는 통로입니다. https://blue-dot.tistory.com/102 자바 기초 공부 일지 50. 스트림Stream, 필터링과 맵핑 스트림Stream 스트림은 데이터가 흘러가는 줄기예요. 데이터가 흘러 들어가서 결과를 출력하기까지의 과정이 담긴 줄기입니다. 마치 파이프를 연결해놓고, 그 사이에 필터를 넣을 수 있는 것 blue-dot.tistory.com 그럼 스트림과 I/O (스트림은 어떤 차이가 있는지 알아볼게요. 스트림은 일방향의 특징을 가지는 데이터의 흐름이기 때문에 input 과 output 을 위한 코드가 따로 존재합니다. 스트림은 주로 어떤 데이터를 흘려 보내서 중간 연산 과정을 사용하여 원하는 형태로 걸러내고 연산할 것인가에 대한 것에 ..

자바 기초 공부 일지 52. 버퍼 (작성 수정중) [내부링크]

InputStream in = new FileInputStream("date.dat"); // 입력 스트림 생성 int data = in.read(); // 데이터 읽어 들임 OutputStream out = new FileOutputStream("date.dat"); // 출력 스트림 생성 out.write(7); // 데이터 7을 파일에 전달 버퍼 : 스트링 중간에 존재해서 데이터를 한꺼번에 데려오는 수레같은 역할을 함. 이동횟수가 줄기 때문에 속도 개선 효과를 가져다줌 파일 대상 입출력 스트림을 생성한 이후에는 반드시 닫아주어야 한다. package day21; import java.io.*; /* * 파일 입출력 시 존재하지 않는 파일에 출력을 하기 위한 스트림을 형성하면, * 파일이 새롭게 만들..

자바 기초 공부 일지 51. 리덕션, 맵핑Mapping (Map, faltMap) (작성중) [내부링크]

리덕션(Reduction) 데이터를 축소하는 연산 입니다. T reduce(T identity, BinaryOperator accumulator) // Stream에 존재합니다. // BinaryOperator T apply(T t1, T t2) 리덕션은 두 개의 인수를 받은 후에 그에 따른 결과를 반환합니다. 그 연산식은 마치 토너먼트처럼 보이는데요. 앞의 값과 비교를 한 후에 축소 진행 중인 상태의 하나의 요소 결과값을 반환합니다. public static void main(String[] args) { List ls = Arrays.asList("Box", "Simple", "Complex", "Robot"); BinaryOperator lc = (s1, s2) -> { if(s1.length() ..

자바 기초 공부 일지 50. 스트림Stream, 필터링과 맵핑 [내부링크]

스트림Stream 스트림은 데이터가 흘러가는 줄기예요. 데이터가 흘러 들어가서 결과를 출력하기까지의 과정이 담긴 줄기입니다. 마치 파이프를 연결해놓고, 그 사이에 필터를 넣을 수 있는 것처럼 스트림 안에도 필터를 끼어서 원하는 결과만을 얻을 수도 있어요. 스트림을 생성하고 이를 대상으로 ‘중간 연산’과 ‘최종 연산’을 진행하면, 원하는 기준으로 데이터를 필 터링하고 필터링 된 데이터의 가공된 결과를 얻을 수 있습니다. 중간 연산 성격의 메소드가 있고, 최종 연산 성격의 메소드가 있습니다. 아래의 예시를 같이 보겠습니다. public static void main(String[] args) { int[] ar = {1, 2, 3, 4, 5}; IntStream stm1 = Arrays.stream(ar..

자바 기초 공부 일지 47. 람다와 함수형 인터페이스 [내부링크]

함수란 재사용할 수 있는 코드 조각이며 이것이 클래스 안에 포함되어 있으면 메소드라고 합니다. 함수형 인터페이스란 함수를 정의하기 위한 인터페이스 입니다. (추상메소드를 하나만 가지고 있는 인터페이스) 함수형 인터페이스는 객체 뿐만 아니라 기능적인 상호작용을 가능하게 합니다. 람다를 사용하는 경우들을 살펴볼게요. 1. 인스턴스보다 기능 하나가 필요한 상황을 위한 람다에서 사용합니다. 함수를 외부에 작성한 뒤 인자로 넣는 것이 아니라, 인자의 자리에 직접적으로 람다를 넣을 수 있습니다. 아래의 예제를 살펴볼게요. 리스트의 정렬sort를 위해 sort의 기준이 되는 오버라이딩을 클래스로 정의했습니다. class StrCmp implements Comparator{ @Override public int com..

자바 기초 공부 일지 49. 메소드 참조 (작성 수정중) [내부링크]

람다는 이전에 배운 것으로 그 자체로 다른 메소드 안에서 매개변수로 참조될 수도 있다는 것을 알았습니다. https://blue-dot.tistory.com/96 자바 기초 공부 일지 46. 람다lambda 람다에 대한 이해를 위해 기본형과 익명 클래스 사용과 람다의 사용을 작성해볼게요. 기본 클래스 익명 클래스 람다 interface Printable { void print(String s); } class Printer implements Printable { public void print( blue-dot.tistory.com 일부 람다식을 메소드 참조로 대신하게 하거나 기본적으로 람다식보다 조금 더 코드를 단순하게 하기 위해서 메소드 참조를 사용합니다. 메소드 참조method reference는..

자바 기초 공부 일지 48. 함수형 인터페이스 Predicate<T>, Supplier<T>, Consumer<T>, Function<T, R> [내부링크]

공부에 참고한 페이지 : https://m.blog.naver.com/zzang9ha/222087024556 [Java/자바] - Function interface Function interface 안녕하세요, 이번시간에 알아볼 함수형 인터페이스는 Function

자바 기초 공부 일지 46. 람다lambda [내부링크]

람다에 대한 이해를 위해 기본형과 익명 클래스 사용과 람다의 사용을 작성해볼게요. 기본 클래스 익명 클래스 람다 interface Printable { void print(String s); } class Printer implements Printable { public void print(String s) { System.out.println(s); } } class Lambda1 { public static void main(String[] args) { Printable prn = new Printer(); prn.print("What is Lambda?"); } } interface Printable { void print(String s); } class Lambda2 { public stat..

자바 기초 공부 일지 45. 네스티드 클래스, 스테틱 클래스, 이너 클래스 [내부링크]

네스티드Nested ( nest, 둥지를 틀다. 새 둥지) 는 중첩을 의미합니다. 클래스 안에 들어있는 클래스를 네스티드 클래스라고 합니다. 네스티드 클래스 안에는 Static 클래스와 Non-Static 클래스가 있습니다. Static 클래스의 경우에는 정적 클래스 Static 클래스가 아닐 경우에는 Non-Static 네스티드 클래스 또는 이너 클래스라고 합니다. 이너 클래스는 다시 멤버 클래스, 로컬 클래스, 익명 클래스로 나뉘어집니다. - 멤버 클래스는 클래스 안에서 멤버 역할을 하는 클래스 - 로컬 클래스는 메소드 안에 만들어진 클래스 (메소드 안의 영역을 로컬이라고 합니다.) - 익명 클래스는 클래스를 일회성으로 재정의해서 사용하는 클래스 Static 네스티드 클래스 Static 네스티드 ..

자바 기초 공부 일지 44. 열거형 [내부링크]

자료형의 부여를 돕는 열거형 enum Scale { // 열거 자료형 Scale 의 정의입니다. enm 은 열거형 키워드. 열거형 값 (Enumerated Values) DO, RE, MI, FA, SO, RA, TI } 스케일형 인스턴스의 도 데이터, 레 데이터... 이렇게 이름에 의미를 부여합니다. 아래는 열거형의 예제입니다. public static void main(String[] args) { Scale sc = Scale.DO; System.out.println(sc); switch(sc) { case DO: //Scale.

자바 기초 공부 일지 43. ArrayList 정렬하기, Comparable과 Comparator, Comparator<T> [내부링크]

공부 참고 자료 : 윤성우의 열혈 자바 프로그래밍 공부 자료집 https://hianna.tistory.com/569 [Java] ArrayList 정렬하기 (오름차순, 내림차순, 사용자 정의) Collections.sort() 오름차순으로 정렬하기 내림차순으로 정렬하기 대소문자 구분없이 정렬하기 List.sort() - Java 8 이후 오름차순으로 정렬하기 내림차순으로 정렬하기 대소문자 구분없이 정렬하기 사 hianna.tistory.com List를 구현한 컬렉션 클래스들은 저장된 인스턴스를 정렬된 상태로 유지하지 않습니다. 대신에 정렬을 해야 한다면 다음 메소드를 사용해서 정렬합니다. public static void sort(List list) sort는 Collections 클래스에 정의되어 ..

자바 기초 공부 일지 42. 컬렉션 클래스 (5) 맵HashMap<K, V> [내부링크]

맵HashMap은 두 개의 자료가 하나의 요소를 구성하는 특성을 지닙니다. 각 자료는 키key와 값value으로 구분됩니다. key는 실질적 데이터가 아니며, 실질적 데이터인 value를 찾기 위한 지표 역할을 합니다. key는 지표의 역할을 하기 때문에 중복이 되면 안 됩니다. 즉,키key의 중복은 불가능하지만 값value의 중복은 가능합니다. 맵HashMap은 key라는 지표가 있기 때문에 순서를 유지할 필요가 없으므로 배열 순서가 없습니다. 아래의 예제를 살펴볼게요. public static void main(String[] args) { HashMap map = new HashMap(); // Key-Value 기반 데이터 저장 map.put(45, "Brown"); // (key, value) ..

자바 기초 공부 일지 41. 컬렉션 프레임 워크 (4) Queue<E> [내부링크]

(4) Queue Queue 컬렉션 클래스를 구성하는 스택Stack과 큐Queue가 있습니다. 스택Stack은 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있고, top으로 정한 곳으로만 자료를 꺼낼 수 있습니다. Last in First Out 큐Queue는 한 곳에서는 삽입 작업이, 한 곳에서는 삭제 작업이 양 쪽으로 이루어집니다. 삭제 연산만 수행되는 곳을 front 프론트, 삽입 연산만 이루어지는 곳을 리어 rear 라고 하며 각각의 연산작업만 수행합니다. 큐의 리어에서 이루어지는 삽입연산을 인큐enQueue, 프론트에서 이루어지는 삭제연산을 디큐deQueue 라고 합니다. First in First Out 덱Deque 은 구멍이 두 개 입니다. 그리고 두 개의 구멍이 모두 입구도 출..

자바 기초 공부 일지 40. 컬렉션 프레임 워크 (3) TreeSet<E> [내부링크]

3. TreeSet HashSet + 정렬입니다. Tree(트리) 자료 구조를 기반으로 하는 인스턴스에 대해서 정렬 상태를 유지하면서 인스턴스가 저장 됩니다. TreeSet은 정렬 알고리즘을 가지고 있는 구조 입니다. public static void main(String[] args) { TreeSet tree = new TreeSet(); tree.add(3); tree.add(1); tree.add(2); tree.add(4); System.out.println("인스턴스 수: " + tree.size()); Tree 라고 하는 자료 구조는 비선형적인 자료 구조 입니다. 즉, 출발점을 기준으로 뻗어나가는 형태의 자료 구조예요. 예를 들어 가계도(족보)를 생각하시면 좋을 것 같아요. 트리 구조는 ..

자바 기초 공부 일지 39. 컬렉션 프레임 워크 (2) Set<E> [내부링크]

(2) Set Set 은 수학의 집합을 코드적으로 표현한 것입니다. Set은 배열이 없으므로 저장 순서가 유지되지 않고, 데이터의 중복 저장이 허용되지 않습니다. public static void main(String[] args) { Set set = new HashSet(); set.add("Toy"); set.add("Box"); set.add("Robot"); set.add("Box"); System.out.println("인스턴스 수: " + set.size()); 상기 코드를 실행할 경우 인스턴스의 수는 3 개가 표시 됩니다. 이유는 중복되는 Box 의 경우 중복이 되므로 저장되지 않기 때문입니다. 또한 순서대로 표시되지 않고 올림차순으로 abcd... 출력 됩니다. (저장 순서가 유지되지 않..

자바 기초 공부 일지 38. 컬렉션 프레임 워크 (1) Lise<E> 인터페이스 [내부링크]

자료 구조란 IT학문 분야 중 하나입니다. 프로그램을 짜다보면 데이터가 많아지는데 어떻게 하면 효율적으로 관리할 수 있을지에 대한 구조의 연구예요. 자료 구조를 인터페이스 구조로 정리를 해놓는데, 그 구조의 집합을 컬렉션 프레임 워크라고 합니다. 즉, 컬렉션 프레임 워크는 자바에서 자료구조를 정의해 표준 인터페이스 형태로 제공하는 것입니다. 컬렉션 프레임 워크 골격에 해당하는 인터페이스들은 다음과 같습니다. 자료 구조 및 알고리즘을 구현해 놓은 일종의 라이브러리이고, 제네릭을 기반으로 구현이 되어 있습니다. 각 인터페이스를 하나씩 살펴볼게요. 1. Lise 인터페이스 데이터를 일렬로 보관합니다. 마치 배열과도 같이요. 리스트에 대한 특징을 알아볼게요. - 선형적인 자료구조입니다. (일렬로 데이터를 보관)..

자바 복습. 클래스Class [내부링크]

http://www.tcpschool.com/java/java_class_intro 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com 지식의 출처 : 티피씨스쿨 객체 지향 프로그램이란 우리가 인식하는 사물과 같은 객체의 행동을 구체화 하는 형태의 프로그래밍을 객체 지향 프로그래밍이라고 한다. 이 때 객체를 만들어내기 위한 설계도를 클래스Class라고 한다. 객체의 상태를 나타내는 {} 필드, 객체의 행동을 나타내는 메소드() 로 구성. 필드란 클래스에 포함된 변수를 의미하고, 메소드란 특정 작업을 수행하기 위한 명령문의 집합. 클래스를 사용하기 위해서는 클래스 타입의 객체 선언 필요. 객체를 선언 -> 해당 클래스 타입..

자바 기초 공부 일지 37. 제네릭generic 메소드 [내부링크]

제네릭 메소드 클래스 전부가 아닌 메소드 하나에 대해 제네릭을 정의합니다. 메소드의 선언부에 타입 변수를 사용한 메소드를 의미하며, 메소드 선언부에서 반환 타입 바로 앞에 위치합니다. public static void sort( ... ) { ... } class BoxFactory { public static Box makeBox(T o) { Box box = new Box(); // 상자를 생성하고, box.set(o); // 전달된 인스턴스를 상자에 담아서, return box; // 상자를 반환한다. } } Box sBox = BoxFactory.makeBox("Sweet"); Box dBox = BoxFactory.makeBox(7.59); // 7.59에 대해 오토 박싱 진행됨 Box sB..

자바 기초 공부 일지 36. 제네릭generic 타입 인자 [내부링크]

제네릭 타입은 클래스나 인터페이스 뒤에 다이아몬드 부호를 넣고, 타입 변수가 들어가는 것입니다. class, interface 일반적으로 대문자 하나가 들어갑니다. 제네릭은 그 자체로 자료형이기 때문에 매개변수화 타입을 타입 인자로 전달할 수 있습니다. 즉 상자 속에 상자를 넣을 수 있습니다. 마트료시카처럼요. class Box { // 박스 T를 만듭니다. private T ob; public void set(T o) { // 인자를 가질 수 있는 셋팅 메소드를 만들고 ob = o; } public T get() { // 인자를 반환하는 반환 메소드를 만들어요. return ob; } } public static void main(String[] args) { Box sBox = new Box();..

자바 기초 공부 일지 35. 제네릭generic 의 기본 문법 [내부링크]

제네릭generic이란 데이터 타입을 일반화하는 것을 의미합니다. 즉, 제네릭이란 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법입니다. 제네릭을 하지 않을 경우에는 안정성이 많이 떨어지고, 타입 변환과 검사에 들어가는 시간과 노력을 줄일 수 있습니다. 프로그래밍에 실수가 있을 시 알기가 쉬운 코드가 품질이 좋은 코드이기 때문에 제네릭의 존재를 인지하고 있는 것이 좋습니다. 아래는 제네릭을 사용하지 않았을 시의 코드입니다. class Apple { public String toString() { return "I am an apple."; } } class Orange { public String toString() { return "I am an orange."; } ..

자바 기초 공부 일지 34. 문자열 토큰 [내부링크]

파이썬에서 문자열을 구분하는 방법으로 split()함수가 있었습니다. https://blue-dot.tistory.com/12 파이썬 공부일지 9. 숫자 · 문자열 함수! 수업은 끝났으나 자습이 남아 있습니다. 8시간 내리 수업을 듣는 것보다, 지금까지 들었던 수업들을 정리할 수 있는 시간이 있다는 것이 얼마나 감사한 일인지 모르겠어요. 누군가에게 배우는 blue-dot.tistory.com 자바에서도 동일한 역할을 하는 문자열 토큰이라는 기능이 있는데, 문자열에서 기준자가 되는 것을 기준으로 슬라이싱 하는 (문자열을 나누는) 기능입니다.ㅜ PM:08:45 이 문자열이 있을 때 문자열의 구분자가 : 콜론 일 경우 토큰은 다음 세 가지입니다. PM 08 45 위와 같이 토큰을 나누는 방법으로는 자바의 유틸..

자바 기초 예제 문제 7. 랜덤 숫자 맞추기 게임 [내부링크]

1~50까지의 범위 중 랜덤 숫자 하나를 맞추는 게임을 작성해보겠습니다. 기회는 10번까지 주어지며, 정해진 숫자가 업인지 다운인지를 확인할 수 있도록 할게요. Random 난수와 while 조건문, if 조건문, Scanner 클래스를 활용합니다. package day17; import java.util.Random; import java.util.Scanner; /* * 직접 키보드 입력으로 숫자를 추측하는 작업을 맞출 때까지 반복하기. * 단 10번의 기회가 주어지며, 10번 시도하고도 못 맞추면 그때 반복이 끝난다. * 업다운을 알려주는 기능을 포함한다. */ public class Quiz03 { public static void main(String[] args) { Random rn = ne..

자바 기초 공부 일지 33. 난수(Random) [내부링크]

난수란 정의된 범위 내에서 무작위로 추출된 수입니다. 다음에 무슨 수가 나올지 알 수 없는 수, 즉 랜덤Random 수를 난수라고 합니다. 난수를 생성하는 구문은 다음과 같습니다. Random rand = new Random(); 각 랜덤 기능별 키워드는 다음과 같습니다. public boolean nextBoolean() boolean형 난수 반환 public int nextInt() int형 난수 반환 public long nextLong() long형 난수 반환 public int nextInt(int bound) 0 이상 bound 미만 범위의 int형 난수 반환 public float nextFloat() 0.0 이상 1.0 미만의 float형 난수 반환 public double nextDoub..

자바 기초 공부 일지 32. BigInteger 클래스, BigDecimal 클래스, Math 클래스 [내부링크]

BigInteger () 클래스 바이트형 정수는 비트가 8개입니다. 그 중 맨 왼쪽은 부호 비트이므로 나머지 7개가 숫자를 결정합니다. 그러므로 바이트로 표현할 수 있는 숫자는 127입니다. (최댓값) https://blue-dot.tistory.com/39?category=975496 자바 기초 공부 일지 3. 자바 변수 선언하기, 정수의 표현 방법(2진법 표현식) 자바는 변수를 선언할 때 변수의 이름과 용도를 같이 선언해야 합니다. ex) int num1; 최초로 변수를 만들 때 어떤 역할을 할지 적어주어야 합니다. (변수의 선언) int num1; // 변수 num1의 선언 num1 = blue-dot.tistory.com package day17; import java.math.BigInt..

자바 기초 공부 일지 31. 래퍼 클래스, Number 클래스 [내부링크]

래퍼 클래스 class UseWrapperClass { public static void showData(Object obj) { System.out.println(obj); } 상기의 코드를 보면 클래스 안에 인스턴스를 요구하는 메소드가 있습니다. 이 메소드의 인수 타입 중 Object 타입은 int, float 등 과는 다른 타입이기 때문에 이 메소드를 통해서 정수 혹은 실수를 출력하려면 해당 값을 인스턴스화 해야 합니다. public static void main(String[] args) { Integer iInst = new Integer(3); // 기본 자료형을 감싸는 클래스 래퍼 클래스 showData(iInst); showData(new Double(7.15)); // 기본 자료형을 ..

자바 기초 공부 일지 30. clone 메소드 [내부링크]

Obejct 클래스에는 clone() 메소드가 정의되어 있습니다. clone 메소드는 해당하는 객체의 모든 필드를 복사하여 새로운 객체에 넣어 반환하는 동작을 수행합니다. 즉, 대상을 똑같이 만들어주는 기능입니다. 여기에는 의무사항이 있는데, clone 메소드의 호출을 허용하려면 Cloneable 인터페이스를 구현해야 합니다. class Point implements Cloneable { // 복사할 수 있는 Point 클래스 생성 private int xPos; // 변수 xpos; 선언 private int yPos; // 변수 ypos; 선언 이렇게 클론 메소드의 호출을 허용하려는 클래스에는 Clonable 인터페이스를 구현해야 합니다. protected native Object clone() th..

자바 기초 예제문제 6. equals() 메소드를 오버라이딩 해서 좌표 비교 (공부중) [내부링크]

x, y 좌표를 나타내는 Point 인스턴스 간의 좌표값 비교를 위해 equals 메소드를 오버라이딩 해보고, main에서 직접 실행 결과까지 확인해보기 package day17; /* * x, y 좌표를 나타내는 Point 인스턴스 간의 좌표값 비교를 위해 * equals 메소드를 오버라이딩 해보고, main에서 직접 실행 결과까지 확인해보기 */ class Point{ int x; int y; Point(int x, int y){ this.x = x; this.y = y; } @Override public boolean equals(Object obj) { Point compare = (Point)obj; if(this.x == compare.x && this.y == compare.y) { retu..

자바 복습. 인터페이스 [내부링크]

인터페이스 : 어떤 객체를 만들고 싶은지, 혹은 만들어야 하는지에 대한 약속 추상메소드 : 몸통없이 선언부만 있는 메소드로, 사용할 수 없는 미완성 상태의 메소드 interface CAT{ void eating(); void sleeping(); } 나중에 이것으로 코드를 만들 것이라는 준비과정. 구현하기 위한 틀. interface Cat{ String species = "고양이과"; void eating(); void sleeping(); } 인터페이스 내의 추상메소드 : public abstrack 메소드 이다. 따로 작성하지 않아도 컴파일러에 의한 자동 처리. 인터페이스 내의 변수 : public static final 변수. 즉 상수이다. 따로 작성하지 않아도 컴파일러에 의한 자동 처리. S..

자바 기초 공부 일지 29. 자바 가상머신의 메모리 할당 [내부링크]

운영체제 입장에서 자바 가상머신은 일반프로그램과 동일한 프로그램 중 하나이므로 자바 프로그램이 두 개 실행되면, 가상머신도 두 개가 실행 됩니다. 각 가상머신마다 운영체제가 메모리를 할당합니다. 자바는 해당 메모리를 효율적으로 관리하기 위해 영역을 나눕니다. - 메소드 영역 (Method Area) - 메소드의 바이트코드, static 변수 - 스택 영역 (Stack Area) - 지역변수, 매개변수 - 힙 영역 (Heap Area) - 인스턴스 - 코드 영역(Code Area) - 실행할 프로그램의 코드가 저장되는 영역, 텍스트 영역 각 영역을 자세하게 살펴볼게요. 메소드 영역 class Boy { static int average = 0; public void Run() {....} } class..

자바 기초 공부 일지 28. 예외의 처리 try~catch 구문 [내부링크]

파이썬에서 exception 처럼, 자바에서 예외의 상황을 차리 하기 위한 클래스가 있습니다. https://blue-dot.tistory.com/28 파이썬 공부 요약 노트 4. 예외, 오류 오류의 종류 - 구문 오류 : 문법이 잘못 되어서 실행할 수 없는 문제 -> 코드를 다시 써야 해결 된다. - 실행 예외 : 문법은 맞지만 논리가 잘못 되어서 실행할 수 없는 문제 -> 예외. 앞뒤로 코드 blue-dot.tistory.com 우선 자바에서 예외를 알리기 위한 클래스가 다음과 같습니다. java.lang.ArithmeticException 수학 연산에서의 오류 상황을 의미하는 예외 클래스 java.util.InputMismatchException 클래스 Scanner를 통한 값의 입력에서의 오류..

자바 기초 공부 일지 27. 추상 클래스 [내부링크]

추상 클래스란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드입니다. 추상 클래스 만들 때의 조건은 하나 이상의 추상 메소드를 포함시키는 것입니다. 즉, 추상 메소드를 하나 이상 포함하는 클래스가 추상클래스입니다. abstract class Tree{ abstract void makeFruit(); } - 추상 클래스 : 추상 메소드를 하나 이상 포함하는 클래스, 클래스의 앞에도 abstract 를 작성해주어야 합니다. - 추상 메소드 : 몸통이 없고, 앞에는 abstract가 붙는 메소드 입니다. 추상 클래스도 참조 변수를 만들지만, 인스턴스 생성은 불가합니다. 추상 클래스는 일반 메소드도 자유롭게 추가할 수 있습니다. 인터페이스 변수는 정적인 상수이나, 추상 클래스 변수는 그냥 변수입니..

자바 기초 공부 일지 26. 인터페이스interface , 구현implements [내부링크]

인터페이스 : 규약, 접점 user interface (UI) 유저 인터페이스는 결구구 사용자에게 제공하는 규약이자 접점 입니다. 사용자가 그것을 통해서 접근할 수 있는 접점입니다. 자바에서 인터페이스는 추상 메소드를 담고 있는 블록입니다. 추상 메소드란 몸통이 없는 블록입니다. 즉 메소드의 몸체 없이 선언부분만 있는 메소드이며, 그로인해 인스턴스를 만들 수 없고 참조 변수 선언만 가능한 메소드입니다. 인터페이스 클래스는 interface 키워드를 사용해서 접근하며, 다음과 같이 선언합니다. 접근제어자 interface 인터페이스이름 { public static final 타입 상수이름 = 값; ... public abstract 메소드이름(매개변수목록); ... } 인터페이스 클래스 또한 클래스이지..

자바 기초 공부 일지 25. Object 클래스, final 선언, @Override 오버 라이딩 [내부링크]

모든 클래스들은 Object 클래스를 상속합니다. 만약 상속을 하는 클래스가 없다면 자동적으로 컴파일이 java.lang.Object 클래스를 상속한 것으로 인식합니다. ex) class MyClass extends Object {...} 내가 작성한 클래스가 어떤 클래스를 상속하고 있는지 확인하기 위해서는 Source -> Override / Implement Mathods 탭을 클릭하시면 확인할 수 있습니다. 상속하고 있는 클래스들의 목록이 뜹니다. Object를 상시 상속하고 있는 것을 확인할 수 있습니다. tip) 여기서 사용하고 싶은 것들을 클릭하면 오버라이드 할 수 있는 형태들이 자동으로 양식 완성 됩니다. ok를 누르면 출력 화면에서 확인할 수 있습니다. 만약 클래스가 다른 클래스를 상속한다..

자바 기초 예제문제 5. 상속 기반으로 인맥 관리 프로그램 관리 대상 묶기 [내부링크]

대학 동창과 직장동료의 이름, 전공(부서), 전화번호 정보를 저장하고 관리하는 프로그램을 만들 때 상속을 기반으로 중복되는 클래스 메소드들을 클래스 상속관계로 묶는 것을 예제로 만들어보겠습니다. ex) 이름 : ㅇㅇㅇ 전공 : ㅇㅇㅇㅇㅇ 전화 : 000 - 0000 - 0000 이름 : ㅇㅇㅇ 부서 : ㅇㅇㅇㅇ 전화 : 000 - 0000 - 0000 우선 처음은 단순하게 관리 대상이 둘 이므로 두 개의 클래스를 정의하는 것부터 해볼게요. 먼저 대학 동창 목록을 정의하는 클래스입니다. class UnivFriend{// 대학 동창 목록 private String name;// 이름 문자열 선언 private String major; // 전공 문자열 선언 private String phone; // 전화..

자바 기초 공부 일지 24. 메소드 오버라이딩, instanceof 연산자 [내부링크]

용어가 비슷하지만 다른 기능 중에 메소드 오버로딩이 있었어요. 이거랑 메소드 오버라이딩의 차이점을 먼저 확인할게요. https://blue-dot.tistory.com/57 자바 기초 공부 일지 15. 메소드 오버로딩, this 참조 변수 메소드 오버로딩이란 같은 이름의 메소드를 중복으로 만들 때를 의미합니다. 자바에서 한 클래스에 같은 이름의 메소드를 두 개 이상 받을 수 없지만, 매개변수의 개수 혹은 타입을 다르게 blue-dot.tistory.com 메소드 오버로딩 반환형이고 이름이 같을 때, 그러나 매개변수가 다를 경우. 호출 시에 전달 인자를 보고 사용할 메소드를 최종적으로 결정하는 것입니다. 즉, 여러 메소드를 하나의 이름으로 정의하는 것이었습니다. 메소드 오버라이딩은 반환형, 이름, 매개..

자바 기초 공부 일지 23. 클래스 상속과 생성자 [내부링크]

상속은 가지고 있는 것을 물려주는 것입니다. 자바에서 상속은 클래스가 가지고 있는 데이터와 기능을 주는 문법입니다. 이것은 클래스 안에 있는 코드의 재활용이라기 보다는 연관된 일련의 클래스들에 대해서 공통적인 규약을 정의한다는 것입니다. 상속의 대상이 되는 클래스 = 상위 클래스, 기초 클래스, 부모 클래스, 슈퍼 클래스 상속을 하는 클래스 = 하위 클래스, 유도 클래스, 자식 클래스, 서브 클래스 class Man { String name; public void tellYourName() { System.out.println("My name is " + name); } } Man 클래스를 만들었습니다. tellYourName() 이라는 메소드 멤버가 있습니다. class BusinessMan ext..

자바 기초 공부 일지 22. 2차원 배열, 2차원 배열 초기화 [내부링크]

2차원 배열에 대해서 알아볼게요. 앞서 배운 1차원 배열은 아래와 같이 생겼습니다. 딱 일렬로 세워진 배열이에요. int[] arr1 = new int[4] 그리고 2차원 배열은 이렇게 행과 열로 구성되어 있습니다. int[][] arr2 = new int[3][4] [행가로][열세로] 2차원 배열 요소의 전체적인 순차적 접근은 for문의 중첩 반복문을 사용해요. 즉, for문의 외부 반복, 내부 반복을 통해 순차적으로 출력할 수 있습니다. 예시를 통해 어떻게 만들어지는지 확인해볼게요. public static void main(String[] args) { int[][] arr = new int[3][4]; int num = 1; // 배열에 값을 저장 for(int i = 0; i < 3; i++..

자바 기초 공부 일지 21. enhanced for문 (for - each 문) [내부링크]

이전에 배운 배열에서 배열의 요소에 순차적으로 접근할 때 사용할 수 있는 구문입니다. for-each 문을 사용하기 전에 for문을 통해 순차적으로 접근하는 것을 해볼게요. int[] ar = {1, 2, 3, 4, 5}; for(int i = 0; i < ar.length; i++) { System.out.println(ar[i]); } int[] ar = {1, 2, 3, 4, 5}; // int [] 배열 ar에 각 요소 1, 2, 3, 4, 5를 넣어주고 for(int i = 0; i < ar.length; i++) { // int 를 배열의 길이만큼(5만큼) 반복해줍니다. System.out.println(ar[i]); // 그리고 그 요소들을 하나씩 출력합니다. } 각 요소에 한 번씩 접근했습..

자바 기초 공부 일지 20. 1차원 배열, int [] 배열, 배열의 디폴트 초기화 (수정중) [내부링크]

배열은 자료의 구조 중 하나로, 동일한 타입의 데이터를 연속적으로 저장하여 하나의 변수 속에 묶어서 관리하는 자료 구조 입니다. 파이썬의 리스트라고 생각하시면 좋을 것 같아요. 배열의 자료는 기본 자료를 토대로 만드는 참조 자료입니다. int [ ] ref = new int [5]; 길이가 5개 짜리의 배열을 int 자료형으로 참조한다는 뜻이에요. int [ ] -> int 형으로 이루어진 배열을 참조한다는 의미입니다. int 형 배열은 그 자체가 객체 입니다. 배열을 만들 때에는 칸수를 정해서 만들기 때문에 최초 선언한 값으로 고정됩니다. 예제를 보면 보다 더 쉽게 알 수 있습니다. int [ ] ref = new int [5]; ref[0] = 7; // 값의 저장 : 첫 번째 요소 ref[1] = ..

자바 기초 예제문제 4. 입력한 문자열 비교해서 비교 결과 출력하기 [내부링크]

바로 직전에 Scanner 입력 콘솔에 대해서 배웠으니, 그것을 활용한 예제를 하나만 작성해보겠습니다. https://blue-dot.tistory.com/62?category=975496 자바 기초 공부 일지 19. 콘솔 입력(Scanner 클래스) 이전에 파이썬에서는 변수에 입력을 할 때 입력 콘솔로 input() 을 사용했습니다. https://blue-dot.tistory.com/9 파이썬 공부일지 7. 변수와 입력! 변수는 변할 수 있는 모든 자료를 의미합니다. 모든 자료 blue-dot.tistory.com 고정된 문자열의 값을 정해놓고, 내가 입력으로 받은 문자열이 같은지 다른지를 비교하고 그 비교 결과가 같으면 '같다' 아니면 '다르다'라고 출력하는 코드를 작성해볼게요. 우선 스캐너로 입력..

자바 기초 공부 일지 19. 콘솔 입력(Scanner 클래스) [내부링크]

이전에 파이썬에서는 변수에 입력을 할 때 입력 콘솔로 input() 을 사용했습니다. https://blue-dot.tistory.com/9 파이썬 공부일지 7. 변수와 입력! 변수는 변할 수 있는 모든 자료를 의미합니다. 모든 자료형의 값을 저장할 수 있습니다. 변수는 값을 저장하기 위해 이름을 지어서 사용하는 이름표예요. 식별자(이름표) 만드는 규칙을 한 번 더 blue-dot.tistory.com 자바에는 Scanner 이라고 하는 입력 콘솔이 있는데 이 클래스의 사용에 대해서 알아볼게요. 우선 자바에서 Scanner 을 사용하기 위해서는 import 로 호출을 해줘야하는데 java.util 패키지 안에 있으므로 경로를 설정해서 호출을 해줍니다. 스캐너는 기본적인 데이터 타입들 모두 Scanner ..

자바 기초 공부 일지 18. toString 메소드, printf 메소드 [내부링크]

toString 메소드 자바에서 생성되는 모든 클래스들은 모두 Object 라고 하는 자바의 기본 라이브러리에서 클래스를 상속받습니다. 그 중에 toSting이라는 메소드가 있는데, 이것은 객체가 가지고 있는 정보의 값을 문자열로 반환하는 메소드입니다. 생성된 인스턴스에 toString 메소드를 사용해볼게요. 출력값으로는 알 수 없는 문자열이 뜹니다.. 이것은 라이브러리에서 가지고 있는 순수 오브젝트의 to String 결과값으로 의미가 없는 디폴트값에 해당합니다. 이것을 본래 우리가 의도하고 싶은 대로 출력하려면 재정의가 필요합니다. 이제 Stirng 클래스로 toString 에 메소드를 재정의 해서 값을 리턴할 수 있도록 합니다. String 은 앞글자가 대문자인 클래스입니다. 이것은 자바 라이브..

자바 기초 공부 일지 17. String 클래스의 메소드, .concat(), equals, compareTo, compareToIgnoreCase, valueOf 함수 (수정중) [내부링크]

문자열 연결시키기 1. concat 함수 문자열을 연결 시킬 때 .concat 함수가 있습니다. 기존에는 + 연산자로 문자열을 합쳤었지만, concat 은 + 와 동작하는 방식이 다릅니다. + 는 정수, 실수, 문자열을 append 식으로 더해준다고 보시면 됩니다. concat 함수는 합친 문자열을 String 으로 변환시켜서 합치는데, 문자열을 추가할 때마다 새로운 인스턴스를 생성한다는 면에서 차이가 있습니다. (성능이나 속도 면에서도 좋지 않습니다..) 하단의 예제를 먼저 보겠습니다. package day14; public class Test06 { public static void main(String[] args) { String st1 = "Thrill"; // 사랑은 스릴... String..

자바 복습. this() 참조 변수 사용 [내부링크]

복습 https://blue-dot.tistory.com/57 자바 기초 공부 일지 15. 메소드 오버로딩, this 참조 변수 메소드 오버로딩이란 같은 이름의 메소드를 중복으로 만들 때를 의미합니다. 자바에서 한 클래스에 같은 이름의 메소드를 두 개 이상 받을 수 없지만, 매개변수의 개수 혹은 타입을 다르게 blue-dot.tistory.com 인생을 몇 년차를 살든 우리에게 필요한 것과 잃으면 안되는 것에 대한 것을 클래스와 메소드를 활용해서 작성해볼게요. this() 를 기필코 쓰겠다. 처음에 이렇게 작성했을 때에는 문법적으로는 맞지만 값에 오류가 떴어요. 자꾸만... 0년차를 살게 되는 거예요. package day14; class FeelingSoGood{ public int a; publi..

자바 기초 공부 일지 16. String 인스턴스 [내부링크]

String 을 생성하는 방법은 두 가지 입니다. String str1 = new String("Simple String"); String str2 = "The Best String"; 둘 다 인스턴스가 생성되고 그 값이 반환됩니다. 이 두 가지의 방법에 차이점이 있는지 확인해볼게요. String word1 = new String ("보드마카"); String word2 = new String ("보드마카"); String word3 = "스피커"; String word4 = "스피커"; new 사용 : 문자열의 내용과 무관하게 새로운 객체를 생성합니다. 내용이 같고 다르고를 제외하고 새로운 참조 자료가 만들어집니다. word 1의 보드마카라는 문자열이 메모리에 올라갑니다. word 2의 보드마카라는 문..

자바 기초 공부 일지 15. 메소드 오버로딩, this 참조 변수 [내부링크]

메소드 오버로딩이란 같은 이름의 메소드를 중복으로 만들 때를 의미합니다. 자바에서 한 클래스에 같은 이름의 메소드를 두 개 이상 받을 수 없지만, 매개변수의 개수 혹은 타입을 다르게 하면 같은 이름을 사용할 수 있습니다. 메소드 오버로딩은 1. 메소드의 이름이 같을 것 2. 메소드의 매개변수 개수 또는 타입이 다를 것 두 가지 조건이 만족되어야 합니다. 메소드의 매개 변수가 여러 가지일 때 매개변수 정보가 다른 메소드가 있을 때에는 컴파일이 판단을 해서 오버로딩을 합니다. 만약 int 정수 하나가 들어가는 메소드a와 int 정수, double 실수가 하나씩 들어가는 메소드b가 있을 때 3, 3.15 의 값을 매개변수로 넣는다면, 메소드 b를 출력합니다. 정수와 문자열이 있을 경우에 어떤 메소드를 오버..

자바 복습. 상수 constant, 리터럴 literal [내부링크]

복습 https://blue-dot.tistory.com/41 자바 기초 공부 일지 5. 상수 (리터럴), 자료형 변환 변수에 값을 딱 한 번 할당할 수 있으면 상수입니다. 한 번 할당된 값은 변경이 불가능하며 키워드 final 이 붙어있는 변수를 상수라고 합니다. ex) final in MAX_SIZE = 100; (초기화 하지 않으면 딱 한 blue-dot.tistory.com 상수constant : 이름을 가진 메모리 공간. 메모리에 저장된 데이터를 수정할 수 없음. 선언과 동시에 초기화해야함. final 키워드 사용. final 키워드로 상수를 초기화할 때에는 상수의 이름은 대문자를 사용해서 선언할 것. (언더스코어로 띄어쓰기를 쓴다. 캐멀 케이스처럼) final int EXAM = 10;..

자바 복습. 변수의 선언 [내부링크]

복습 https://blue-dot.tistory.com/39 자바 기초 공부 일지 3. 자바 변수 선언하기, 정수의 표현 방법(2진법 표현식) 자바는 변수를 선언할 때 변수의 이름과 용도를 같이 선언해야 합니다. ex) int num1; 최초로 변수를 만들 때 어떤 역할을 할지 적어주어야 합니다. (변수의 선언) int num1; // 변수 num1의 선언 num1 = blue-dot.tistory.com 변수의 종류 기본형 변수 primitive type 참조형 변수 reference type - 정수형 : byte, short, int, long - 실수형 : float, double - 문자형 : char - 논리형 : boolean 사용자가 직접 만들어서 사용하는 변수 변수 선언 방법..

자바 기초 공부 일지 14. System.out.println, public static void main(), static 초기화 블록 [내부링크]

이제 클래스 변수와 인스턴스 변수, 클래스 메소드와 인스턴스 메소드를 배웠으니 지금까지 의심없이 사용해왔던 System.out.println(" "); 을 보다 자세하게 살펴볼 수 있습니다. import java.lang (자바 랭귀지) 는 자바의 기본 기능이 내제되어 있는 패키지(표준 라이브러리) 이므로 import 를 작성하지 않아도 자동으로 적용이 됩니다. System.out.println(...) ; System -> 은 패키지에 묶여있는 클래스 이름 out-> 은 클래스 변수 이름 (출력관련 참조 변수 그 안에는 println 이라는 메소드가 있습니다.) println -> 은 out 이 참조하는 인스턴스 메소드 public static void main(String[] args) { sta..

자바 기초 공부 일지 13. 클래스 변수와 인스턴스 변수, 지역 변수, 클래스 메소드와 인스턴스 메소드 [내부링크]

필드 field 란 클래스에 포함된 변수들을 의미합니다. 필드 안에서 변수들은 클래스 어디에 위치하는지에 따라 클래스 변수(static 변수, 정적 변수), 인스턴스 변수, 지역 변수로 나뉩니다. class Number{ static int num = 0; // 클래스 변수 String modelName; // 인스턴스 변수 void method() { int something = 10; // 지역변수 } 클래스 변수와 인스턴스 변수, 지역변수에 대해서 간단하게만 설명을 하자면 클래스 변수란 처음 static 으로 선언된 변수이며 인스턴스 변수란 클래스 내부에 선언된 변수이고 지역 변수란 메소드 블럭(메소드나 생성자, 초기화 블록 내) 안에 선언된 변수입니다. 자세한 것은 하단에서 함께 볼게요. ..

자바 기초 공부 일지 12. 생성자와 String 클래스 (수정중) [내부링크]

생성자(constructor) : 클래스 기반의 객체 생성시 동작하는 메소드로 파이썬에서의 생성자와 동일합니다. 자바에서는 new 로 생성이 됩니다. String 클래스는 자바의 표준 클래스로 만들기 전부터 자바에 존재하는 클래스입니다. 문자열 char 는 참조형이 아니지만 String 은 참조형입니다. 코드상에서 문자열 표현은 String 인스턴스의 생성으로 이어집니다. // 가급적 인스턴스 변수로 서로를 구별할 수 있게 해줍니다. (문자열을 이용해서) // 식별할 수 있는(인스턴스를 구분할 수 있는) 정보를 가지게 해줍니다. 자바의 생성자 만들기 규칙 1. 메소드 이름이 클래스 이름과 동일하다. 2. 반환형이 존재하지 않는다. 반환할 것이 없으면 void 라고 붙일 수 있게 되어 있는데, 생성자가 반..

자바 기초 공부 일지 11 . 클래스와 인스턴스, 삼각형의 넓이 구하기 [내부링크]

클래스는 데이터와 기능의 집합입니다. 클래스를 만드는 목적은 프로그램의 실행부에서 가져다 쓸 데이터 또는 기능을 정의하는 것이에요. 데이터와 기능이 든 주머니라고 생각하면 좋을 것 같아요. public class BankCustomer { public static void main(String[] args) { } } 만약 BankCustomer 이라는 main 클래스를 만들면서 이 클래스 안에서 쓸 다른 클래스를 만든다고 한다면 상단에 class를 추가해서 만들 수 있습니다. class Account{ int balance = 0; // 인스턴스 변수 void deposit(int money) { // 인스턴스 메소드(규칙 : static을 쓰면 안 된다.) balance = money; } void ..

자바 기초 예제문제 3. 제곱근을 구하기 (2의 n승 구하기) [내부링크]

제곱근을 구하는 코드를 위해 이번에는 2의 n승을 구하는 코드를 만들어볼게요. 인수로 정수를 하나 전달 받아서 2의 n승을 계산 및 반환하는 메소드를 정의합니다. 재귀 형태로 정의하고 이를 main 메소드에서 호출해봅니다. 2 ** 0 = 1 2 ** 1 = 2 2 ** 2 = 4 package day13; /* * 인수로 정수를 하나 전달 받아서 2의 n승을 계산 및 반환하는 메소드를 정의합니다. * 재귀 형태로 정의하고 이를 main 메소드에서 호출해봅니다. * 2**0 = 1 * 2**1 = 2 * 2**2 = 4 */ public class Quiz02 { public static void main(String[] args) { System.out.println(fact(3)); } public ..

자바 기초 공부 일지 10. 메소드의 재귀 호출 [내부링크]

재귀에 대해서는 이전에 파이썬에서 한 번 알아본 적이 있습니다. 팩토리얼 함수를 예시로 했었습니다. https://blue-dot.tistory.com/21 파이썬 공부일지 18. 함수의 활용(재귀함수)! 이제부터는 앞서 배운 함수를 어떻게 활용하는지에 대해서 공부합니다. 1. 재귀함수 재귀함수는 함수 내부에서 같은 기능을 사용하는 거예요. 재귀는 자기 자신을 호출한다는 의미를 가지고 있 blue-dot.tistory.com 이번에도 팩토리얼로 표현하자면 n! = n * (n-1)! -> 이것을 코드로 그대로 옮기도록 돕는 것이 재귀 메소드입니다. 재귀적인 함수를 표현할 때 우리에게 반드시 필요한 것은 종료 조건입니다. 끝날 시점이 있는 재귀적 함수를 구현해야 안전하게 작성될 수 있습니다. return ..

자바 기초 예제 문제 2. 자바로 소수값 출력하기 [내부링크]

메인 메소드와 일반 메소드를 활용해서 소수값(prime)을 출력하는 프로그램을 만들어볼게요. 전달된 값이 소수인지 아닌지를 판단해서 소수의 경우 true 를, 소수가 아닌 경우에는 false를 반환하는 메소드를 정의하고 이 메소드의 호출결과를 기반으로 1 이상 100 이하의 소수를 전부 출력하는 main 메소드를 만듭니다. 우선 소수를 구하기 위해 pirme소수의 정의에 대해서 알아볼게요. 소수란 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수 입니다. 즉, 나머지가 0이 되는 것은 1과 자기 자신의 수 밖에 없습니다. 이것을 코드로 구현해볼게요. package day13; /* * 전달된 값이 소수(Prime)인지 아닌지를 판단하여 소수인 경우 true 를, * 소수가 아닌 경우 false를..

자바 기초 공부 일지 9. 메소드 method [내부링크]

메소드의 정의와 호출! 자바에서 메소드는 함수입니다. 함수가 클래스에 포함되어 있으면 메소드라고 하기 때문에 자바에서의 메소드는 통상적으로 함수를 뜻해요. 메소드는 여러 개를 작성해서 여러 번을 사용할 수 있기 때문에 코드가 복잡해지거나 가독성이 떨어지는 경우에 효율적이에요. 메소드 중 main 이라고 하는 코드 블럭이 시작점입니다. 이것은 자바의 규칙으로 프로그램은 main 에서부터 시작됩니다. 이것은 메소드 이름이 main 이고 중괄호 내 문장들이 순차적으로 시작하는 것입니다. main은 자바 프로그램의 엔트리 포인트라고 해요. 그 외의 메소드들은 모두 일반 메소드입니다. 즉 일반 메소드는 메소드 내부에서 선택적으로 불러낼 수 있는 코드 블럭입니다. package day13; public class ..

자바 기초 예제 문제 1. 중첩 반복문으로 구구단 만들기, 홀수만 더해서 더한 값 출력하기 [내부링크]

중첩 반복문의 예제를 만들어볼게요. 중첩 반복문을 이용한 예제로 가장 대표적인 것은 구구단 만들기 입니다. 2단부터 9단까지 구구단을 만들어볼게요. package day12; public class Test04 { public static void main(String[] args) { for(int i = 2; i < 10 ; i ++ ) { for(int j = 1; j < 10; j ++) { System.out.println(i + "x" + j + "=" + (i*j)); } } } } for(int i = 2; i < 10 ; i ++ ) { -> i 인수는 2단부터 9단까지 진행하기 위한 바깥의 반복문입니다. for(int j = 1; j < 10; j ++) { -> j 인수는 단수 안..

자바 기초 공부 일지 8. 반복문 while문, for문, break와 continue, 중첩 반복문 [내부링크]

while은 파이썬에서 사용하던 것과 기존 문법이 비슷합니다. while(반복 조건문){ 반복영역 } 조건문이 참일 경우에 하단의 반복영역이 계속 반복됩니다. 자바에서는 주로 while과 증감연산자를 같이 섞어서 사용합니다. package day12; public class Test03 { public static void main(String[] args) { int num = 1; while(num search 변수 값을 불리언 false 로 선언했어요. while(num num의 값이 100미만일 경우에 반복하는 while 조건문을 작성합니다. if(((num % 5 == 0)&& (num % 7 == 0))) { -> 만약 5와 7이 0으로 나누어 떨어지는 조건문이 성립을 한다면 search ..

자바 기초 공부 일지 7. 조건문 조건제어 if문, else, else if, switch문, break문 과일 바구니 예제 문제 [내부링크]

파이썬에서 배웠던 if 조건문과 형태가 무척 비슷하지만 조금씩 다른 자바. 다른 것보다 눈에 익혀두는 것이 시간이 걸릴 것 같아요 ^^ㅠ 자바의 if 조건문 알아볼게요. if (ture or false) { -> 불리언 데이터가 들어가거나 불리언 값이 나오는 조건문 조건 true 시 실행되는 영역 } package day12; public class if_ex { public static void main(String[] args) { // 조건 : 불리언 표현식 int age = 24; if(age 10) System.out.println("청소년"); else if(age > 5) System.out.println("어린이"); else System.out.println("아기"); } } 여기까..

자바 기초 공부 일지 6. 기본 연산자 [내부링크]

산술 연산자 사칙연산을 다루는 연산자로, 두 개의 피연산자를 가지는 이항 연산자입니다. 우선순위대로 먼저 적용을 하고 그 뒤에 결합방향대로 연산을 합니다. 결합방향 : 어느 방향으로 연산을 이어가는지에 대한 방향. 우선 순위가 같을 때 적용하는 기준입니다. 기본 처리 순서는 파이썬과 동일하게 곱셈과 나눗셈이 우선하고 그 뒤에 덧셈과 뺄셈이 이루어집니다. 괄호를 통해 연산자의 처리 순서를 변경할 수도 있습니다. (괄호 우선) 대입연산자 대입연산자는 변수에 값을 대입할 때 사용하는 이항 연산자입니다. 피연산자는 오른쪽에서 왼쪽으로 대입됩니다. and -> && or -> || not -> ! 단항연산자 주의할 점은 복합대입연산이 한 줄에 두 개 이상 쓰이면 하나만 대입됩니다. 가장 앞에 있는 대입연산..

AI 인공지능 수학 공부일지 6. 거듭제곱, 제곱근, 삼각함수, 난수 그래프 그리기 [내부링크]

거듭제곱은 같은 수 또는 문자를 여러번 곱하는 것을 거듭제곱이라고 합니다. 수식 y = x를 코드로 구현 파이썬에서 거듭제곱은 **으로 구현합니다 %matplotlib inline # %matplotlib inline 은 주피터 브라우저에서 그림을 곧바로 볼 수 있도록 # 내부에 그리게 해주는 코드 입니다. import numpy as np import matplotlib.pyplot as plt def my_func(x): a = int(input()) return x ** a x = np.linspace(0,2) y = my_func(x) plt.plot(x, y) plt.xlabel("x",size=14) plt.ylabel("y",size=14) plt.grid() plt.show() %matpl..

자바 기초 공부 일지 5. 상수 (리터럴), 자료형 변환 [내부링크]

변수에 값을 딱 한 번 할당할 수 있으면 상수입니다. 한 번 할당된 값은 변경이 불가능하며 키워드 final 이 붙어있는 변수를 상수라고 합니다. ex) final in MAX_SIZE = 100; (초기화 하지 않으면 딱 한 번 초기화가 가능합니다. 상수는 선언과 동시에 초기화를 해줍니다.) final 기반의 상수를 선언할 때에는 모두 대문자로 짓는 것이 관례이며, 이름이 둘 이상의 단어로 이루어진 경우에는 언더바로 연결하는 것이 관례입니다. (스네이크 표기법) 반드시 선언과 동시에 초기화를 해줍시다. package day11; public class test02 { public static void main(String[] args) { int number; number = 3; number = ..

자바 기초 공부 일지 4. 자료형 (정수형, 문자형) [내부링크]

정수 자료형 int, double 정수 자료형 중 가장 안정적인 자료형은 정해져 있습니다. 정수 값을 표현하는 키워드는 4개이지만, 그 중에 int 를 자바에선 표준으로 자동으로 취급하고 있습니다. System.out.prinln(120); 으로 했을 때 특별히 언급한 바가 없다면 int 로 처리가 됩니다. 정수형 덧셈을 하면 자료형과 상관없이 int형 덧셈을 진행하기 때문에 short 형 변수를 사용했을 때에는 오류가 발생할 수 있습니다. 실수 자료형에서는 double 로 인식을 합니다. double 이 자릿수가 길기 때문에 정밀도가 높아집니다. 즉, 자바에서는 정수는 int 로, 실수에서는 double 로 사용하시는 것이 가장 안전합니다. 바이트 수를 절약하고자 하는 목적이 있다면 의도적으로 다른..

자바 기초 공부 일지 3. 자바 변수 선언하기, 정수의 표현 방법(2진법 표현식) [내부링크]

자바는 변수를 선언할 때 변수의 이름과 용도를 같이 선언해야 합니다. ex) int num1;

자바 기초 공부 일지 2. 자바의 간단 소개, 이클립스Eclipse 설치 [내부링크]

자바는 클래스 자체가 실행될 수 있는 파일의 형태이기 때문에 클래스의 모음 혹은 집합입니다. 자바를 시작할 때에는 클래스를 만드는 것부터 시작합니다. 클래스를 시작할 때에는 대문자로 시작하는 것이 같습니다. 메소드 - 자바가 꼭 가져야하는 기능 main 이라는 메소드가 포함이 되는 것으로 시작합니다. main은 엔트리포인트 (프로그램이 여기부터 시작한다 라고 하는 약속) 입니다. main 메소드 안의 문장들이 순차적으로 실행됩니다. 파이썬에서는 영역을 구분할 때 들여쓰기를 사용하지만, 자바에서는 들여쓰기가 필수는 아니고 중괄호를 통해서 한다. 문장의 끝에는 세미콜론을 붙여서 끝을 표시합니다. 즉, 자바는 명령어를 작성할 때 명령이 여기까지라는 기호를 작성해주어야 합니다. 파이썬에서 print 로 사용되는..

자바 기초 공부 일지 1. 자바 JDK 설치와 환경 변수 설정, 자바와 파이썬의 차이점 [내부링크]

오늘부터 새로 자바에 대해서 공부를 시작합니다... 파이썬과 같이 병행해서 자습해야겠어요... 아자자 새출발 ~ 우선 오라클 사이트에서 JAVA JDK 를 다운로드 받아야 합니다. (저는 이 과정에서 조금 헤맸어요...) 구글 검색창에 java jdk download 를 검색하신 후에 각 운영체제에 맞는 설치 프로그램을 다운로드 받아주세요. 저처럼 헤매시던 분들을 위해 다운로드 링크를 연결해드립니다.. https://www.oracle.com/java/technologies/downloads/#jdk19-windows Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support availa..

AI 인공지능 수학 공부일지 5. matplotlib 기초 [내부링크]

이전에 Numpy 배열의 기본을 배워보았다면 이제 그래프 그리기를 해볼 거예요. 인공지능에서는 데이터를 가시화 하는 것이 중요하기 때문에 matplotlob 모듈을 사용합니다. matplotlib 모듈은 그래프를 그리거나 이미지 표시, 간단한 에니메이션 동작 같은 것을 수행합니다. 그래프를 그릴 때에는 matplotlib 의 pyplot 이라는 모듈을 import 해야합니다. import matplotlib.pyplot as plt -> 주로 as 를 사용해 plt 으로 명명해요. import numpy as np -> 앞서 배웠던 Numpy 모듈입니다. matplotlib 로 그래프를 그릴 때에는 Numpy 의 linspace() 함수가 자주 사용됩니다. linspace() : 일정한 간격을 가진 50..

AI 인공지능 수학 공부일지 4. Numpy 기초 행열 [내부링크]

Numpy 라는 파이썬 확장 모듈은 인공지능을 구현할 때 쓰는 벡터와 행렬을 주로 다룹니다. 처음에 모듈을 실행할 때에는 파이썬의 다른 모듈들과 동일하게 import numpy 로 호출하는데 통상적으로 as np 를 붙여서 np로 이름을 붙여 사용합니다. (이렇게 하면 이후에 .np 라는 이름으로 Numpy 모듈을 다룰 수 있습니다. import numpy as np Numpy의 배열은 여러 함수로 만들 수 있습니다. 각 함수들을 살펴볼게요. array() 함수를 통해 python의 리스트로 직접 배열을 만들 수 있습니다. (1) 리스트에 범위 값 넣기 import numpy as np a = np.array(list(range(6))) print(a) .array() 함수에 리스트를 넣어서 배열을 ..

AI 인공지능 수학 공부일지 3. 판다스 pandas 모듈 [내부링크]

두 개의 모듈을 추가로 설치하고 이번 포스팅에는 판다스 모듈만 정리해볼게요. 1. pandas 2. openpyxl 설치하는 방법은 지난 번 포스팅을 참고해주세요. https://blue-dot.tistory.com/32 AI 인공지능 수학 공부일지 1. 파이썬 개발 환경 아나콘다Anaconda 설치하기, 주피터 Jupyter 실행하기 오늘부터 인공지능 수학을 공부합니다. 인공지능용 수학은 필요한 분야의 수학이 정해져 있습니다. 벡터, 행렬, 텐서 등을 다루는 선형대수, 상미분, 편미분, 연쇄법칙 등을 다루는 미분, 표준편 blue-dot.tistory.com 데이터 구조를 분석하는 판다스의 데이터 프레임에 대해서 알아볼게요. 데이터의 가장 흔한 형태 중 하나는 바로 '행과 열'의 2차원 구조입니다. 파..

AI 인공지능 수학 공부일지 2. BeautifulSoup로 네이버 금융 코스피 지수 추출하기 [내부링크]

이제 BeautifulSoup 로 웹사이트의 데이터를 추출하는 것을 해볼게요. 전에 파이썬에서도 해봤지만 조금 더 자세히 보겠습니다. 웹 상에서 정보를 본다, 라고 할 때 웹과 인터넷은 동의어가 아닙니다. 인터넷이라는 망 안에서 정보를 교환하기 위해 사용되는 프로그램이 '웹' = 소프트웨어 입니다. www.naver.com 이라고 검색을 해서 웹 서핑을 할 때 입력하는 창을 주소창이라고 합니다. = url (Uniform Resource Locator) 주소창에 주소를 입력하고 엔터를 누를 때 서버의 정보를 요청을 하고 그에 www.naver.com 에서는 응답을 통해 정보를 전송합니다. 만약 어떤 웹 사이트에서 정보를 가져오고 싶을 때 우리가 익히 알고 있는 문자열 함수로는 웹 사이트의 코드에서 추출해..

AI 인공지능 수학 공부일지 1. 파이썬 개발 환경 아나콘다Anaconda 설치하기, 주피터 Jupyter 실행하기 [내부링크]

오늘부터 인공지능 수학을 공부합니다. 인공지능용 수학은 필요한 분야의 수학이 정해져 있습니다. 벡터, 행렬, 텐서 등을 다루는 선형대수, 상미분, 편미분, 연쇄법칙 등을 다루는 미분, 표준편차나 정규분포, 우도 등을 다루는 확률과 통계입니다.... 저는 정말 뼛속부터 문과에 수학을 포기한지 어언 1n년이 되었는데... ... 열심히.. 해보려구요... . ..! 아자자 ~~~! 우선 파이썬에서 가장 많이 사용하는 개발환경이 아나콘다Anaconda 를 설치해보겠습니다. 통합 개발 환경이란 개발을 위해 필요한 전반적인 환경을 제공하는 프로그램 또는 환경 그 자체 입니다. 아나콘다 또한 통합 개발 환경의 설치인 거예요. 즉 하위 프로그램을 보면 아나콘다라는 프로그램이 설치된 것이 아니라 개발 환경이 설치된 것..

파이썬 코드. Beautifulsoup4 (bs4) 네이버 증권에서 코스피 지수 가져오기 [내부링크]

BeautifulSoup 모듈은 웹페이지에서 자료를 추출하고 분석하는 모듈입니다. https://pypi.org/project/beautifulsoup4/ beautifulsoup4 Screen-scraping library pypi.org 현재 4 버전까지 출시되어 있고, 외부모듈이기 때문에 명령 프롬포트에서 직접 설치해야 합니다. 시작 -> 검색 -> cmd -> python 파일을 실행할 폴더로 이동 >> cd 파일경로 입력 >> pip install beautifulsoup4 (혹은 bs4) 엔터 설치 완료 # 네이버 코스피 지수를 추출하는 태그 ## from urllib import request # 소스를 가져와서 바이너리 형태로 읽어 들인다. import requests # 외부 모듈이므로 ..

파이썬 코드. Turtle 모듈(거북이 모듈) 키보드로 그림 그리기 [내부링크]

모듈 중에 교육용 모듈로 인기가 좋은 Turtle 거북이 모듈이 있습니다. 그래픽 모듈로 그림을 그릴 때 사용합니다. 거북이가 움직이면서 그림을 그리는 모듈이에요. https://docs.python.org/ko/3/library/turtle.html turtle — 터틀 그래픽 — Python 3.10.8 문서 turtle — 터틀 그래픽 소스 코드: Lib/turtle.py 소개 터틀(거북이) 그래픽은 아이들에게 프로그래밍을 소개하는 데 널리 사용되는 방법입니다. 1967년 Wally Feurzeig, Seymour Papert 및 Cynthia Solomon이 개발한 docs.python.org 키보드를 조작해서 거북이가 엉금엉금 기어다니며 그림을 그리는 코드를 만들어볼게요. 코드는 주석으로 설명을..

파이썬 공부 요약 노트 5. 문법 정리 (1) 문자열 출력 [내부링크]

https://dojang.io/ 파이썬 코딩 도장에서 기본 문법부터 다시 천천히 공부하고 있어요. 코딩 도장의 강의와 정리가 무척 잘 되어있으니 참조하실 분 참고! 코딩 도장 dojang.io 변수 여러 개 만들기 >>> x, y, z = 10, 20, 30 >>> x 10 >>> y 20 >>> z 30 변수 값 바꾸기 >>> x, y = 10, 20 >>> x, y = y, x >>> x 20 >>> y 10 input 값은 모두 str 문자열. 사칙연산을 하기 위해서는 정수 혹은 실수로 변환해야 한다. a = int(input('첫 번째 숫자를 입력하세요: ')) # int를 사용하여 입력 값을 정수로 변환 b = int(input('두 번째 숫자를 입력하세요: ')) # int를 사용하여 입력 ..

파이썬 공부 요약 노트 4. 예외, 오류 [내부링크]

오류의 종류 - 구문 오류 : 문법이 잘못 되어서 실행할 수 없는 문제 -> 코드를 다시 써야 해결 된다. - 실행 예외 : 문법은 맞지만 논리가 잘못 되어서 실행할 수 없는 문제 -> 예외. 앞뒤로 코드를 추가해서 대응할 수 있다. (예외처리) - 예외 처리 : 실행 예외에 대해서 대응하는 기법 기본 예외 처리 try : 예외가 발생할지도 모르는 코드 작성 except : 만약 예외가 발생하면 어떻게 할지 작성 else : 예외가 발생하지 않으면 발생하는 코드 except 는 각 예외 상황 별로 출력을 정할 수 있음 try에서 예외가 발생하는 것은 반복문에서 break가 발생하는 것과 동일하게 try는 끝난다. 오류가 두 건 발생한다면 가장 위에 있는 코드의 에러 구문만 출력하고 멈춘다. ..

파이썬 공부일지 21. key 키워드 매개변수(min, max) [내부링크]

리스트에서 min()함수와 max()함수로 최솟값과 최댓값을 구할 수 있었습니다. 만약 상품명과 가격이 담겨 있는 딕셔너리에서 상품명으로 가격의 최솟값과 최댓값을 구하려면 어떻게 할까요. 딕셔너리의 키 를 활용합니다. min() 함수와 max()함수에는 '어떤 값으로 비교'할 것인지 나타내는 key 라는 키워드 매개변수를 지정할 수 있습니다. 우선 상품들이 담겨있는 딕셔너리를 생성해줍니다. 딕셔너리는 { key : 값 }의 형태로 저장해요. items = [{ "상품": "어제 먹다 남은 파이", "가격": 21000 }, { "상품": "크리스마스 에디션 밤조림", "가격": 45000 }, { "상품": "우주대폭발 버튼", "가격": 72000 }] 상품을 모두 items 라고 하는 딕셔너리에 넣었..

파이썬 공부 요약 노트 3. 클래스 [내부링크]

객체지향 프로그래밍 - 여러 데이터간의 상호작용을 통해서 진행된다. vs 절차 지향 프로그래밍(프로시저 지향) - 정해진 시나리오대로 혼자 진행한다. ex) 자동차가 움직이는 것(자율주행프로그램은 오로지 자동차가 하는 것), 바이올린을 켜는 것. def creat_student(name, korean, math, english, science): return { "name" : name, "korean" : korean, "math" : math, "english" : english, "science" : science } def student_get_sum(student): return student["korean"] + student["math"] +\ student["english"] + stude..

파이썬 공부 요약 노트 2. 변수, lambda, map() [내부링크]

변수 : 자료에다 붙이는 이름표 함수 : 코드에다 붙이는 이름표 변수 형태 : 변수 = 자료 함수 형태 : def함수 () : 코드 변수를 사용할 때는 변수 이름만 적어도 되지만, 함수를 사용할 때에는 () 소괄호를 사용해야한다. (= 함수의 호출) 함수는 메모리에 저장되어 있고, 함수를 호출했다면 실행한 뒤 원래의 데이터로 돌아간다. 함수 내부는 독립적인 지역이다. 함수 안에서 만든 변수는 함수 안에서만 존재한다. 매개변수 : 함수에다가 자료 전달하기 매개변수를 사용하고 싶다면 함수를 만들 때 소괄호에다가 식별자를 추가한다. 식별자의 갯수가 매개변수의 갯수다 반환자료 : 함수로부터 자료 전달받기 반환자료는 오로지 하나만 사용할 수 있으며 사용할 때에는 retrun 으로 쓴다. def 함수명(..

파이썬 공부 요약 노트 1. 자료형 ~ 반복문 [내부링크]

프로그램 = 자료의 표현 + 자료의 처리 자료형 : 특정 자료가 어떻게 생겼는지 정의한 것 - 기본 자료형 : 숫자, 문자열, 리스트 등 - 리스트 튜플 문자열 - 인덱싱 : n번째 요소를 참조하겠다. - 슬라이싱 : n번째부터 n번째까지 잘라내겠다. 인덱스와 슬라이싱은 반드시 0부터 시작한다. 슬라이싱 할 때 마지막 인덱스는 세지 않는다. 슬라이싱은 콩 심은데 콩 난다! 리스트에 슬라이싱 하면 리스트가 나오고 문자열에 슬라이싱 하면 문자열이 나온다. 변수 - 자료에 붙이는 이름표 - 자료를 저장하기 위한 수단 - 변수 이름은 자유이나, 제약사항도 있다. 변수 규칙! 1. 문자와 숫자 그리고 _ 언더바 기호만을 사용할 수 있다. 2. 변수 이름에 숫자가 들어갈 수 있으나, 숫자로 시작할 수는 ..

파이썬 공부일지 20. 파일처리! [내부링크]

파일은 크게 텍스트 파일와 바이너리 파일로 나뉘는데, 이번에는 텍스트 파일의 파일처리에 대해서 알아봅니다. 기본적으로 파일을 열 때에는 open() 함수를 사용합니다. 파일 객체 = open(디렉토리 경로와 파일명, 문자열 읽기모드) 첫 번째 매개 변수로는 파일의 경로를 입력하고, 두 번째 매개 변수로는 파일의 읽는 방법을 지정합니다. 파일의 문자열 모드는 크게 세 가지가 있습니다. w write 모드 (새로쓰기 모드 ) a append 모드 (이어쓰기 모드) r read 모드 (읽기 모드) 파일을 닫을 때에는 close()함수를 사용합니다. 모든 파일은 open 후에 close 를 하는 버릇을 꼭꼭 가져야해요. 우선 문자열 읽기 모드 중 w와 a모드를 확인해볼게요. w와 a모드에는 특별한 기능이 있습니..

파이썬 공부일지 19. 함수 활용 (튜플, 람다)! [내부링크]

다음으로 함수 관련하여 편하게 쓸 수 있는 기능들로 튜플과 람다가 있습니다. 1. 튜플 리스트와 비슷한 자료로 리스트와 다른 점으로는 한 번 결정된 요소는 바꿀 수 없다는 것입니다. a = [ 요소, 요소, 요소 ] -> 리스트 a = ( 요소, 요소, 요소 ) -> 튜플 리스트는 [] 대괄호를 쓰지만 튜플은 소괄호() 를 씁니다. (소괄호는 튜플 뿐만 아니라 연산식을 만들 때도 씁니다.) 그 안에 여러개의 자료를 넣는데 쉼표로 구분합니다. 리스트와 동일하게 인덱싱을 할 수 있습니다. 튜플과 리스트는 생김과 기능이 비슷하지만 몇 가지 차이가 있습니다. - 튜플은 값의 변경이 불가능하지만, 리스트는 값의 변경이 가능합니다. - 튜플은 요소를 하나만 가질 수 있는 리스트와는 달리 한개의 리스트를 가지기 위해..

파이썬 공부일지 18. 함수의 활용(재귀함수)! [내부링크]

이제부터는 앞서 배운 함수를 어떻게 활용하는지에 대해서 공부합니다. 1. 재귀함수 재귀함수는 함수 내부에서 같은 기능을 사용하는 거예요. 재귀는 자기 자신을 호출한다는 의미를 가지고 있습니다. 가령 팩토리얼 이라는 연산자가 있는데 이것을 구하는 것으로 예제를 활용해볼게요. 팩토리얼은 n! 의 기호로 사용합니다. n! = n * (n-1) * (n-2) * (n-3) ... * 1 이렇게 연산을 이어가는 것을 팩토리얼이라고 합니다. ex) 5! = 5 * 4 * 3 * 2 * 1 이렇게 팩토리얼을 구현화할 때, 반복문으로 팩토리얼을 구하거나 재귀 함수로 팩토리얼을 구할 수 있습니다. 먼저 반복문으로 구해볼게요. def factorial(n): -> factorial () 함수를 만들어줍니다. output ..

파이썬 공부일지 17. 함수 만들기! [내부링크]

함수를 사용하는 것은 함수를 호출한다, 고 하고 함수를 호출할 때 괄호 내부에 넣는 여러가지 재료를 매개변수 또는 인수 또는 인자 라고 합니다. (인수라는 표현을 더 많이 씁니다.) 함수를 호출해서 최종적으로 나오는 값을 리턴값 이라고 합니다. 즉 표현식으로부터 내보내진 결과값입니다. print("금요일") 에서 print( ) 그리고 기본 매개변수의 값을 n=3 으로 입력했을 때 이것은 키워드 매개변수로 실행이 가능한 거예요. 결과값은 이렇게 나옵니다. 다음으로 리턴에 대해서 알아볼게요. 함수를 실행하고 나면 함수의 결과를 받아서 사용했습니다. 그값을 우리는 리턴값 이라고 하는데요 리턴은 함수를 실행했던 위치로 돌아가라는 뜻으로 함수가 끝나는 위치를 의미합니다. return 키워드를 만나는 순간 함수가..

파이썬 공부일지 16. 범위 자료형 range, 조건반복문 while! [내부링크]

숫자, 불, 문자열, 리스트, 딕셔너리... -> 표현 형태가 정해져 있습니다. range범위 의 경우에는 형태가 없습니다. 범위 자료는 함수 형태로 만들고 사용합니다. range(?????) 조건이 만족하는 동안에 문장을 반복합니다. for 와 while 반복문의 유형을 비교할 때 다음과 같은 차이점이 있습니다. - for : 횟수를 정해서 그만큼 반복합니다. - while : 조건을 정해서 False 될 때까지 반복합니다. 조건을 반복해서 활용해야 한다면 while 반복문을 쓰는 것이 유용할 거예요. while 반복문은 상태를 기반으로 반복하기 때문에 리스트에서 remove() 함수가 한 번당 하나의 값만을 제거할 수 있었지만 while 반복문을 사용하여 여러 개를 제거할 수 있습니다. 값이 존재하지..

파이썬 공부일지 15. 딕셔너리! [내부링크]

날씨가 갑자기 추워져서 옷을 어떻게 입어야할지 모르겠어요. 두껍게 입으면 공부하면서 졸리고, 얇게 입으면 학원 가면서 졸리고……. 외투를 도톰하게 입고 나오니 이제 정말로 겨울 같네요. 이번 겨울에는 멋지게 코딩할 수 있는 사람이 되어 있을까요. 힘내봅니다……. 오늘은 리스트에 이어 자료를 저장할 수 있는 딕셔너리에 대해서 공부해봅니다. 딕셔너리는 변수 = { } 의 형태로 사용합니다. 변수 = { 키 : 값, 키 : 값 } 콜론을 기준으로 앞에 있는 것은 '키', 뒤에 있는 것은 값 value 이에요. 값 : 자료형 무엇이든 올 수 있습니다. 키 : 숫자, 불, 문자열 정도만 올 수 있습니다. -> 키로 쓸 수 있는 자료형은 모두 immitable 입니다. (원본을 훼손하지 않습니다. 원본을 바꿀 수 ..

파이썬 공부일지 14. for 반복문! [내부링크]

이제 빠듯하게 따라가고 있어서 열심히 시간을 쪼개서 정리해볼게요! for 반복자 in 반복할 수 있는 것 : 반복하고자 하는 코드 반복할 수 있는 것에는 문자열, 리스트, 딕셔너리, 범위 등이 있습니다. 자료가 순차적으로 나열된 형태를 말해요. 지금까지 문자열과 리스트를 보았죠. 그럼 리스트를 넣어볼게요. for 반복을 할 때 [1,2,3,4] 리스트를 기반으로 반복하겠다. 리스트의 길이가 반복의 횟수가 됩니다. 리스트의 길이는 len()에 넣었을 때 4이므로 4번 반복되는 거예요. 리스트에 5를 추가하면 한 번 더 반복되어요. 반복자는 그럼 무엇일까요. 반복자는 5번 반복할 때마다 요소element를 저장하는 거예요. 즉 변수의 일종이죠. 한 번 반복할 때마다 리스트의 값을 반복자에 저장해요. 한 번 ..

파이썬 공부일지 13. 리스트! [내부링크]

이제 파이썬으로 본격 코딩을 조금조금씩 맛보고 있는데, 진짜 재밌네요! 무에서 유를 만드는 느낌... 정말 망망대해에서 그물 짓고 있는 기분이에요.. 다시 또 시작해봅시당. 지금까지 공부한 자료형은 문자열, 숫자, 불. 세 가지 입니다. 이제 새로운 자료형으로 리스트를 공부해볼게요. 지금까지 사용한 숫자, 문자, 수식 같은 것이 개별적인 한 개의 자료였다면 리스트는 여러가지를 모아서 하나로 만드는 거예요. 가령 필통 속에 지우개, 연필, 종이, 자, 칼이 들어있다면 그것들은 모두 독립적인 자료이고 그것을 하나에 담고 있는 필통은 리스트예요. 리스트에 자료를 넣는 것은 [ ] 대괄호를 열었다가 속에 자료를 담고 닫으면 돼요. 그 안에 담긴 자료들을 요소element 라고 합니다. 반드시 그 사이사이에 쉼표..

파이썬 공부일지 12. if 조건문, 대화 프로그램 만들기! [내부링크]

false 로 변환되는 값 if 조건문의 매개변수에 불이 아닌 다른 값이 올 때는 자동으로 이를 불로 변환하게 됩니다. Flase 로 변환되는 값은 None, 0, 0.0, 빈 컨테이너 입니다. 컨테이너는 어떤 것을 포함한다는 뜻이에요. 그렇기 때문에 빈 컨테이너는 값이 없는 상태예요. 빈 문자열 (따옴표와 따옴표 사이. ""), 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등) 이 이외에는 모두 True 로 변환됩니다. 만약 어떤 데이터가 True 인지 False 인지 모를 경우에는 bool( ) 함수를 씁니다. bool(x) : x가 뭘로 해석되는지 True 혹은 False 로 알려줍니다. pass 키워드 나중을 위해서 비워두는 구문입니다. 가령 프로그래밍을 하며 전체 골격을 잡아 놓고 세부 사..

파이썬 공부일지 11. if 조건문 예제와 else, elif 활용! [내부링크]

if 조건문의 예제를 먼저 보겠습니다. if 조건문으로 날짜와 시간을 출력해서 결혼식 날짜를 예약해볼게요. 후에 배울 모듈이라는 기능을 활용해서 datetime 이라는 기능을 먼저 가져와야 합니다. (이것은 후에 배워요!) 그런 다음 datetime.datetime.now() 함수를 사용해서 현재의 시간을 구하고 now 라는 변수에 대입해줄게요. 저는 딱히 외우려고 하지 않고 그냥 쓰면서 익숙해지려구요! import datetime now = datetime.datetime.now() 이제 예약할 수 있는 날짜를 입력해봅니다. print("결혼식은 언제일까.") year = int(input("몇 년에 하나: ")) month = int(input("몇 월에 하지: ")) 이제 사용자가 각각 입력한 년도..

파이썬 공부일지 10. 불 자료형과 if 조건문! [내부링크]

오늘도 새로운 공부를 시작합니다. 조건문의 시작! 파이팅합시다~ 1. 불 자료형 참과 거짓의 값을 표현하는 연산자를 불boolean 이라고 합니다. 불은 오직 True 와 False 값만을 가집니다. 파이썬에서 True와 False 의 첫 글자는 반드시 대문자로 기재해야 합니다. 만약 소문자로 기재하게 된다면 예외(에러)가 발생합니다. 불은 비교 연산자를 통해 만들 수 있습니다. == 같다 > 크다 != 다르다 >> ticket = 2 (티켓은 2장) >>> ticket > now = 2 (시간은 2시) >>>now >= 3 (오후 3시 이후) False >>> ticket = 3 Flase ※ 비교 연산이 논리 연산보다 연산 우선순위가 큽니다. (논리연산과 비교연산이 섞여 있다면 비교 연산이 먼저 실행..

파이썬 공부일지 9. 숫자 · 문자열 함수! [내부링크]

수업은 끝났으나 자습이 남아 있습니다. 8시간 내리 수업을 듣는 것보다, 지금까지 들었던 수업들을 정리할 수 있는 시간이 있다는 것이 얼마나 감사한 일인지 모르겠어요. 누군가에게 배우는 것도 중요하지만 자기의 것으로 만드는 과정도 참 중요한 것이겠죠... . 힘내봅니다... ... 이번에는 숫자와 문자열의 다양한 기능에 대해서 배워볼게요. format () 대표적으로 문자열의 format() 함수가 있습니다. 중괄호{} 를 포함한 문자열 뒤에 마침표 . 를 찍고 format() 함수를 사용합니다. "{} ".format () 이렇게요. 문자열의 {} 기호와 format () 함수 안에 들어가는 변수들이 차례차례 대응되어 문자열이 됩니다. >>> "{} {} {} ".format("사과", "딸기", "포..

파이썬 공부일지 8. inch -> cm 단위로 변경하기! [내부링크]

국민취업지원제도를 함께 진행하고 있어서, 면담으로 잠시 외출을 다녀온 사이 진도가 나가 있었어요. ㅠㅠ 빈 부분은 열심히 독학해야겠습니다. 여담이지만 국민취업지원제도 정말 좋습니다. 한달에 50만원씩 지원금을 지급해주는데 교육기관에서 지급하는 지원금과는 별개로 받을 수 있는 지원금입니다. 홍보 관련된 그 무엇도 받지 않았구.. 간단하게 링크만 걸어놓고 제 공부 하러 갑니다.. ... https://www.kua.go.kr/ https://www.kua.go.kr/ www.kua.go.kr 지금 만들 예시는 변수 참조와 input(), int() 함수로 적용할 수 있는 간단한 프로그램입니다. inch 를 cm 로 변환시키는 프로그램을 만들 거예요. 우선 숫자를 입력할 수 있는 input 을 입력해줍니다. ..

파이썬 공부일지 7. 변수와 입력! [내부링크]

변수는 변할 수 있는 모든 자료를 의미합니다. 모든 자료형의 값을 저장할 수 있습니다. 변수는 값을 저장하기 위해 이름을 지어서 사용하는 이름표예요. 식별자(이름표) 만드는 규칙을 한 번 더 보고 갈게요! https://blue-dot.tistory.com/5?category=972433 파이썬 공부일지 3. 파이썬 출력 용어들! 커피를 좀 마셨더니 덜 졸려요... 다시 공부해.. 봅니당... 파이썬을 출력하기 전에 출력에 있어서 사용되는 가장 기본적인 용어들을 먼저 정리해볼게요. 영어로 말하자면 동사 명사 형용사의 blue-dot.tistory.com 변수를 활용하는 과정! 1. 변수를 선언합니다. pi 를 3.14 로 사용하겠다고 변수를 선언합니다. (pi라는 것을 3.14 로 쓰겠다고 하는 의미..

파이썬 공부일지 6. 숫자 자료 연산하기! [내부링크]

점심시간까지 세 시간이나 남았어요. 오늘은 국민취업지원제도를 신청한 것이 있어서 고용센터에 상담을 받으러 가야합니다. 취업과 관련된 상담을 필수적으로 세 번 진행해야 하는데, 취업을 위한 과정을 수강하고 있어도 학원 도중에 필수적으로 세 번은 외출하고 상담을 받아야 한다고 하더라구요. ^^ㅠ 이따 수업 도중에 나가야하니... 힘내서 예복습 해볼게요. 이번에는 수학시간... ! 숫자 자료형을 볼게요. 숫자는 두 가지로 구분됩니다. - 정수형 integer : 소수점이 없는 숫자 정수 구분하기 : 0, 양의 정수, 음의 정수 - 실수(부동 소수점)floating point, floating number, float : 소수점이 있는 숫자 실수 구분하기 : 양의 실수, 음의 실수 소수점이 들어가면 무조건 실수..

파이썬 공부일지 5. 문자열 연산자! [내부링크]

오늘도 공부를 시작해봅니다.. 아침에 학원 올 때 시간을 자꾸 놓쳐서 아침 식사를 못 하고 나와요. 시리얼이랑 우유는 챙겼는데, 배고파서 점심까지 제정신을 유지할 수 있을지 모르겠습니다. 아무튼 오늘부터는 연산자 공부! 문자열 연산자에 대해서 배워볼게요. 문자열 연결 연산자 + 더하기 기호로 '숫자'를 더하거나 '문자열'을 연결할 수 있습니다. (= 숫자를 더하거나, 문자열을 이어붙인다.) >>> 1+1 #숫자의 더하기 연산자 2 >>> "1"+"1" #문자열의 연결하기 연산자 '11' # 연산자는 + 이고 " 1 " 혹은 1 은 피연산자가 됩니다. 그럼 1+"1" 은 값이 어떻게 나올까요? 숫자+문자열 이 가능한지 해보면... 역시 오류가 뜹니다. ^-^ 정수와 문자열을 더하는 것은 불가능해요. Typ..

파이썬 공부일지 4. 자료형과 문자열! [내부링크]

대체 파이썬을 배우는데 자료형과 문자열을 왜 배우는 거지? 내가 하고 싶은 것은 파이썬으로 인공지능 배우고 자비스 하나 만드는 건데 굳이 다 아는 자료를 또 알아야 하나? ……하고 생각했는데요. 아니더라구요……저는 그냥 무식한 마블덕 초짜였습니다… 역시 무지는 무례입니다……. 자료를 자료형에 맞게 모으고, 처리 과정을 거쳐서 차근차근 더 큰 자료형을 만들면서 이루어지는 것이 프로그램이라고 하더라구요. 가장 기본적인 자료의 의미를 알고 쓰임새를 알아야 더 큰 프로그램을 만들 때 기초부터 탄탄한 것을 만들 수 있다고 합니다. 나무… 를 자를 때 도끼 날을… 갈듯……… 무협에서 무공을 쌓을 때…… 심신의 자그마한 내공부터… 단련하듯………자비스 만들 때…… ……아니 자비스 어케 만드는지 모르니까 이건 됐구…… ..

파이썬 공부일지 3. 파이썬 출력 용어들! [내부링크]

커피를 좀 마셨더니 덜 졸려요... 다시 공부해.. 봅니당... 파이썬을 출력하기 전에 출력에 있어서 사용되는 가장 기본적인 용어들을 먼저 정리해볼게요. 영어로 말하자면 동사 명사 형용사의 역할들을 살펴보는 것이라고 생각하면 좋을 것 같아요. 간단하게 요약해보고 이것을 순서대로 하나씩 살펴볼게요. 표현식 값을 만들어내는 간단한 코드 키워드 의미가 부여된 특별한 단어로 사용자가 지정하는 이름으로 사용할 수 없음. (식별자로 사용될 수 없어요.) 식별자 프로그래밍 언어에서 이름을 붙일 때 사용 주석 프로그램을 설명할 때 사용하며 프로그램에는 어떠한 영향도 주지 않음 연산자와 자료 연산자는 값과 값 사이에 무언가 기능을 주는 것 자료는 어떠한 값 자체 print() 파이썬의 가장 기본적인 출력방법으로 괄호 안..

파이썬 공부일지 2. 파이썬 출력하기! [내부링크]

배부릅니다. 이제 점심도 맛있게 먹었겠다... 공부를 시작합니다. 이제 파이썬을 설치하고 설치 후의 설정까지 만져보았으니 실질적으로 코드를 작성해봅니다. 1. 비주얼 스튜디오 코드로 코드를 작성한 뒤에 -> 텍스트 에디터 2. 윈도우 파워셸에서 코드를 실행하는 것까지 해보겠습니다. -> 코드 실행기 비주얼 스튜디오 코드를 실행합니다. 처음 공부일지 1에서 이미 작성한 코드가 있었습니다. (굶주림에 지친 코드 참고) https://blue-dot.tistory.com/3 파이썬 공부일지 1. 파이썬 설치까지만! 그동안 다니던 회사를 그만두고, 난생 처음으로 낯선 컴퓨터 언어를 배우기 시작했습니다. 처음에는 영어처럼 문법을 외우고 단어를 외우는 것처럼, 컴퓨터 언어 또한 언어 배우듯이 하면 된다 blue-d..

파이썬 공부일지 1. 파이썬 설치하기! [내부링크]

첫 시작! 그동안 다니던 회사를 그만두고, 난생 처음으로 낯선 컴퓨터 언어를 배우기 시작했습니다. 저는 비전공자... 심지어 법학전공이에요! 컴퓨터로 해본 것이라고는 마비노기와 심즈밖에 없습니다. 이제 막 배우면서 정리하는 정리노트와 다름없으니 부족한 부분은 함께 공부하면서 채워가요. 처음에는 영어처럼 문법을 외우고 단어를 외우는 것처럼, 컴퓨터 언어 또한 언어 배우듯이 하면 된다기에 내 지난 십수년의 영어 경력 대비 실력을 상기하며 이건 내 갈길이 아닌가 이마를 백 번 정도 쳤지만 번듯한 이마 함몰될 즈음에서야 용기를 낸 셈이에요. 열심히 할테니 시작의 마음이 기죽지 않게 저랑 같이 공부해주세요! 정말 입문이자 기초부터 하니까 지금부터 탄탄하게 쌓아볼게요. 용어 정리 프로그래밍의 기본 용어를 정리합니다..