goaehfkwl의 등록된 링크

 goaehfkwl로 등록된 네이버 블로그 포스트 수는 166건입니다.

[ Java: List 인터페이스 / LinkedList 자료 구조 ] [내부링크]

List 인터페이스는 객체를 순서에 따라 저장하고 유지하는데 필요한 메서드가 정의되어 있습니다. 대표적인 예로 배열을 구현한 클래스인 ArrayList, Vector가 있고, 배열과 구현 방식은 다르지만 순차 자료 구조를 구현한 LinkedList가 있습니다. ArrayList 클래스 : 객체 순서를 기반으로 순차적을 자료를 관리하는 프로그램을 구현할 때 사용합니다. ArrayList를 활용한 회원 관리 프로그램 구현 MemberArrayList클래스를 만들고 아래와 같이 메서드 3가지를 구현합니다. addMember() 메서드 회원 추가 removeMember() 메서드 회원 삭제 showAllMember() 메서드 전체 회원 출력 package collection.arrayList; import java.util.ArrayList; import collection.Member; public class MemberArrayList { private ArrayList<Member>

주간일기 7) 쿠팡 알바 한 사람, 그게 바로 접니다 [07.16 ~ 07.22] [내부링크]

7월 3주차 07.16 (토) ~ 07.22 (금) 퇴화중인 그림 실력 뭐가 문제야 토요일 - 일요일 여지없이 산뜻한 주말 알바로 스타트- 알바를 가기 전 헬스장을 가고 토요일에는 알바끝나고 가족끼리 사우나로 모였다. 부모님께서 가족 전부 모였으면 하는 바람이 있어 혈육에게 되지도 않는 애교까지 부리며....ㅎ 찜찔방으로 오라고 했다. (모자이크는 찜찔방 이름) 다시봐도 없애버리고 싶네 아 열받아 전화로 올 것처럼 했으면서 월요일 이때 친구가 생일선물 챙겨주는 겸 퇴사기념(?) 모여서 밥 먹기로 했다. 일단 5시에 스벅에서 만나 퇴사썰을 듣기로 했다. 친구가 스벅에 미리 가서 공부하면 안된다고 해서 동네 카페에서 미리 공부하고 갔다. 메뉴는 카페모카 친구의 퇴사썰은 친구 회사가 원래 출근 시간 보다 1시간 일찍오는게 회사 규칙이란다. 여기서부터 이해가 힘들기 시작했고 그래서 1시간 일찍 가야되는데 30분 일찍 가서 패널티가 생겼는데, 그 패널티가 무급 36시간 일해야하는거였다. 이게

자일로스 설탕을 사용한 건강한 신라명과 아이스티 후기 [내부링크]

<신라명과> 라는 브랜드를 처음 봤다는 걸 알리고 시작한다.. 처음에 신라명과 아이스티라길래 신라면이랑 아이스티가 뭔 조합이지? 했었다는..^^ 무식해도 문제야 복숭아 맛과 청포도 맛이 왔는데 생긴 건 아래와 같다. 이쁘게 찍어보겠다고 혈육이 뽑아준 곰돌이도 데리고 왔는데 못 찍는 건 커버가 안되네 사진처럼 10개씩 들어있고 신라명과 공식 홈페이지에서 본 가격은 현재 4,900원이다 개당 490원 가성비 b 프로 다이어터러 답게 성분을 본다 허허 탄수화물 20g에 당류 18g인데 맞나? 찾아보니까 자일로스 설탕이 설탕과 비슷한 칼로리지만 몸에 흡수를 줄여준다고 한다. 기존 설탕보다 건강하게 먹을 수 있다는 점 춘식이 컵으로 복숭아 맛과 샤인머스켓 청포도 맛 다 먹어봤는데 복숭아맛: 흔히 아는 아이스티맛 청포도맛: 여러분이 아는 그 청포도 사탕맛 으로 정리할 수 있다. 결론적으로 설탕으로 된 아이스티 먹을래? 아니면 자일로스 설탕으로 된 아이스티 먹을래? 가 된다. 지금 할인된 가격으

[ Java: ArrayList로 스택과 큐 구현하기 / 순서 없는 클래스와 Iterator ] [내부링크]

스택은 상자를 쌓듯이 자료를 관리하는 방식입니다. 중간에서 상자를 꺼내면 상자 더미가 무너질 수 있습니다. 이처럼 스택은 맨 나중에 추가된 데이터를 먼저 꺼내는 방식 (Last In First Out: LIPO)입니다. 큐는 일상생활에서 가장 많이 사용하는 방식입니다. 줄을 선 대기열처럼 먼저 추가된 데이터부터 꺼내어 사용하는 방식 (First In First Out:FIFO)입니다. 마치 편의점에서 물건을 진열하는 선입선출방식과 같아요. 자바에는 Stack 클래스와 Queue 인터페이스가 정의되어 있습니다. 하지만 사용자가 직접 구현한 방식이 더 편리할 때도 있기 때문에 그림과 함께 ArrayList를 활용해 스택과 큐를 구현하겠습니다. ArrayList로 스택 구현 스택에 자료를 추가하는 것을 push(), 자료를 꺼내는 것을 pop(), 스택에 가장 최상층을 top이라고 합니다. 아래와 같이 MyStack 클래스를 만들고 ArrayList를 생성해 push()와 pop()을 간

[ Java: Set 인터페이스 / HashSet, TreeSet ] [내부링크]

주민등록번호, 회원 아이디와 같이 중복을 허용하지 않고, 순서가 상관없는 경우 Set 인터페이스를 사용합니다. Set 인터페이스의 대표 클래스로 HashSet과 TreeSet이 있습니다. HashSet 클래스 HashSet: 집합 자료 구조 구현, 중복을 허용하지 않음 겁먹지 말고 위 의미를 쉽게 알아보도록 아래 예시를 통해 살펴보겠습니다. package collection.hashset; import java.util.HashSet; public class HashSetTest { public static void main(String[] args) { HashSet<String> hashSet = new HashSet<String>(); hashSet.add(new String("정재승")); hashSet.add(new String("김영민")); hashSet.add(new String("김명선")); hashSet.add(new String("김난도")); hashSet.a

[ 책: 우리가 간신히 희망할 수 있는 것 / 김영민 ] 리뷰 [내부링크]

< 우리가 간신히 희망할 수 있는 것 > 김영민 [ 책 소개 ] “추석이란 무엇인가”를 삐딱하게 되묻고 “아침에는 죽음을 생각하는 것이 좋다”고 담담히 설파하던 칼럼계의 아이돌, 무심한 듯 세심한 에세이스트, 요즘 가장 핫한 지식인 김영민 교수(서울대 정치외교학부)가 돌아왔다. “반짝반짝 ‘아침’의 멀쩡한 정신으로 생각의 근육을 써서 ‘죽음’이라는 인간의 조건에 대하여 고민”해보라며 첫 산문집을 펴낸 지 1년 만이다. 새 책 『우리가 간신히 희망할 수 있는 것』은 ‘논어’ 이야기다. “실패할 것임을 알면서도 그 실패를 향해 나아간” 공자라는 이름의 한 사람, 그리고 여럿이 어울려 사는 세상사 속 ‘사람됨’과 ‘사람살이’에 대한 고민이 담긴 『논어』라는 텍스트를 사유한 흔적이다. 그리하여 지금 여기의 우리에게 “삶과 세계라는 텍스트를 읽을 줄 아는 것”의 가치와 저력을 특유의 멋스러운 유머, 번뜩이는 지혜로 일깨우는 잠언이다. 고전 텍스트를 읽음을 통해서 우리가 간신히 희망할 수 있는

주간일기 6) 쿠팡 알바 장렬히 실패 [07.09 ~ 07.15] [내부링크]

7월 2주차 07.09 (토) ~ 07.15 (금) 토요일-일요일 헬스장 갔다가 단백질 쉐이크 먹고 평소처럼 편의점 알바 하러 가는데 공원에 비둘기들이 즐비해있었다. 너네 오늘 모임이구나? 비둘기들이 색깔도 다양해서 신기했다. 나도 한 마리 길러야되나 알바를 끝마치고, 배가고파 집가서 밥을 해먹었다. 양 무슨 일이지? 이상하다 약 5.5인분 제육볶음을 양성하고 부모님과 같이 저녁을 먹었다. 다음날 편의점 알바를 끝마치고 부모님께 가족모임을 하자는 연락을 받았다. 가족 모임 장소는 정겨운 사우나였고 맛있는 떡볶이와 순대를 먹었다. 혈육은 자기 집에서 숨쉬느라 바쁘다고 안왔다. 월요일 요즘 유툽에서 자주 보이던 요거트 간식이 있었는데, 요거트에 토핑올리고 얼려먹는 간단한 레시피였다. 비주얼 괜찮고(?) 친구랑 영상통화하면서 먹어봤는데 친구 曰 "너 이빨 괜찮아? 이 부러지는 소리 나는데?" 뭐지? 사람들 다 맛있게 먹던데 요거트 안얼리고 그냥 먹는게 약 153245배 맛있다. 밥대신 요

[ Java: 제네릭 / 제네릭 프로그래밍 ] [내부링크]

제네릭이란? 제네릭(Generic) 프로그래밍: 어떤 값이 하나의 자료형이 아닌 여러 자료형을 사용할 수 있도록 프로그래밍하는 것 +) 제네릭 프로그래밍은 자바 5에서 처음 등장했고, 기능이 추가 되고 있습니다. 제네릭의 필요성 예를 들면, 프린터에 쓰이는 재료는 여러가지가 있을 수 있습니다. 입체 모형을 만드는 경우 파우더나 플라스틱 액체를 사용해요. 이를 통해 코드를 작성해보겠습니다. 3D 프린터 재료가 파우더인 경우 package genericex; public class ThreeDPrinter { private Powder material; public void setMaterial(Powder material) { this.material = material; } public Powder getMaterial() { return material; } } 3D 프린터 재료가 플라스틱인 경우 package genericex; public class ThreeDPrinter

[ Java: 자료형 제한&lt;T extends 클래스&gt; / 제네릭 메서드 ] [내부링크]

제네릭 클래스에서 T자료형에 자료형 제한을 할 수 있습니다. <T extends Material>을 사용한 코드는 다음과 같습니다. package generics; public class GenericPrinter<T extends Material> { private T material; … } 만약 Material 클래스를 상속받지 않은 클래스를 사용하면 오류가 발생합니다. T 위치에 특정 인터페이스를 구현한 클래스를 넣을 수도 있습니다. <T extends 클래스>로 상위 메서드 사용 public class GenericPrinter<T> { private T material; } extends 예약어를 사용하지 않을 경우 T를 컴파일 할 때 Object 클래스로 변환되며 Object가 제공하는 메서드만 사용할 수 있습니다. extends 예약어를 사용할 경우 상위 클래스(Material)에서 선언하거나 구현한 메서드를 모두 사용할 수 있습니다. package genericex

#4) 새로운 시장과 경영 트렌드 [2022] [내부링크]

Intro) 한국경제 대전환기, 새로운 정부의 과제 (최영기-한림대학교 경영학부 객원교수) 경제 대전환은 산업의 대전환이고 그에 따른 직업의 변동과 직무의 전환을 수반한다. 구산업의 저항과 고통이 따르겠지만 창조적 파괴와 식산업으로 성장과 고용 창출의 새 돌파구를 열어야 한다. 정부는 신기술과 신산업이 꽃을 피우도록 규제를 합리화하고 혁신 금융과 핵심 인재 육성에 힘을 쏟아야 한다. 디지털 전환의 시대에는 기업의 성장 전략도 달라져야 한다. 조직 내부에서 역량을 구축하고 신제품을 개발하기보다는 핵심 역량을 인수하는 방식의 비유기적 성장이 더 효과적이다. 다음 정부에서 가장 첨예한 갈등이 예상되는 쟁점은 사회안전망의 사각지대를 어떻게 해소하고 재원을 어디서 충당할 것이냐의 문제다. 01) 복지국가 역사의 분기점에 서다 (양재진-연세대학교 행정학과 교수) 유승민 전 의원은 공정소득이라는 이름하에 *역소득세(NIT, Negative Income Tax)방식의 기본소득을 공약으로 내걸었다.

[ Java: 컬렉션 프레임워크 ] [내부링크]

프로그램 실행 중 메모리를 유지·관리하기 위해 자료구조를 사용합니다. 자바에서는 자료구조를 java.utill 패키지에서 제공하며, 이를 컬렉션 프레임워크(collection framework)라고 합니다. 자바에서 제공하는 자료 구조 라이브러리를 살펴봅시다. 먼저 자바 컬렉션 프레임워크의 전체 구조는 아래와 같습니다. 전체 구조는 Collection 인터페이스와 Map 인터페이스 기반으로 이루어져 있습니다. Collection 인터페이스: 하나의 자료를 모아 관리하는데 필요한 기능 제공 Map 인터페이스: 쌍(pair)으로 된 자료를 관리하는데 필요한 기능 제공 각 인터페이스를 구현한 클래스는 그림에서 표현한 것 외에도 매우 많습니다. 주요 클래스를 위주로 설명하겠습니다. Collection 인터페이스 분류 설명 List 인터페이스 순서가 있는 자료 관리, 중복 허용 ex) ArrayList, Vector, LinkedList, Stack, Queue Set 인터페이스 순서가 정

주간일기 5) 저.. 생일이었습니다. [07.02 ~ 07.08] [내부링크]

7월 1주차 07.02 (토) ~ 07.08 (금) 7월 2일 토요일 독서 스터디가 있는 날..^^ 독서모임 책인 지리의 힘을 완독하고 블로그에 후기를 올렸다. 읽기 힘들었다고 찡찡대는 게 반인 것 같지만ㅎ [ 책: 지리의 힘 / 마샬 ] 리뷰 < 지리의 힘 > 마샬 [ 책 소개 ] 세계는 왜 ‘지리’를 두고 분쟁하는가? 지리라는 렌즈를 통해 세계... blog.naver.com 화상으로 독서 모임을 진행하며, 인상 깊었던 구절이나 토론할만한 주제를 선택해서 의견을 말하는 방식으로 독서 모임이 진행된다. 아래와 같이 중간 중간 개그요소도 있다. 일요일에는 헬스장 찍고 알바 찍고 이른 나의 생일파티를 했다. 사진 찍지 말라고 잼민펀치를 날리는 중 행동은 거칠었지만(?) 고마운 마음은 이루 말할 수 없었다. 옷이랑 가방이랑 제모기.. 잔뜩 이것저것 선물로 받았는데 역시 내 털 챙겨주는 사람은 친구들밖에 없네 맛난거 많이 먹고 더워서 중간에 자고 그랬는데, 요즘 날씨 너무 덥다. 잉여롭게

거기 공대생 멈춰주세요. &lt; 정보처리기사 &gt; 그 시나공 맞아요 [내부링크]

일단 조카가 막 쓴 듯한 글씨로 맞이해서 조금 죄송합니다. 네 저는 바로 그 "체크무늬" 필통을 소지하고 있는 공대생입니다. ^^ 진짜죠? 제 졸업을 책임져줄 친구를 소개합니다. 여러분들은 효율을 중시하기 때문에 서론에 정보처리기사 책 추천 이유 부터 적어보자면 무료 동영상 강의 (제일 컸다) ② 기억상자 (모바일로 볼 수 있는 암기 카드) ③ 친절한 설명 ④ 세분화된 개념별 라벨링 그리고 선배들이 하도 시나공 시나공한 것도 있긴하다. 각각 살펴보자면 ② 기억상자는 아래와 같이 암기카드인데 문제가 앞면이고 터치하면 답이 보인다. 옆으로 넘기면 다음 카드가 보이는 방식 ③ 친절한 설명 정처기 뭐부터 해야되는지 모르겠다? (본인) 책에 나와있다 (정보처리기사실기 보는 법 등) ④ 세분화된 라벨링 공부 계획을 할 때 "1단원 오늘까진 꼭 끝낸다." 하고 실패한 적 저만 있는거 아니잖아요 책에서는 개념마다 라벨링이 되어 있어서 정처기실기독학할 때 진도 완급조절이 가능한 점이 너무 좋았습니

[ Java: String 클래스 & StringBuffer/StringBulider ] [내부링크]

자바에서는 String 클래스를 통해 문자열을 나타냅니다. String을 선언하는 두 가지 방법 String str1 = new String("abc"); //① 생성자의 매개변수로 문자열 생성 String str2 = "test"; //② 문자열 상수를 가리키는 방식 비슷해 보이지만, 내부적으로는 큰 차이가 있습니다. ① new 예약어를 사용해 객체를 생성하는 경우 = "abc" 메모리가 할당되며 새로운 객체가 생성 됨. ② 생성자 없이 문자열 상수를 가리키는 경우 = 기존에 만들어져 있던 "test" 라는 문자열 상수의 메모리 주소를 가리 킴. +) 프로그램 내 상수 값을 저장하는 공간을 '상수 풀(constant pool)'이라고 합니다. String 클래스의 final char[] 변수 다른 프로그래밍 언어는 [ ]배열을 통해 문자열을 나타냅니다. 자바는 String 클래스를 통해 [ ]배열을 구현하지 않고 문자열을 사용합니다. 자바는 왜 그럴까요? String.java

[ Java: Wrapper 클래스(객체 자료형) ] [내부링크]

기본 자료형을 위한 클래스 매개변수가 객체거나 반환 값이 객체 자료형인 경우 아래와 같이 정수형을 기본 자료형(int) 대신 객체 자료형(Integer)으로 사용할 필요가 있습니다. public void setValue(Integer i) {...} //객체를 매개변수로 받는 경우 public Integer returnValue() {...} //반환 값이 객체인 경우 객체 자료형(객체형)은 기본 자료형을 감쌌다는 의미로 Wrapper 클래스라고 합니다. 기본형 Wrapper 클래스 boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double 위와 같이 기본형은 소문자로 시작하며 Wrapper 클래스는 대문자로 시작하는 것을 알 수 있습니다. Integer 클래스 사용 Integer 클래스의 생성자는 다음과 같이 특정 정수를 매개변수로 받는 경우와 문자열을 받는

[ Java: 오토박싱과 언박싱 ] [내부링크]

언박싱과 오토박싱 int는 기본자료형으로 4byte이고, Integer는 클래스로 인스턴스를 생성하려면 생성자를 호출하고 정수 값을 인수로 넣어야합니다. 이처럼 기본 자료형과 객체 자료형(Wrapper 클래스)은 같은 값을 나타내지만, 쓰임과 특성은 전혀 다릅니다. 자바 5 이전에는 int와 Integer의 값을 연산하려면 Integer에서 intValue() 메서드를 사용해 정수 값을 꺼내거나 int형으로 선언된 변수 값은 Integer형으로 변환하여 연산해야합니다. 하지만 자바 5 이후부터 컴파일러가 자동으로 변환하여 직접 변환하지 않고도 사용할 수 있습니다. 다음과 같이 사용합니다. 기본형 객체형 = 오토박싱(autoboxing) 객체형 기본형 = 언박싱(unboxing) 출처 - 박은종, 『Do it! 자바 프로그래밍 입문』, 이지스퍼블리싱 11-3

[ Java: Class 파일과 Class 클래스 / reflection / 동적 로딩 ] [내부링크]

java 파일을 컴파일하면 아래와 같이 class 파일로 생성됩니다. a.java → a.class 컴파일 된 a.class 파일에는 클래스나 인터페이스, 변수 등의 정보가 들어 있습니다. class 클래스는 위 class 파일에 저장된 정보를 가져오는데 사용합니다. Class 클래스란? 변수를 선언할 때 자료형을 미리 파악해 변수를 선언했습니다. Class 클래스는 자료형을 모르는 클래스의 정보를 사용할 경우 정보를 직접 활용할 수 있도록 합니다. Class 클래스를 선언하고 클래스 정보를 가져오는 방법 1) Object 클래스의 getClass() 메서드 사용 모든 클래스에서 사용 가능하지만 생성된 인스턴스가 있어야 함 String s = new String(); Class c = s.getClass(); //getClass의 반환형 = Class 2) 클래스 파일 이름을 Class 변수에 대입 컴파일 된 클래스 파일이 있을 경우 클래스 이름으로 Class 클래스를 반환 Cla

#2) 한국경제 거시 전망 및 금융 시장의 포인트 [2022] [내부링크]

Intro) 경제 정상화 과정의 불확실성 (김주형-서울대학교 경제학부 객원교수) IMF는 2021년 7월 말, 세계경제 성장률이 2021년에 6.0%, 2022년에 4.9%의 견조한 수준을 보이는 가운데 한국경제 성장률을 2021년 4.3%와 2022년 3.4%로 전망했다. 세계경제 회복 흐름과 내수 확대를 위한 노력 등으로 물가의 상승 압력은 다소 높아지지만, 국제수지는 흑자 기조를 지속할 것으로 예상된다. 2022년 거시경제의 위험 요인 중에서 가장 우려되는 것이 미국의 강력한 달러 유동성 환수로 심각한 글로벌 안전 자산 선호 현상이 발생하고, 일부 국가들이 금융위기에 빠져들 수 있다는 점이다. 국채 국고채 채권 (PG) [제작 최자윤] 일러스트 (서울=연합뉴스) 김아람 기자 = 경기 침체 우려와 안전자산 선호에 1일 국고채 금리가 일제히 큰 폭으로 하락했다. 이날 서울 채권시장에서 3년 만기 국고채 금리는 전 거래일보다 11.1bp(1bp=0.01%포인트) 내린 연 3.439%

[ 자료구조 ] 순차 탐색 알고리즘 [내부링크]

알고리즘을 평가하는 두 가지 요소 시간 복잡도(Time Complexity) → 얼마나 빠른가? 공간 복잡도(Space Complexity) → 메모리를 얼마나 적게 쓰는가? 시간 복잡도가 성능의 더 중요한 요소. (오늘날 과도한 데이터의 양을 처리하는 속도가 중점) 순차 탐색 알고리즘과 시간 복잡도 //순차 탐색 알고리즘이 적용된 함수 int LSearch(int ar[], int len[], int target) { int i; for(i=0; i<len; i++) { if(ar[i] == target) return i; //찾은 대상의 인덱스 값 반환 } return -1; //찾지 못했을 경우 } 최상의 경우와 최악의 경우 ① 최상의 경우(best case): 운이 좋은 경우 : 배열의 맨 앞에서 탐색 대상 발견 ② 최악의 경우(worst case): 운이 안좋은 경우 : 배열의 끝에서 탐색 대상 발견 => '최상의 경우'는 만족한 상황으로 평가 대상에서 제외되며 '최악의

[ Java: hashCode() 메서드 ] [내부링크]

hashCode() 메서드 해시(hash): 정보를 저장 또는 검색할 때 사용하는 자료 구조 해시 함수[hash(key)]: 객체 정보(key 값)가 저장되어야 할 위치나 해시 테이블 주소를 반환합니다. 따라서 객체 정보를 알면 해당 객체의 위치를 빠르게 알 수 있습니다. 해시함수는 개발 프로그램 특성에 따라 다르게 구현됩니다. 자바에서는 인스턴스를 힙 메모리에 생성하여 관리할 때 해시 알고리즘을 사용합니다. [ Java: toString() 메서드 ] toString(): Object 클래스에서 기본으로 제공, 객체 정보를 문자열(String)로 변환. Object 클래스를 ... blog.naver.com Object 클래스의 toString() 메서드 원형은 getClass().getName() + '@' + Integer.toHexString(HashCode())입니다. '@' 뒤에 16진수 숫자 값이 '해시 코드 값'입니다. 자바에서는 '인스턴스의 주소 값'을 의미한다고

#3) 새로운 시장과 경영 트렌드 [2022] [내부링크]

Intro) 전략적 변곡을 위한 주요 산업의 다음 스텝은 무엇인가 (김호원-서울대학교 치의학대학원 객원교수) 플랫폼에 의해 산업의 가치사슬이 변화하고 메타버스 등 가상현실 기술과 접목하면서 업의 경계 자체가 모호해지는 빅블러 생태계로 진화하고 있다. 조 바이든 미국 대통령이 2021년 1월 20일 취임 당일 파리 기후협약 복귀 행정명령에 서명한 데 이어 7월에는 3조 5,000억 달러 규모의 친환경 산업투자 계획을 발표함으로써, 그동안 EU 중심으로 추진되어 오던 '2050 글로벌 탄소중립 실현'이 더욱 탄력을 받게 되었다. 2023년부터 철강, 시멘트 등을 1차 대상으로 도입되어 2025년부터 본격 시행될 예정이다. 당초 반대 입장이었던 미국도 탄소국경세 도입을 추진하고 있어 이제 탄소국경세는 조만간 현실이 될 전망이다. 2022년부터는 가상화폐 양도차익에 20%의 양도소득세가 부과된다. 미래 자동차 시장의 세 키워드는 전기차, 수소차, 자율주행차다. 여전히 규모의 경제가 지속될

[ Java: clone() 메서드 ] [내부링크]

clone() 메서드 : 객체를 복제해 또 다른 객체를 반환해 주는 메서드 protected Object clone() clone()메서드는 Object에 위와 같이 선언합니다. 객체 원본을 유지해 놓고 복사본을 사용하거나, 기본 틀(prototype)의 복사본으로 인스턴스를 만들어 복잡한 생성 과정을 간단히 하는 경우에 사용합니다. 예제 - 객체가 복제되는 과정 package object; class Point { int x; int y; Point(int x, int y) { this.x = x; this.y = y; } public String toString() { return "x = " + x + "," + "y = " + y; } } // 객체를 복제해도 된다는 의미로 Cloneable 인터페이스를 함께 선언합니다. class Circle implements Cloneable { Point point; int radius; Circle(int x, int y, int

[ Java: 인터페이스 구현과 클래스 상속 동시 사용 ] [내부링크]

인터페이스 구현과 클래스 상속 구현 예시 BookShelf(책장) 클래스는 책을 넣은 순서대로 꺼내어 볼 수 있도록 Shelf 클래스를 상속하고 Queue(큐) 자료구조 방식의 인터페이스를 구현하도록 하겠습니다. BooShelf 클래스, Shelf 클래스, Queue 인터페이스 package interfaceex; public class BookShelf extends Shelf implements Queue{ @Override //배열에 요소 추가 public void enQueue(String title) { shelf.add(title); } @Override //배열의 첫 요소 삭제 후 반환 public String deQueue() { return shelf.remove(0); } @Override //배열 요소 개수 반환 public int getSize() { return getSize(); } } package interfaceex; import java.util.A

[ Java: Object 클래스 / java.lang 패키지 ] [내부링크]

모든 자바 클래스의 최상위 클래스: java.lang.Object java.lang 패키지 java.lang 패키지에는 String, Integer와 같이 많이 사용하는 클래스들이 포함되어 있습니다. Object나 이전에 사용했던 String, Integer 클래스를 사용할 때 프로그래머가 import문을 직접 쓰지 않아도 됩니다. 컴파일 할 경우 import java.lang.* 이 자동으로 추가됩니다. Object 클래스 Object 클래스는 자바의 최상위 클래스로 모든 클래스는 Object 클래스로부터 상속을 받습니다. 하지만 지금까지 Object 클래스를 상속받는 코드를 작성하지 않은 이유는 컴파일 과정에서 자동으로 상속받기 때문입니다. //코드 작성 시 class Student { int studentID; String studentName; } //컴파일시 변환 class Student extends Object { int studentID; String student

[ 자료구조 ] 자료구조란 무엇인가? [내부링크]

자료구조의 분류 자료구조란 무엇인가? "프로그램이란 데이터를 표현하고, 그렇게 표현된 데이터를 처리하는 것이다." '데이터의 표현'은 '데이터의 저장'을 의미하며 이를 담당하는 것이 자료구조이다. (프로그래밍은 데이터를 표현하고 처리하는 과정으로 이루어지며, 자료구조를 공부한다면 어느 정도의 프로그래밍을 할 줄 안다고 볼 수 있다.) int main(void) { //배열의 선언 (목적) int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //자료구조 … //배열에 저장된 값의 합 for (idx=0; idx<10; idx++) //알고리즘 sum += arr[idx]; … } 위처럼 알고리즘은 자료구조의 의존적. ※ 자료구조를 학습하기 전 대략적인 C언어의 문법을 알고있다고 가정 구조체 정의와 구조체 대상의 typedef 선언 가능 malloc 함수와 free 함수를 활용할 줄 알며, 메모리 동적 할당의 개념 헤더 파일의 의미와 정의 헤더파일 정의에

[ Java: toString() 메서드 ] [내부링크]

[ Java: Object 클래스 / java.lang 패키지 ] 모든 자바 클래스의 최상위 클래스: java.lang.Object java.lang 패키지 java.lang 패키지에는 String... blog.naver.com toString(): Object 클래스에서 기본으로 제공, 객체 정보를 문자열(String)로 변환. Object 클래스를 상속 받은 모든 클래스는 toString()을 재정의할 수 있습니다. Object 클래스의 toString() 메서드 toString() 메서드의 원형 → 생성된 인스턴스의 클래스 이름과 주소 값을 보여줍니다. package object; class Book { int bookNumber; String bookTitle; Book(int bookNumber, String bookTitle) { this.bookNumber = bookNumber; this.bookTitle = bookTitle; } } public class To

주간일기 4) 먹고 놀고.. 공대생 성적 나왔다ㅋ [06.25 ~ 07.01] [내부링크]

6월 4주차 06.25 (토) ~ 07.01 (금) 불고기미식관 서현직영점 경기도 성남시 분당구 안골로 12-6 비동 201호 주말 알바를 하는데, 일요일 오전에 알바 가기 전 친구와 점심을 먹었다. 알바하고 밥 한 번 사주기로해서 뭐 먹고 싶은지 말만하라했는데, 1인분에 17,000원 짜리 불고기 정식을 들고왔다. 역시 내 친구.. 이래야 쏘는 맛이 나지...^^ 역시 음식은 비싼 값 한다고, 맛은 너무 맛있었다.. 비싼 음식은 덜 자극적이고 음식 본연의 맛에 중점을 두는 특징이 있는 것 같다. 담백했다. 정식을 시키면 밥과 냉면 중 하나를 선택할 수 있는데, 나중에 먹는다면 밥으로. (불고기가 밥도둑) 밥 먹고 같이 옛날 추억 회상할 겸 구슬 아이스크림까지 후식으로 때리고(?) 헤어졌다. 구슬 아이스크림 꿀맛. 그리고 돈의 노예로 돌아가 알바를 하는데 신기한 맥주를 봤다. 바로 술 장인에게 맥주에 대해 물어보고 언니 이 맥주 알아..? 응.. 먹지마 그렇게 술 하나를 알아가고 학

카카오뱅크 26주 적금, 카카오는 뭘로 이익을 얻을까? [내부링크]

카카오뱅크의 대표적인 상품으로 단기간으로 목돈을 만드는 "26주 적금"이 있다. 최근 위 사진과 같이 기업과 제휴를 맺고 상품 가입 시 해당 기업의 할인쿠폰 등 혜택을 준다. 지금까지 파트너 사로 이마트, 마켓컬리, 해피 포인트, 카카오페이지, 오늘의 집으로 총 5개의 업체가 있었다. 이를 통해 카카오가 얻는 효과는 다양하다. ① 신규 고객 유입 파트너 사의 할인쿠폰 등을 통한 해당 업체의 고객 확보 ② 실 사용자 수 확대 일주일에 한 번씩 납입해야 하는 특성상 월 활성 사용자 수(MAU)를 높여 주거래 고객과 휴먼 고객 확보 ③ 플랫폼 수익 증대 26주 파트너 적금은 플랫폼 수익에 해당, 해당 상품의 수익 모델이 광고와 비슷하며 수익 기여 효과 요즘 은행사들이 공격적인 상품들을 내놓고 있습니다. 필자가 위 뉴스를 선택한 이유이기도 합니다. 사진은 토스에서 내놓은 연 3% 이자의 단기 적금 상품입니다. 기업들이 내놓는 이벤트를 보면서 '저러면 뭐가 남지?'라는 생각 한 번쯤 해보시지

[ 책: 지리의 힘 / 마샬 ] 리뷰 [내부링크]

< 지리의 힘 > 마샬 [ 책 소개 ] 세계는 왜 ‘지리’를 두고 분쟁하는가? 지리라는 렌즈를 통해 세계를 조망한 책 『지리의 힘』. 25년 이상 30개 이상의 분쟁 지역을 직접 현장에서 취재하며 국제 문제 전문 저널리스트로 활동해온 저자가 중국, 미국, 서유럽, 러시아, 한국과 일본, 아프리카, 라틴 아메리카, 중동, 인도와 파키스탄, 북극 등 전 세계를 10개의 지역으로 나눠 ‘지리의 힘’이 21세기 현대사에 미치는 영향을 집중적으로 파헤친 책이다. 이 책은 특히 ‘한국’편에서 한국의 위치와 한반도의 지리적 특성 때문에 한국이 강대국들의 경유지 역할을 할 수밖에 없음을 지적하고 ‘중국’은 왜 영유권 분쟁을 일으키면서까지 바다에 집착하는지, ‘미국’은 어째서 초대강국이 될 수밖에 없었는지, 왜 세계는 남극이 아닌 북극으로 향하고 있는지 등에 대한 해답을 담고 있다. 또한 최근 이슈로 떠오르고 있는 미국과 중국 간의 신패권주의 경쟁, 알카에다와는 달리 영토를 장악해가는 IS 등을 놓

[ Java: equals() 메서드 ] [내부링크]

기존 equals() 메서드의 기능 : 두 인스턴스의 주소 값을 비교 후 boolean 값을 반환 (주소 값이 같다면 같은 인스턴스입니다.) 생성된 두 인스턴스가 '같다'는 것은 무엇을 의미할까요? Object 클래스의 equals() 메서드 물리적으로 같을 경우(물리적 동일성) → 두 인스턴스의 주소 값이 같은 경우 Student studentLee = new Student(100, "이상원"); Student studentLee2 = studentLee; //주소 복사 위 코드처럼 물리적으로 '같다'는 것은 두 변수가 같은 메모리 주소를 가리키고 있다는 뜻입니다. > 이 때 equals() 메서드를 사용할 시 동일하다는 결과가 나옵니다. 논리적으로 같을 경우(논리적 동일성) → 인스턴스의 저장된 정보가 같은 경우 Student studentLee = new Student(100, "이상원"); Student studentLee2 = studentLee; //주소 복사 Studn

주간일기 1) 기말시험 시작 [06.04 ~ 06.11] [내부링크]

6월 1주차 06.04 (토) ~ 06.11 (토) 주말에는 시간이 애매해 금요일마다 주간일기를 써야겠다. 또 일기는 새벽갬성으로 쓰는 맛이 있기 때문에 밤에 적기로 한다. 비록 지금은 토요일 오전이지만.. 사실 일기를 쓰고 싶은 마음은 항상 있었는데, 일간은 너무 부담되고 주간은 까먹고..(잘한다) 그래서 항상 흐지부지하게 끝나는 경우가 많다. 이번 블로그 주간일기 챌린지로 나에게 일상을 기록하는 소중한 습관이 깃들길 바랄뿐이다. 이번 제목과 동일하게 이번 주는 첫 기말시험이 있었다. 전공과목이었는데 그럭저럭 잘봤다. 과제할 때는 '인생이란 무엇인가'와 같은 철학적인 질문들이 내 마음속에 오고갔었는데 시험 때는 시험 보기 전부터 공부도 안했지만 마음이 너무 여유로웠고, 시험 당시에도 너무 편안해서 공대에 와서 드디어 미친건가 싶다. 이번 주에 첫 시험을 봤을 뿐만 아니라 아두이노 설계라는 팀 프로젝트 과제를 했다. 첫 PT때는 13팀 중 2등으로 마무리했고, 지금이 두번째이자 마지

주간일기 2) 기말시험 이제 반왔다.. [06.12 ~ 06.17] [내부링크]

6월 2주차 06.12 (일) ~ 06.17 (금) 저번 주에 일기를 쓸 때, 금요일에 쓰겠다 다짐한 것처럼 정말 금요일 밤에 쓰고 있다. 이제 두 번째 쓰는 건데 뭔가 벌써 착실하고 성실한 사람이 된 기분^^ 김칫국 시원하게 마시고 있다. 그렇게 마시고 있는 건 김칫국뿐만이 아니라 학점까지 말아먹고 있었다. 저번 팀프로젝트 결과가 나왔는데 아쉽게 3등으로 마무리했다. 하지만 결과에 깔끔히 승복! 특히 1등 팀이 너무나 잘해서 멋있었다. 지금 기말고사를 반 정도 봤는데...^-^ 지나간 시험은 지나간 대로 묻어두고ㅎ 이제 딱 반 남았는데 5월에 공휴일이 많아서 보강 주가 생겨 시험을 3주 동안 보고 있다. 벌써 지긋지긋해. 곧 교양 시험을 보는데, 일반물리학을 교양이라고 신청한 나 자신이 미워지는 날이다. (왜 그랬지?) 막 관성모멘트에 토크에.. 병진운동 어쩌고.. 그럴 때마다 인생이 정말 쉽지 않다. 전공에서 큰 사태가 발생해 교양에서 메꾸려는데 이게 안되겠네..? 또 블로그를

[ Java: 인터페이스간 상속 ] [내부링크]

한 클래스가 여러 클래스를 상속 받을 경우 → 메서드 호출 모호화 but) 한 클래스는 여러 인터페이스 구현 가능 한 클래스가 여러 인터페이스를 구현하는 경우 위 그림을 보면 Customer 클래스는 Buy와 Sell 두 인터페이스를 구현합니다. 코드는 아래와 같습니다. package interfaceex; public interface Buy { void buy(); } package interfaceex; public interface Sell { void sell(); } package interfaceex; public class Customer implement Buy, Sell { @Overried public void buy() { System.out.println("판매"); } @Overried public void sell() { System.out.println("구매"); } } < public class Customer implement Buy, Sell >

2022) 아두이노 "Bluetooth 전자 피아노" 팀 프로젝트 [내부링크]

아두이노 팀 프로젝트 < Bluetooth Module을 이용한 RGB 전자 피아노 > 4명이 한 조로 시작한 아두이노 팀 프로젝트 조를 짜는 방식은 여러 주제 중 마음에 드는 주제를 선택하면 그 주제를 선택한 사람들끼리 한 조가 되는 방식이었다. 팀이 결성되면 두 가지 프로젝트를 함께 진행하게 된다. 첫번째는 ①아두이노 주제 발표 두번째는 ②아두이노 설계 발표 로 이루어진다. ① 아두이노 주제 발표 혼자 어색했던 팀원들과 카카오톡 첫만남을 시작으로 첫번째 프로젝트가 진행되었다..! 회의를 진행하면서 각자의 역할과 발표 주제를 정했다. 그렇게 시간이 흘러 완성한 PPT 위와 같은 결과물을 얻기 위해서 교수님께 얼마나 많은 피드백을 받았는지 모른다. 이후 2~3번 정도 수정본을 교수님께 보내면서, 교수님께 받은 피드백을 토대로 수정해나갔다. 어떻게 수정할지 중간중간에 회의도 하며 팀원들과 전우애가 생기기 시작했다. 그 후 대본도 정말 열심히 작성하고 성공적으로 발표를 마치며 결과는 1

계획충 J의 1박 2일 [인천 송도] 여행기 [내부링크]

인천 송도 1박 2일 ㅣ 2022.06.21-22 인천하면 월미도와 차이나타운인데, 나는 송도 센트럴 파크를 여행 장소로 정했다. 월미도는 물이 그렇게 깨끗하지 않다는 후기가 많았고 차이나타운은 사람만 많고 가격도 비싸며 할 게 별로 없다는 후문이 많았기 때문. ① 첫째 날 후라토식당 트리플스트리트점 인천광역시 연수구 송도과학로16번길 33-1 A동 2층 207-2호 오후 2시에 늦은 점심으로 규카츠를 먹기로 했다. 규카츠와 민츠(?)카레를 하나씩 시켜 나눠먹기로 했는데 만약 가서 먹는다면 규카츠를 하나씩 시켜먹는 것을 추천한다. 규카츠의 식감이 너무 좋았고 소스도 정말 맛있었다. (네이버 예약을 하고 가면 가라아게 서비스를 준다.) 후기 보고 사람 많을 줄 알았는데 평일 늦은 오후라 그런지 나갈 때 쯤엔 손님이 없었다. 현대프리미엄아울렛 송도점 인천광역시 연수구 송도국제대로 123 현대프리미엄아울렛 송도점 트리플스트리트점 주변에 현대프리미엄 아울렛이 있는데 진짜 크고 입점된 매장이

주간일기 3) 시험 끝 - 방학 시작 [06.18 ~ 06.24] [내부링크]

6월 3주차 06.18 (토) ~ 06.24 (금) 6월 20일경 모든 시험이 끝났다. 총 학점은 27일에 공지되며 현재까지 전공 두 개의 결과만 나와있는 상태다. 2개의 전공 모두, 시험이 어떤 식으로 나올지 몰라 중간고사 등수는 뒤에서 세는 게 빨랐으며 기말고사부터는 감을 잡아, 앞에서 세는 게 빨랐다. 오히려 좋아. 드라마는 성장 스토리가 재미는 법.. 각각 A, B+이 나왔고 담 학기는 A+ 딱 대. 그렇게 종강을 하고 06.21-06.22 인천으로 1박 2일 여행을 갔고 인천 송도 여행기는 내일 오전에 올려야겠다. 23일 목요일에 공부 좀 하다가 카페에서 고향으로 상경한 친구를 만나 각자 대학교 얘기, 시험 망한 이야기, 구체적으로는 물리학 시험 중 풀진 못하고 연필만 잡고 있던 썰 … 요런 저런 대화를 나눴다. 그리고 같이 저녁으로 건전하게 콜라와 치킨을 먹고 헤어졌다. 비가 세차게 쏟아지는 여름이었다. 그 다음날인 금요일에는 친구와 함께 오전에 헬스장 3개월을 등록하고

[ Java: 인터페이스와 다형성 ] [내부링크]

[ Java: 인터페이스(Interface)란? ] 구현 코드가 없는 인터페이스 인터페이스(interface)는 클래스 혹은 프로그램이 제공하는 기능을 명시적... blog.naver.com 위에서 인터페이스 구현 방법을 알아보았습니다. 그럼 인터페이스는 어디에 쓰이는 걸까요? 인터페이스 역할 인터페이스는 클라이언트 프로그램에 어떤 메서드를 제공할지 미리 알려주는 명세(specification) 또는 약속의 역할을 합니다. 예를 들어 Example 인터페이스가 있고 이를 구현한 Ex클래스가 있다면, Example 인터페이스의 선언부만 봐도 Ex 클래스의 구현 코드를 보지 않고 Ex클래스를 어떻게 사용할지 알 수 있습니다. 인터페이스와 다형성 인터페이스를 사용하면 다형성을 구현해 확장성 있는 프로그램을 만들 수 있습니다. 즉, 클라이언트 프로그램을 많이 수정하지 않고 기능을 추가하거나 사용할 수 있습니다. # 예제 시나리오 [고객 상담 전화 배분 프로그램] 고객 센터에 전화 상담

2021) 뿌듯한 첫 리듬 게임 개발 팀 프로젝트 [내부링크]

2021년 대학교에서 팀프로젝트를 맡았다. 자유 주제로 게임 개발 분야를 선택했고, 귀여운 지식 수준이었기 때문에 무작위로 선택된 3명의 팀원끼리 간단한 프로젝트를 하기로 했다. 그래서 선택한 것이 오픈 소스가 많을 것같은 리듬 게임으로 선정했고 순탄하게 진행되는 것 같았다. 지금부터 프로젝트 산출물인 결과 보고서를 참고하며 글을 끄적이겠다.. 프로젝트 개요 세계적인 COVID-19 유행으로 현재 우울감이 증가하는 코로나 블루 현상이 나타나고 있다. 이를 완하시키기기 위한 방안으로 집에서 쉽게 플레이할 수 있는 힐링 리듬 게임을 개발하고자 한다. 그냥 리듬 게임은 재미없고, 그래서 낸 아이디어가 힐링 리듬게임이었다. 초기 계획을 가시화한 것이다. 첫 프로젝트였기 때문에 열정 가득하게 시작했다. 자유 주제인 것도 맘에 들어 더 열심히 내 새끼(프로젝트)라는 마인드로 임했다. Trello라는 개발 도구를 사용해 같이 개발을 시작했다. trello로는 밑에 화면과 같이 협업툴이다. 첫 화

[ Java: 인터페이스 요소 ] [내부링크]

추상 메서드로 이루어진 인터페이스는 인스턴스를 생성할 수 없으며 멤버 변수도 사용할 수 없습니다. 인터페이스 상수 public interface Calc { double PI = 3.14; int ERROR = -999999999; 그럼에도 위와 같이 변수를 선언해도 오류가 발생하지 않습니다. 인터페이스에 선언한 변수를 컴파일하면 상수로 변환되기 때문입니다. Calc인터페이스에 변수 PI를 컴파일하면 public static final double PI = 3.14 로 변환되어 상수 취급됩니다. 디폴트 메서드와 정적 메소드 자바 8부터 인터페이스 활용성을 높이기 위해 디폴트 메서드와 정적 메서드 기능을 제공합니다. 디폴트 메서드는 기본적인 정보를 제공하는 메서드로 인터페이스에서 구현 코드까지 작성한 메서드입니다. 정적 메서드는 인스턴스 생성과 상관없이 사용할 수 있는 메서드입니다. 디폴트 메서드, 정적 메소드 구현 디폴트 메서드는 default 예약어를 사용해 인터페이스에서 구

[ 책: 작별 인사 / 김영하 ] 리뷰 [내부링크]

< 작별 인사 > 김영하 [ 책 소개 ] 누구도 도와줄 수 없는 상황, 혼자 헤쳐나가야 한다지켜야 할 약속, 붙잡고 싶은 온기 김영하가 『살인자의 기억법』 이후 9 년 만에 내놓는 장편소설 『작별인사』는 그리 멀지 않은 미래를 배경으로, 별안간 삶이 송두리째 뒤흔들린 한 소년의 여정을 좇는다. 유명한 IT 기업의 연구원인 아버지와 쾌적하고 평화롭게 살아가던 철이는 어느날 갑자기 수용소로 끌려가 난생처음 날것의 감정으로 가득한 혼돈의 세계에 맞닥뜨리게 되면서 정신적, 신체적 위기에 직면한다. 동시에 자신처럼 사회에서 배제된 자들을 만나 처음으로 생생한 소속감을 느끼고 따뜻한 우정도 싹틔운다. 철이는 그들과 함께 수용소를 탈출하여 집으로 돌아가기 위해 길을 떠나지만 그 여정에는 피할 수 없는 질문이 기다리고 있다. 출처 - yes24 완독 시간: 1시간 10분 머지 않아 너는 모든 것을 잊게 될 것이고, 머지 않아 모두가 너를 잊게 될 것이다. 마르쿠스 아우렐리우스 이야기의 주인공. 철

#1) 바이든 시대 대외 환경 변화와 한국 [2022] [내부링크]

01) G7 정상회의 이후, 계속되는 미중 사이 줄다리기와 한국의 선택 코로나는 디지털 전환과 친환경 전환이라는 쌍전환의 화두를 던져 주었고, 전 세계는 각자도생의 신삭업 정책 경쟁 시대를 맞이하고 있다. 따라 정답위주 실력보다는 오답을 줄여가는 위기관리와 변수 간의 새로운 조합의 시너지를 찾는 연계 전술이 경쟁력이 된다. 2022년에는 중국이 더 이상 자체 기술로 감당할 수 없거나, 미국의 제재로 인해 수급이 되지 않는 필요 중간재와 자본재에 대한 한국, 일본, EU외의 차상위 기업 간의 중국 진출 경쟁과 투자가 치열할 것으로 예상. 한국 정부가 한미 동맹을 강조할수록 국내 기업의 *윈셋win-set은 더 커질수 있다는 것을 명심해야 한다. 글로벌 생산망의 스마트화 → *리쇼어링, 니어쇼어링, 라이트 쇼어링 대두 제조업과 서비스업 간 구분 모호화 → 제조업의 서비스화 or 서비스업의 제조화 현상 각국은 조세 정상화라는 당위성 아래, 디지털세가 커버할 수 없다면 글로벌 법인세를 통해

빵이 포장 배달 된다고? 마이레이지오븐 후기 [내부링크]

빵을 시켜먹는다고라? 아직 구시대에 머물고 있는 나는, 인터넷으로 뭐든 주문하고 받는 트렌드에 쫓아가보도록한다. 마이레이지오븐에서 파는 머핀 & 쿠기 세트였는데 포장도 이쁘게돼서 나에게로 왔다 마이레이지오븐 : 네이버쇼핑 스마트스토어 르꼬르동블루 출신 파티쉐가 만드는 수제 쿠키 및 구움과자. 답례품 및 선물포장 대량주문가능 smartstore.naver.com 지금 여름이긴하지만ㅎ 진짜 보고 신기했던게 크리스마스용 답례품도 판다. 포장도 크리스마스 너낌나는것 봐 요즘 세상 진짜 대박이다. 아 일단 내껄로 돌아와서 열면 요로코롬 꺼내서 비주얼을 보면 대박 정말 이게 요즘 세상이다 (나만 신기한가?) 하나도 안부서지고 이렇게 온전히 배달되는 세상이라니 머핀은 블루베리 크림치즈 머핀 쿠키는 초코 월넛 쿠키 머핀을 집어서 보면 치즈랑 블루베리가 콕콕 박혀있는데 딱 보인다. 한 입 먹어보고 후기 찍어야된다는 생각을 망각한 채, 먹고보니 이 상태^-^ 다음 머핀을 노린다. 두번째 머핀은 마음을

[ Java: 템플릿 메서드 응용 ] [내부링크]

[ Java: 템플릿 메서드 ] 템플릿 메서드 '템플릿'이란 용어를 사전에서 찾아보면, 틀이나 견본을 의미합니다. 템플릿 ... blog.naver.com 템플릿 메서드를 통해 재밌는 예제를 만드는 시간입니다 과연 재밌을지 한 번 살펴봅시다 예제 시나리오 Player가 있고, 이 Player가 게임을 합니다. 게임에서 Player가 가지는 레벨에 따라 할 수 있는 세 가지 기능이 있습니다. 초보자 레벨: 천천히 달릴(run) 수 있습니다. 중급자 레벨: 빠르게 달리고(run) 점프(jump)할 수 있습니다. 고급자 레벨: 엄청 빠르게 달리고(run) 점프(jump)하고 턴(turn)할 수 있습니다. go()메서드는 한 번 run하고 매개변수로 전달된 count만큼 jump하고, 한 번 turn합니다. 그 레벨에서 불가능한 기능을 요청하면 할 수 없다는 메시지를 출력합니다. 클래스 기능과 관계 주어진 문제를 어떻게 해결할 것인지 손으로 클래스 다이어그램을 간략하게 그려 보는 것이

[ Java: final 예약어 ] [내부링크]

final은 '마지막'이란 의미 그대로 마지막으로 정했으니 더 이상 수정할 수 없다는 뜻입니다. 자바 프로그램에서 final 예약어는 변수, 메서드, 클래스에 사용할 수 있습니다. 사용 위치 설명 변수 final 변수는 상수를 의미합니다. 메서드 final 메서드는 하위 클래스에서 재정의할 수 없습니다. 클래스 final 클래스는 상속할 수 없습니다 상수를 의미하는 final 변수 package finalex; public class Constant { int num = 10; final int NUM = 100; public static void main(String[] args) { Constant cons = new Constant(); cons.num = 50; //cons.NUM = 200; //오류 발생 System.out.println(cons.num); System.out.println(cons.NUM); } } 50 100 여러 자바 파일에서 공유하는 상수 값 정의

[ 책: 요즘 사는 맛 / 박정민, 최민석, 핫펠트, 김겨울, 요조, 천선란 ] 리뷰 [내부링크]

< 요즘 사는 맛 > 박정민, 최민석, 핫펠트, 김겨울, 요조, 천선란 [ 책 소개 ] 먹고 사는 일에 누구보다 진심인 작가들의 일상 속 음식 이야기 “오늘도 내일도 맛있게 먹는다. 달콤하고 상큼하고 고소한 인생을 위해!” 별것 아닌 것이 별것이 되는 먹는 기쁨, 함께하는 설렘, 나누는 즐거움 인간 생활의 세 가지 기본 요소인 의식주 가운데 가장 손쉽게 다른 사람과 함께할 수 있는 것은 아무래도 ‘먹는 일’ 아닐까? 누군가와 밥을 먹고 차를 마시고 술 한잔 기울이는 것은 단순히 배를 채우는 일이 아니라, 상대를 알아가고 나에 대해 알려주는 친목의 장이자 교류의 도구가 된다. 혼자 밥을 먹는 일도 마찬가지다. 대충 때우는 끼니가 되기도 하고 정성껏 차린 한 상이 되기도 하는 혼자만의 식탁을 보면 그날의 내가 어떤 모습인지, 어떤 마음인지 알 수 있기 때문이다. ‘먹고 사는 일’에 누구보다 진심인 열두 명의 작가들이 들려주는 일상 속 음식 이야기를 담은 에세이 『요즘 사는 맛』에는 이처

디즈니 엔칸토 OST 피아노 연주곡집 연주해보기... [내부링크]

빌보드 차트 1위, 아카데미 장편 애니메이션상 수상에 빛나는 그 디즈니 영화 엔간토를 피아노 악보집으로 만나봤다. 피아노를 치기 전 엔칸토 애니메이션을 봤는데 보고나서 바로 이 짤이 생각났다. 아무리 밝아보이는 사람이라도 지고 있는 책임감은 보이지 않는다는 것을 애니메이션에서 보여준다 누구나 부담들이 있잖아요... 피아노 짬바가 있다고 생각해서 패기 있게 도전하고 내가 음치와 박치라는 사실을 다시 되새겼다. 영상을 보면 빠른 이해가 가능하다. 사실 이것도 피아노 연주곡 안에 있는 QR영상을 보고 간신히 흉내낸건데 피아노 연습좀 해야겠다. 연주곡의 난이도는 체르니 100 후반에서 체르니 30 난이도고 악보 7곡과 원키 버전 악보 1곡이 수록되어있다, 악보에 있는 QR을 통해 링크를 타고 들어가면 나와 차원이 다르게 잘 치는 선생님의 모습을 볼 수 있다. 처음부터 잘하면 재미없지..ㅎ 발전되는 모습을 지켜봐주셨음...하는 작은 바람 악보집 자체가 이뻐서 소장용(?)으로도 훌륭하다는 생각

"밥 먹었어?" 걱정하는 감성 친구 AI 등장 [내부링크]

기사 요약 인공지능(AI)이 먼저 말을 거는 시대가 왔다. "잘 이해하지 못했어요"라고 대답을 일관했던 것과 달리 친구처럼 대화하고 사용자에게 감정까지 고려하는 '공감형 AI'로 진화하고 있다. 1. SK 지난 16일 AI비서 '에이닷(A.)' 의 베타 버전 출시, 위 이미지처럼 AI를 시각화 하였으며 사용자와의 대화 맥락과 감정을 학습해 "밥 먹었어?" "기분 어때?" 등 먼저 말을 걸기도 한다. SK 관계자 AI와 수직관계에서 수평관계로 변화 맥락에 맞는 감성 대화 가능 2. KT 지난 19일 'KT 디지코스터디'에서 KT 관계자(배순민 연구소장)는 "단순 정보를 얻는 것을 넘어 공감하고 위로하는 AI로 삶을 더 풍성하게 만들겠다고" 말했다. KT는 먼저 B2C 영역에서 차세대 AICC(AI컨택센터)를 개발하고, 사람처럼 연속으로 대화하는 '멀티턴 전문 상담' 서비스를 개발할 계획이다. 3. 네이버(naver) 캐릭터와 대화하는 '아바타 챗봇' 개발중, 캐릭터가 표정을 나타내는

[ Java: 인터페이스(Interface)란? ] [내부링크]

구현 코드가 없는 인터페이스 인터페이스(interface)는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 합니다. 인터페이스는 추상 메서드와 상수로만 이루어져 있으며 구현된 코드가 없기 때문에 인스턴스를 생성할 수 없습니다. 그럼 인터페이스는 어떻게 사용하는 걸까요? (왜 사용하는지는 추후에 알려드리겠습니다.) Calc 인터페이스 만들기 package interfaceex; public interface Calc { double PI = 3.14; int ERROR = -999999999; int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); int divide(int num1, int num2); } 계산기를 만들기 위해 선언한 인터페이스입니다. 원주율을 나타내는 PI변수와 오류를 나타내는 ERROR변수, 사칙 연산을 수행하기 위한 4가지 메소

편의점 알바하면서 먹어본 인그레인 프로틴 쉐이크 후기 [내부링크]

종류로는 베리베리, 그레인, 레드빈 3가지가 있는데 나는 집에 딸기맛과 초콜릿맛 단백질 쉐이크가 있어서 비교해보기위해 베리베리 맛으로 픽! 5개가 한묶음로 배송됐다 가격은 5개에 12,500으로 개당 2,500원인 셈 비싸지도 않고 싸지도 않은 딱 정적한 가격인듯 디자인이 이뻐서 들고다니기 나무랄데없는게 일단 맘에 든다. 이케 보니까 더 이쁘네 160kcal로 우유까지 포함하면 체중관리할 때 한 끼 정도는 대체 가능한 열랑이 될거같아서 만족 그리고 성분을 보면 탄수화물 24g 단백질 11g 탄수화물이 약간 있는 편인데 맛이 있으면 충분히 인정하고 넘어갈 수 있다. 맛 없으면 말짱도루묵 일단 매우 넉넉한 유통기한 합격. 파우치형 프로틴쉐이크에 특장점 들고 다닐 수 있다!!! 요로케 챙기고 알바하면서 점심시간에 먹어봤다 알바 장소에 도착 열심히 흔들고 먹어봤는데 역시 탄수화물 값 한다는 생각.. 맛있다.. 딸기도 쪼끔씩 씹혀서 먹는 맛이 있고 생각보다 놀랐던게 기존의 먹었던 단백질 쉐이

[ Java: 템플릿 메서드 ] [내부링크]

템플릿 메서드 '템플릿'이란 용어를 사전에서 찾아보면, 틀이나 견본을 의미합니다. 템플릿 메서드는 추상 클래스를 사용해 구현할 수 있으며 예제를 통해 살펴봅시다. +) 템플릿 메서드는 디자인 패턴의 한 방법으로 객체 지향 프로그램에서 사용 하는 구현 방법입니다. 따라서 이 구현 방법은 자바뿐 아니라 C++, C#에서도 동일하게 적용됩니다. package template; public abstract class Car { public abstract void drive(); public abstract void stop(); public void starCar() { System.out.println("시동을 켭니다"); } public void turnOff() { System.out.println("시동을 끕니다"); } // 템플릿 메서드 final public void run() { starCar(); drive(); stop(); turnOff(); } } Car 클래스를

[ C언어: 포인터와 배열 ] [내부링크]

포인터와 배열 : 배열 이름 = 포인터 (배열 이름은 배열이 시작되는 주소) 예제 1 예제 1 - 출력값 4byte씩 연속된 공간을 차지, 배열의 이름이 배열의 첫 번째 주소와 같다는 사실을 알 수 있다. 예제 2 예제 2 - 출력값 ※ 배열의 이름에 다른 변수의 주소를 대입할 수 없다. → 배열의 이름은 포인터 상수이기 때문에, 값이 변경 될 수 없다. ex) int a[] = { 10, 20, 30, 40, 50}; ++a; // 컴파일 오류: a는 포인터 상수이므로 변경 불가 포인터를 배열처럼 사용 예제 3 예제 3 - 출력값 p와 a가 다른 점은 a는 포인터 상수로 값을 변경할 수 없지만 p는 포인터 변수로 값을 변경할 수 있다. 배열 매개 변수 예제 4 예제 4 - 출력값 배열을 선언하는 동일한 방법 배열의 인덱스를 사용하기보다 포인터를 이용하여 배열의 요소에 접근하는 이유 : 배열의 요소들은 메모리에서 연속된 주소를 할당하기 때문에 포인터의 증가 연산을 사용하면

[ 책: 베니스의 상인 ] 리뷰 [내부링크]

셰익스피어 지음, 김종환 옮김 책 소개 셰익스피어를 두고 벤 존슨은 "어느 한 시대의 사람이 아니라, 모든 시대의 사람"이라 극찬했고, 사뮤엘 존슨은 셰익스피어의 작품을 "삶을 있는 그대로 비추어 내는 거울"이라고 평가했다. 그의 작품은 시대를 초월하는 보편성을 담고 있는 동시에 현재적 시점에서 또 다른 의미를 읽어 낼 수 있는 개방적 텍스트이다. "베니스의 상인"은 다양한 인간성에 대한 셰익스피어의 성숙하고 심오한 성찰을 보여줌과 동시에 겉과 속, 외양과 실재의 대립을 현재적 시점에서 읽어내게 하는 개방적 텍스트이다. - 김종환 <밀리의 서재> 약 2시간 정도 걸려 책을 완독했다. "All that gliters is not gold" 반짝이는 것이 모두 금은 아니다 (금 상자 안에는 해골이 있었는데, 겉으로 보이는 세상의 모든 것이 결국 허망하게 사라져버린다는 것을 뜻한다.) 위에 구절로 유명한게 "베니스의 상인" 이다. 필자도 위 글귀를 계기로 책을 읽게 되었는데, 내용 자체

[ C언어: 포인터 사용의 장점 ] [내부링크]

포인터 사용의 장점 ① 연결 리스트와 이진 트리 등의 향상된 자료 구조를 만들 수 있다. - 연결 리스트 : 포인터를 사용하여 메모리에 흩어져 있는 데이터들을 연결하는 자료 구조 ex) 줄로 연결된 상자 → 상자를 연결하는 줄을 pointer 로 구현한다. ② 메모리 매핑 하드웨어 : 메모리 처럼 접근할 수 있는 하드웨어 장치 ex) 스마트폰에 GPS장치를 메모리 주소로 접근 int *hw_address = (int *)0x7FFF; *hw_address = 0x0001; // 주소 0x7FFF에 있는 장치에 0x0001 값을 쓴다. → 장치를 가리키는 int형 포인터를 정의하고 주소 0x7FFF로 초기화한다. ③ 참조에 의한 호출 : c언어에서 기본적으로 지원하는 "값에 의한 호출"과 더불어 "참조에 의한 호출" 구현 가능. → 포인터 매개 변수를 통하여 외부의 변수나 배열에 접근하여 값 변경 가능. + 함수가 하나 이상의 값을 반환할 때도 포인터 사용 가능. ④ 동적 메모리 할

[ C언어: 포인터(pointer)란 무엇인가? ] [내부링크]

Chapter11. 포인터 포인터(pointer): 메모리의 주소를 가지고 있는 변수 (데이터가 아니다) 변수는 컴퓨터의 메모리에 저장 되지만 포인터는 컴퓨터 메모리에 직접 접근할 수 있다. 변수의 크기에 따른 메모리 공간의 크기 (일반적인 pc환경의 경우) char형 → 1byte int형 → 4byte float형 → 4byte short형 → 2byte long형 → 4byte double형 → 8byte 메모리 공간의 크기 구하는 법 - sizeof 이용 변수가 차지하는 바이트의 주소 중 가장 낮은 주소가 그 변수의 주소가 된다. ex) pointer라는 변수가 차지하고 있는 주소가 4, 5, 6, 7일 경우 변수의 주소 → 4 주소 연산자 & : 변수의 이름을 받아 변수의 주소를 반환 → 변수 pointer의 메모리 주소는 &pointer를 통해 알 수 있다. 포인터 선언 "포인터 변수": 포인터도 변수이다. → 다른 변수와 같이 사용되기 전에 선언해야 한다. //

[ 책: 유시민의 글쓰기 특강 ] 리뷰 [내부링크]

출처 - 네이버 책 나는 제목만 보고 글쓰기 잘하는 법을 알려주기 위한 저서로 재미없고 지루하기 짝이 없으며 원론적인 이야기만 쓰여 있을 줄 알았다. 그 누가 제목을 보고 재밌겠다고 이 책을 고를까. 장담하건대 다들 필요에 의해 읽기 시작했을 것이다. 하지만 생각과 다르게 “정말” 의외로 쉽게 읽혔고 저자의 유머도 재미있었다. 저자의 철학과 신념이 돋보인 책이었는데, 생각보다 인간적이고 생각이 깊은 사람이었다. 혹시나 말하는데 유시민 씨에게 아무런 대가도 받지 않았다. 어렵고 포기 하게 만드는 글쓰기를 어렵지만 누구나 할 수 있는 글쓰기로 만들어주었다. 읽으면서 제일 인상 깊었던 것은 이론적인 “글쓰기 잘하는 법”을 심도 있게 알려주기보다 글쓰기를 하는 자세에 대해 상세하게 설명해주는 것이었다. 저자는 우리나라 대학교 중 내로라하는 서울대학교에 나오셨으며 정치판에 뛰어들었던 사람임에도 불구하고 전문성과 지식을 뽐내는 글쓰기보다 겸손하고 타인과 교감할 수 있는 글쓰기 자세를 알려준다.

[ C언어: 포인터 간접 참조 연산자 * ] [내부링크]

Chapter11. 포인터 간접 참조 연산자 * : 포인터를 통하여 메모리를 간접 참조 (dereferencing, indirection) 함. ex) int i = 10; int *p; p = &i; printf("%d \n", *p); // 10 출력. 간접 참조 연산자 *의 해석 : *p는 p가 가리키는 위치에 있는 데이터를 가져오라는 의미. (p는 p가 가리키는 위치에 무엇이 있는지 모름) → p가 int형 포인터라면 p가 가리키는 위치에 정수가 있다고 가정하고 4byte를 읽음. 만약, double형 포인터라면 p가 가리키는 위치에 실수가 있다고 생각하고 8byte를 읽음. = 포인터 타입이 필요한 이유! &연산자 vs *연산자 & 연산자: 변수의 주소를 구하여 포인터에 대입하는 연산자. * 연산자: 포인터를 통하여 변수를 간접 참조할 때 사용하는 연산자. 변수의 값과 포인터의 값 비교 예제1 예제1-출력 결과 포인터는 변수이기 때문에 저장된 주소 값을 다른 값으로

[ C언어: 포인터 연산 ] [내부링크]

Chapter11. 포인터 포인터 연산 포인터 타입 ++연산 후 증가되는 값 char 1 short 2 int 4 float 4 double 8 포인터에 정수를 더하면 포인터의 값에 단순히 1이 증가되는 것이 아니라 포인터가 가리키는 자료형의 크기만큼 증가된다. 예제 1 예제 1 - 결과 간접 참조 연산자와 증감 연산자 수식 의미 v = *p++ p가 가리키는 값을 v에 대입한 후에 p를 증가한다. v = (*p)++ p가 가리키는 값을 v에 대입한 후에 p가 가리키는 값을 증가한다. v = *++p p를 증가시킨 후에 p가 가리키는 값을 v에 대입한다. v = ++*p p가 가리키는 값을 가져온 후에 그 값을 증가하여 v에 대입한다. 예제 2 예제 2 - 결과 포인터의 형변환 → 꼭 필요한 경우 명시적으로 포인터의 타입 변경 가능! ※ 이 경우 형변환 연산자를 반드시 써야 함. 형변환 연산자 : (type) 예제 3 예제 3 - 결과 출처 - 천인국, 『쉽게 풀어쓴 C언어

[ C언어: 포인터와 함수 ] [내부링크]

Chapter11. 포인터 포인터와 함수 > 함수 호출 시 인수 전달 방식 → 외부로부터 매개 변수를 통한 데이터 수신 방식 1. 값에 의한 호출(call-by-value): 복사본이 전달된다. 2. 참조에 의한 호출(call-by-reference): 원본이 전달된다. ※ c언어에서는 값에 의한 호출만 지원 값에 의한 호출 예제 1 예제 1 - 출력 swap 함수 내에 변수 x, y 의 값은 교환되었지만 main 함수 내에 변수 a, b는 교환되지 않았다. basis) C언어 내 함수 호출은 "값에 의한 호출" 이기 때문, 복사본이 원본을 변경할 수 없다. ※ 함수 호출의 부작용 : 함수 호출의 결과로 의도하지 않은 변수의 값이 변경되는 경우. → 부작용이 많을 경우 버그 없는 소프트웨어를 작성하기 힘들다. 참조에 의한 호출 : C언어 포인터를 통해 "참조에 의한 호출"을 구현할 수 있다. 예제 2 예제 2 - 결과 scanf() 함수 > "참조에 의한 호출"을 사용하는

설레는 2022년을 보내기 위해서 [내부링크]

새로운 시작은 항상 설렌다. 내년에 더 발전된 내 모습을 상상하는 것만으로도 행복하다. 이 행복의 원동력이 용두사미로 그치지 않도록 2022년 나의 다짐과 계획들을 적어보려 한다. 먼저 2021년을 흘려보내면서, 학점과 운동, TOEIC, 운전면허, 네트워크관리사 2급과 독서에 중점을 두고 실현해 나갔었다. 후에 전공 공부에 소홀히 한 것 같아 전공 지식을 쌓을 겸 블로그를 시작했다. 알찬 한 해였지만, 2021년 상반기에 게임을 많이 했던 게 걸린다. 2022년 한 해는 다른 사람과 다를 바 없이 자기계발과 자기관리에 투자하고 싶다. 하고 싶은 일과 해야 할 일이 많은 20대, 차근차근 계획들을 실천해가며 한 해를 보내고 싶다. [ 2022 상반기 ] 1. 한국사검정능력검정시험 1급 취득 2. 런데이 꾸준히 하기, 주 2회 이상 운동하기 +) 증명사진 3. 리눅스 마스터 2급 1차 합격 4. 알고리즘, 자료구조 공부하기 5. 한국어문회 6급 취득 6. 한 달에 2권 이상 서적 읽기

[ 한국사능력검정 1급 ] 시험정보, 계획 [내부링크]

《 개요 》 한국사 교육의 올바른 방향을 제시하고, 자발적 역사학습을 통해 고차원적 사고력과 문제해결 능력을 배양하고자 함. 시험종류 및 인증 등급 57회 한국사능력검정시험 공지사항 시험시간 입실 시간 - 8:30 ~ 9:59 (10시 이후 입실 제한) 응시비용 시험 준비물 수험표, 신분증, 컴퓨터용 수성사인펜, 수정테이프 등 (한국사능력검정시험 홈페이지(www.historyexam.go.kr)에서 수험표를 출력) 성적통지 응시자가 인터넷 성적 조회 및 성적 통지서, 인증서 출력(홈페이지, 정부24) 시험일정 원서 수정 기간 및 수험표 출력 일정 안내 필자는 제 57회 시험을 볼 예정이다. 1/10일 원서 접수 (회원가입하기) 공부 시작 2/8일 수험표 출력 2/12 시험 응시 2/25 합격자 발표

[ C언어: Programming EX ] Pointer [내부링크]

바이트 순서 (Byte Ordering) 종류 0x12345678의 표현 빅 엔디언 (big-endian) 12 34 56 78 리틀 엔디언 (Little-endian) 78 56 34 12 01) 본인의 CPU의 Byte 순서 확인 프로그램 #include <stdio.h> int main() { int x = 0x12345678; // xp포인터에 변수 x의 주소를 반환 unsigned char* xp = (unsigned char*)&x; printf("byte ordering: %x %x %x %x\n", xp[0], xp[1], xp[2], xp[3]); return 0; } byte ordering: 78 56 34 12 필자: CPU Intel = 리틀 엔디언 (Little-endian) 02) 2개 정수의 합과 차를 동시에 반환하는 함수 #include <stdio.h> void get_sum_diff(int x, int y, int* p_sum, int* p_d

[ C언어: 문자와 문자열 ( +문자열과 포인터 ) ] [내부링크]

문자와 문자열 char형 - 문자 ("A") char형의 배열 - 문자열 ("ABC") NULL 문자 : 아스키 코드 값이 0인 문자 → 문자열의 끝을 나타낸다. (표현: '\0') = NULL 문자를 저장하기 위해, 문자열은 저장하는 데이터의 크기 보다 항상 하나 더 커야 한다. 문자와 다르게 문자열의 끝을 표시해야 하는 이유? : 일정한 바이트 개수를 가진 문자와 달리, 일정하지 않은 바이트 개수를 가진 문자열에 값을 입력했을 때. 사용하고 남은 바이트에 쓰레기 값이 들어 있을 수 있다. +) 아스키 코드 'NULL' → 0 '0' → 48 +) NULL : 원래 의미는 프린터로 보내자는 NOP(No Operation) 명령어를 의미 < 예제 1 > #include <stdio.h> int main() { int i; char str[4]; str[0] = 'a'; str[1] = 'b'; str[2] = 'c'; str[3] = '\0'; i = 0; while (str[i

[ C언어: 문자 입출력 라이브러리 ] [내부링크]

문자 입출력 라이브러리 입출력 함수 설명 int gatchar(void) 하나의 문자를 읽어서 반환한다. int _getch(void) 하나의 문자를 읽어서 반환한다. (buffer 사용 안함) void putchar(int c) 변수 c에 저장된 문자를 출력한다. void _putch(int c) 변수 c에 저장된 문자를 출력한다. (buffer 사용 안함) scanf("%c", &c); 하나의 문자를 읽어서 변수 c에 저장한다. printf("%c", c); 변수 c에 저장된 문자를 출력한다. getchar()과 putchar() int ch; ch = getchar(); // 하나의 문자를 읽는다. putchar(ch); // 하나의 문자를 쓴다. #include <stdio.h> int main() { // getchar()의 반환형은 char형이 아닌 int형이다 int ch; while ((ch = getchar()) != EOF) // (End of File) put

[ 책: 너의 심장을 쳐라 ] 리뷰 [내부링크]

출처 - 밀리의 서재 책 『너의 심장을 쳐라』는 밀리 오리지널 콘텐츠다. 필자는 밀리를 구독하고, 스릴러 장르의 소설을 찾아보다 평이 좋길래 이 책을 고르게 되었다. 먼저 이 책의 저자는 "아멜리 노통브"이며, 잔인함과 유머가 탁월하게 어우러진 작품으로 현대 프랑스 문학에서 커다란 반항을 일으킨 벨기에 출신의 작가이다. "엄마는 딸에게 질투를 느끼는가?" 책의 줄거리를 요약하자면 여신으로 칭해지는 아름다운 '마리'와 그녀와 결혼한 허우대 좋은 '올리비에'가 등장한다. 그 후 3명의 자식이 생기는데 첫째 '디안'은 여자아이, 둘째 '니콜라'는 남자아이, 셋째 '셀리아'는 여자아이였다. 첫째 마리가 태어난 후 엄마 '마리'는 모두에 기쁨을 받고 태어난 딸 '디안'에게 질투를 하기 시작한다. 이제 더는 내 이야기가 아니야. 이제부턴 네 이야기야. "너의 심장을 쳐라" 中 마리 p.14 디안은 네 살배기임에도 불구하고 엄마의 질투를 눈치채며 성숙하고 지혜롭게 헤쳐나가기 위해 노력한다. 여신

[ C언어: 문자열 입출력 라이브러리 ] [내부링크]

문자열 입출력 라이브러리 입출력 함수 설명 int scanf("%s", s) 문자열을 읽어서 문자 배열 s[]에 저장한다. int printf("&s", s) 배열 s[]에 저장되어 있는 문자열 출력한다. char *gets_s(char *s, int size) 한 줄의 문자열을 읽어서 문자 배열 s[]에 저장한다. int puts(const char *s) 배열 s[]에 저장되어 있는 한 줄의 문자열을 출력한다. scanf와 printf() "%s" 형식 지정자 사용. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { char name[100]; char nationality[100]; printf("이름을 입력하세요: "); scanf("%s", name); printf("현재 국적을 입력하세요: "); scanf("%s", nationality); printf("이름: %s\n", name); printf("국

[ C언어: 문자 처리 라이브러리 ] [내부링크]

문자 관련 처리 라이브러리는 문자들을 검사하거나 대문자를 소문자로 변환시키는 함수들을 포함한다. 헤더파일 <ctype.h> 저장되기 때문에, 문자 처리 라이브러리를 사용하기 위해선 반드시 포함해야한다. 문자를 검사하는 함수 이름은 is..()로 시작된다. 인수는 int형으로 선언되며 반환값도 int형이다. 문자 검사 라이브러리 함수 함수 설명 isalpha(c) c가 영문자인가? (a-z, A-Z) isupper(c) c가 대문자인가? (A-Z) islower(c) c가 소무나인가? (a-z) isdigit(c) c가 숫자인가? (0-9) isalnum(c) c가 영문자이거나 숫자인가? (a-z, A-z, 0-9) isxdigit(c) c가 16진수의 숫자인가? isspace(c) c가 공백문자인가? (' ', '\n', '\t', '\v', '\r') ispunct(c) c가 구두점 문자인가? isprint(c) c가 출력가능한 문자인가? iscntrl(c) c가 제어 문자인가?

[ 책: 지적 대화를 위한 넓고 얕은 지식1 ] 리뷰 [내부링크]

출처 - 밀리의 서재 과연 당신은 주체적으로 삶을 선택하며 살아가고 있는가? 아직도 여운이 가시지않고 어떻게 리뷰를 써야할지 감이 잡히지 않는다. 지금 읽은 게 후회 될 정도다. 300분에 걸려 완독했지만 그 시간이 정말 의미있었던 시간이었다. 세계를 살아가고 있고, 주체적인 시민이라면 <지적 대화를 위한 넓고 얕은 지식>은 필독서라해도 과언이 아니다. 바쁜 일상을 살아가는 현대인들에게 자신의 생계에 도움이 되지 않는 사회 문제들에 대한 평가와 판단을 미디어가 대신해주는 것은 어쩌면 다행인지도 모른다. 다만 이렇게 미디어에 자신의 판단을 양도하는 사람은 경제적으로 조금 여유로워지고 다른 사람보다 조금 더 성공할 수 있을지는 모르겠지만, 세계 밖의 진실을 볼 수 있는 기회를 갖지 못할 것이고, 인생의 깊이를 얻지 못할 것이며, 타인들과의 지적 대화 속에서 빛날 수는 없을 것이다. <지대넓얕> 中 p.258 먼저 책의 제목이 너무 기니 <지대넓얕>이라고 줄여 언급하겠다. 솔직히 그냥 당

[ C언어: 문자열 처리 라이브러리 ] [내부링크]

문자열 처리 라이브러리 함수 문자열 함수들은 string.h에 선언되어 있으며, 함수이름은 str로 시작한다. #include <string.h> 문자열 라이브러리 함수 함수 설명 strlen(s) 문자열 s의 길이를 구한다. strcpy(s1, s2) s2를 s1에 복사한다. strcat(s1, s2) s2를 s1의 끝에 붙여넣는다. strcmp(s1, s2) s1과 s2를 비교한다. strncpy(s1, s2, n) s2의 최대 n개의 문자를 s1에 복사한다. strncat(s1, s2, n) s2의 최대 n개의 문자를 s1의 끝에 붙여넣는다. strncmp(s1, s2, n) 최대 n개의 문자까지 s1과 s2를 비교한다. strchr(s, c) 문자열 s안에서 문자 c를 찾는다. strstr(s1, s2) 문자열 s1에서 문자열 s2를 찾는다. char *strtok( s. delimit ) 문자열 s를 delimit를 이용하여 토큰으로 분리한다. 문자열 길이: strle

[ C언어: 문자열 수치 변환 ] [내부링크]

문자열 수치 변환 저장 방식이 다른 문자열과 수치를 서로 어떻게 변환할까? sprintf()와 sscanf() 앞에 s는 문자열(string)을 의미한다. 첫 번째 매개 변수는 문자열이고 나머지 매개 변수는 printf(), scanf()와 동일하다. 함수 설명 sprintf(s, …) 변수의 값을 형식 지정자에 따라 문자열 형태로 문자 배열 s에 저장한다. sscanf(s, …) 문자열 s로부터 지정된 형식으로 수치를 읽어서 변수에 저장한다. < 문자열 100을 추출하여 정수로 출력하는 프로그램 > #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { char s[] = "100"; int value; sscanf(s, "%d", &value); // 문자열을 수치로 저장 printf("%d \n", value); value++; sprintf(s, "%d", value); // 수치를 문자열로 변환 printf("%

[ C언어: 문자열 여러 개를 저장하는 방법 ] [내부링크]

2차원 문자 배열을 사용하는 방법 char s[3][6] = { "init", "open", "close"; }; printf("%s", s[0]); // "init" 출력 문자 포인터 배열을 사용하는 방법 char *s[3] = { "init", "open", "close"; }; 문자열의 길이가 서로 다를 경우, 짧은 문자열이 저장된 행의 낭비되는 공간을 막을 수 있다. 즉, 메모리의 낭비를 막을 수 있다. 하지만 한 번 문자열이 결정되면 문자열의 내용을 변경할 수 없다. < 문자열을 입력받아 2차원 배열에 저장하는 프로그램 > #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int i; char fruits[3][20]; for (i = 0; i < 3; i++) { printf("%d번째 과일 이름을 적어주세요: ", i+1); scanf("%s", fruits[i]); } for (i = 0; i < 3;

[ C언어: 구조체란 무엇인가? ] [내부링크]

구조체란? 자료형은 기초 자료형, 파생 자료형, 사용자정의 자료형으로 나눌 수 있다. 구조체(structure)는 파생 자료형 중에서 가장 일반적이고 많이 사용되는 자료형이다. ex) 배열 - 같은 자료형의 묶음 int age[10]; ex) 구조체 - 다른 자료형의 묶음 struct student { int number; char name[10]; double grade; }; 구조체 선언 : 키워드(struct)를 사용하여 선언 구조체 이름 = 구조체 태그 구조체 멤버(structure member)는 구조체에 포함되는 변수이다. 구조체를 선언하는 것도 하나의 문장이기 때문에 세미클론을 붙여줘야한다. ※ 구조체 선언 ≠ 변수 선언 구조체 선언은 구조체의 형태만 정의한 것으로 변수를 만든 것이 아니며 데이터도 저장할 수 없다. 구조체 변수 생성 s1이라는 변수 안에는 구조체 멤버 number, name, grade가 들어있다. s1에 실제 메모리 공간은 각 멤버들의 크기를 합

[ C언어: 구조체의 활용 (구조체 중첩) ] [내부링크]

구조체를 멤버로 가지는 구조체 포인터뿐만 아니라 어떤 자료형이든 구조체의 멤버가 될 수 있고, 구조체도 다른 구조체의 멤버가 될 수 있다. +) 구조체를 구조체안에 중첩하는 것은 적어도 15번까지 허용된다. 이런 경우 멤버 변수를 참조하려면 많은 수의 마침표를 포함하는 상당히 긴 이름을 입력해야한다. 따라 3번 이상 중첩하는 것은 피하는 것이 좋다. ex) s1.dob.year = 1983; < 사각형을 point 구조체로 나타내기> #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> struct point { int x; int y; }; struct rect { struct point p1; struct point p2; }; int main() { struct rect r; int w, h, area, peri; printf("왼쪽 상단의 좌표를 입력하세요: "); scanf("%d %d", &r.p1.x, &r.p1.y); printf

[ C언어: 구조체의 배열 ] [내부링크]

구조체 배열의 선언 struct student { int number; int name[20]; double grade; }; struct student list[100]; : student 구조체의 배열을 list[]란 이름으로 선언 list[2].number =24; strcpy(list[2].name, "홍길동"); // 문자열은 항상 strcpy를 이용하여 대입 list[2].grade = 4.3; → 배열 인덱스가 2인 요소의 구조체에 값을 저장 구조체 배열의 초기화 struct student list[3] = { { 1, "Park", 3.42 }, { 2, "Kim", 4.31 }, { 3, "Lee", 2.98 } }; +) 구조체 배열의 원소 개수 계산하기 n = sizeof(list)/sizeof(list[0]); n = sizeof{list)/sizeof(struct student); < 예제 > #include <stdio.h> #define _CRT_SEC

[ C언어: 구조체와 포인터 ] [내부링크]

< 구조체에서 포인터가 사용되는 경우 > ① 구조체를 가리키는 포인터 ② 포인터를 멤버로 가지는 구조체 구조체를 가리키는 포인터 struct student s = { 24, "kim", 4.3 }; struct student *p; p = &s; // 구조체의 주소를 포인터에 대입 printf("학번 = %d 이름 = %s 학점 = %f \n", (*p).number,(*p).name, (*p).grade); // (*p)는 구조체 ※ *p.number이라고 하면 안 된다. .연산자의 우선순위가 *연산자 보다 더 높기 때문에, p.number가 먼저 계산되며 다음에 *(p.number)가 계산되기 때문이다. +) 간접 멤버 연산자 (indirect membership operator) 포인터를 이용하여 구조체의 멤버를 가리키는 것은 프로그램에서 자주 등장하기 때문에 이것을 위한 특수한 연산자이다. p->number; // (*p).number와 같다. -> 연산자가 간편하여 훨씬

[ C언어: 구조체와 함수 ] [내부링크]

구조체는 함수의 인수와 함수에 반환 값으로 사용될 수 있다. 사용될 때, "값에 의한 호출"이 원칙이다. https://blog.naver.com/goaehfkwl/222607947926 (값에 의한 호출 참고) [ C언어: 포인터와 함수 ] Chapter11. 포인터 포인터와 함수 > 함수 호출 시 인수 전달 방식 → 외부로부터 매개 변수를 통한 ... blog.naver.com 값에 의한 호출로 구조체의 크기가 클 경우 상당한 시간이 소요된다. 이 경우 구조체의 포인터를 사용하는 것이 바람직하다. 구조체를 함수의 인수로 넘기는 방법 → 포인터를 이용하여 구조체에 접근하는 방법 int equal(struct student *p1, struct student *p2) { if( p1->number == p2->number ) return 1; else return 0; } int main() { struct student a = { 1, "hong", 3.8 }; struct s

[ C언어: union 공용체 ] [내부링크]

공용체(Union): 같은 메모리 영역을 여러 개의 변수 간에 공유할 수 있는 기능 (→ 메모리 공간 절약) 같은 공간을 공유하기 때문에 동시에 모든 멤버 변수들의 값을 저장할 수 없으며 어떤 경우에는 하나의 멤버만 존재할 수 있다. 즉, 문자나 정수 둘 중 하나로 존재할 수 있다. union example { char c; // 같은 기억 공간 공유 int i; } 키워드: union, 공용체: example 공용체 example의 크기는 가장 큰 변수 i의 크기와 같다. (=4byte) → 공용체 선언 union example v; union example v = {'A'} 구조체와 마찬가지로 초기화 가능하지만, 한 번에 하나의 멤버만 사용되어 첫 번째 멤버만 초기화된다. #include <stdio.h> union example { int i; char c; }; int main() { union example v; v.c = 'A'; // 멤버 변수 c에 접근 printf("

[ C언어: enum 열거형 ] [내부링크]

열거형(enumeration): 변수가 가질 수 있는 값들을 나열해놓은 자료형. - 열거형으로 선언된 변수는 열거형에 정의된 상수들만 가질 수 있다. 열거형의 정의 키워드 enum사용, 구조체와 같이 새로운 자료형을 정의하는 방법 중 하나. → 열거형 days를 정의하는 방법 enum days { SUN, MON, TUE, WED, THU, FRI, SAT }; days는 SUN, MON, TUE, WED, THU, FRI, SAT 기호상수들이 모여 있는 자료형이다. 구조체와 같이 아직 열거형의 변수는 생성되지 않았다. → 열거형 변수 선언 enum days today; // 열거형 변수 today 저장 today = SUN; today는 열거형 변수로 열거형 days에 정의된 값들 ( SUN, MON, …) 만 가질 수 있다. today = MY_DAY; // 컴파일 오류 → 열거형 예시 enum colors { white, red, blue, green, black }; enu

[ C언어: Programming EX ] char&string [내부링크]

01) 사용자로부터 문자를 입력받고 아스키 코드 값으로 변환 후 출력하는 프로그램 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { char a; printf("문자를 입력해주세요: "); scanf("%c", &a); printf("아스키 코드 값 = %d", a); return 0; } 문자를 입력해주세요: A 아스키 코드 값 = 65 02) 공백 삭제 프로그램 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { char text[80]; char* result; char space[] = " "; printf("자기소개해주세요!\n"); gets_s(text, 80); result = strtok(text, space); while (result != NULL) { printf(

[ 책: 카피 쓰는 법 ] 리뷰 [내부링크]

출처 - YES24 < 카피 쓰는 법 > - 쉽고 짧게, 잘 쓰는 기본기를 다지기 위하여 이유미 지음 책 소개 CJ, ENM, 아모레퍼시픽, 신한카드 등 다양한 기업이 먼저 찾는 카피라이터이자 "팔지 않아도 사게 만드는" 글쓰기 강의와 『문장 수집 생활』 등의 저서로 많은 독자의 사랑을 받은 작가 이유미의 '카피 쓰기 위한 입문서'. 빛나는 한 문장을 길어 내는 단단한 일상을 가꾸기 위해, 원하는 방향으로 사람을 데려가는 단 한문장을 찾아내는 집요한 태도를 갖추기 위해 그간 저자가 터득한 노하우를 담았다. 현장에서의 다채로운 경험을 바탕으로 독자가 문장을 쉽고 짧게, 잘 쓰는 기본기를 다지도록 돕는다. <출처 - 밀리의 서재> 완독 시간: 80분 일만 잘한다고 박수 받기 힘들며 일을 잘하기도 힘들다. 무슨 직업을 갖든 어떠한 서비스와 제품을 판매하든 기본이 되는건 고객을 생각하는 마음에서 기인한다. 좋은 제품이어도 전범기업이면 불매운동을 하고 일을 잘하는 사람이어도 악인이면 오래 가

[ 주식: 6가지 주식 유형 by. 피터 린치 ] [내부링크]

개별 기업의 성장률은 경제 전체의 성장률과 대비해서 측정된다. <우리나라 국내총생산 및 경제성장률> 2021 1분기 2021 2분기 2021 3분기 국내총생산(명목 GDP) 501.248.1 511.233.1 518.021.3 경제성장률(실질GDP성장률) 1.7 0.8 0.3 출처 - e-나라지표 성장주 - 저성장주(저속 성장), 대형우량주(중간 성장), 고성장주(고속 성장) 1. 저성장주: 성숙한 대기업 성장할 만큼 성장했거나, 주저 않은 기업 < 특징 > · 정기적인 배당 지급 ex) 전기설비업체 2. 대형우량주: 코카콜라 < 특징 > · 대개 30~50% 이익을 바라보고 매수 · 포트폴리오의 위험성 완화 ex) 코카콜라, 허쉬 아무리 상황이 악화해도, 사람들은 여전히 콘플레이크를 먹는다. 월가의 영웅 中 280p 3. 고성장주: 성장하는 신생기업 < 특징 > · 연 20~25% 성장하는 작고 적극적인 신생기업 · 저성장주가 확장할 시 고성장주의 가능성 있음 · 지나친 의욕으로

[ C언어: typedef 자료형 정의&장점 ] [내부링크]

자료형(type) 정의(define) typedef unsigned char BTYE; // 기존의 char형을 BYTE형으로 정의 unsigned char형을 작은 정수를 저장하는 데 자주 사용되며, 위처럼 문자가 아닌 정수를 저장한다는 것을 강조할 때 typedef를 사용할 수 있다. BYTE index; // unsigned int index; 와 같다. c언어에서 int형은 컴퓨터마다 다른 저장 공간을 갖고 있어 이를 확실하기 위해 다음과 같이 사용하기도 한다. typedef int INT32 typedef short INT16; INT32 i; // int i; INT16 k; // short k; 구조체로 새로운 자료형 만들기 struct point { int x; int y; }; typedef 문은 복잡한 형식도 새로운 자료형으로 만들 수 있는 능력이 있다. typedef struct point POINT; 위처럼 struct point를 새로운 타입인 POINT로

[ 책: 메타버스 ] 리뷰 [내부링크]

< 메타버스 > 김상균 지음 책 소개 익숙하고도 새로운 미래가 온다 메타버스 시대 맞이하기 메타버스 열풍을 일으킨 인지과학 박사 김상균이 설명해 주는, Z세대가 살아갈 디지털 지구에 대한 가이드 <출처 - 밀리의 서재> 완독 시간: 약 240분 성공적인 미래를 꿈꾸는 이들, 슬기로운 자기 개발을 원하는 이들이라면 모두 메타버스에 올라타시기를 바랍니다. 새로운 우주가 당신을 기다리는 중입니다. 메타버스 中 21P 메타버스에 대한 지엽적인 지식을 집필하기보다 지식의 폭이 얕고 누구나 접근할 수 있으며 윤리적인 쟁점의 이야기가 다방면으로 진행된다. 지금 내가 쓰고 있는 이 글 또한 메타버스 중 '라이프로깅'이라는 분야에 해당된다. 이처럼 메타버스는 먼 이야기가 아닌 우리가 살고 있는 현실에 이미 뿌리를 내리고 있다. 뿌리가 내리고 열매를 맺기까지 많은 주의와 노력을 기울여야 하는 것처럼 우리는 메타버스와 관련해 활발한 토론을 진행하며 현실 세계와 가상세계의 물리적 충돌 해결 방안, 익명성

[ C언어: 이중 포인터(double pointer) ] [내부링크]

포인터의 기초를 넘어서 진정한 포인터의 위력을 마음껏 느껴보자 이중 포인터 포인터가 포인터를 가리킬 수 있을까? 두 개의 포인터 p와 q를 가정하면, 포인터 p와 q는 변수이기 때문에 주소가 있다. 따라서 포인터 p의 주소를 포인터 q에 넣으면 포인터 q가 포인터 p를 가리킨다. 이를 포인터의 포인터(pointer to pointer) 또는 이중 포인터(double pointer)라 한다. 이중 포인터 선언 int **q; // int형 포인터에 대한 이중 포인터 선언 → 정수형을 가리키는 포인터를 가리키는 포인터 int i = 100; // i는 int형 변수 int *p = &i; // p는 i를 가리키는 포인터 int **q = &p // q는 포인터 p를 가리키는 이중 포인터 ※ 포인터도 변수임을 잊지 말아야 한다. *p = 200; // 변수 i의 값이 200으로 변경된다. **q = 300; // 변수 i의 값이 300으로 변경된다. ※ *q = p 다음과 같은 문장은

[ 주식: 주식 평가 방법 & 유형별 스토리 파악 ] [내부링크]

어느 차트를 보더라도 이익 곡선이 주가 곡선과 함께 다닌다는 점에서, 우리는 이익의 중요성을 알 수 있다. 월街의 영웅 中 392p - 주가 곡선과 이익 곡선 비교 주가 곡선 > 이익 곡선: 저평가(매수) 주가 곡선 < 이익 곡선: 고평가(매도) ※ 항상 옳은 것은 아니며 주식에 정답은 없다. (참고용) - PER (주가수익배수) = 현재 주가 / 회계연도의 이익 : 해당 기업의 주가와 이익의 관계를 숫자로 요약한 것 (PER < 성장률: 헐값) PER은 투자자의 초기 투자금액을 회사가 다시 복원하는 데 걸리는 시간으로 생각하기도 한다. ex) PER이 10배면 10년이 걸린다. 저성장주 PER ↓ - 고성장주 PER ↑ - 경기순환주 (변동) 공익기업 평균 PER(7~9배) - 대형우량주 평균 PER(10~14배) - 고성장주 평균 PER(14~20배) 보유한 종목의 PER을 업종 평균과 비교한다. 과거 PER과 비교해 정상적인 PER 수준을 가늠한다. => PER이 높은 기

[ C언어: 포인터 배열(an array of pointers) ] [내부링크]

포인터 배열(an array of pointers) : 포인터들의 배열, 배열의 원소가 포인터 int *ap[10]; · [ ] 연산자가 * 연산자보다 우선순위가 높으므로 ap는 먼저 배열이 된다. · int *(포인터)들의 배열이 된다. = 포인터 배열 ap에는 10개의 배열 원소가 있고 각각의 원소들은 정수형 포인터로 정수형 변수들의 주소가 저장된다. 정수형 포인터 배열 초기화 int a = 10, b = 20, c = 30, d = 40, e = 50; int *api[5] = { &a, &b, &c, &d, &e }; 문자형 포인터 배열 char fname[4][10] = { "apple", "blueberry", "orange", "melon" }; 포인터 배열 중 가장 많이 사용되는 형태 = 효율적으로 여러 개의 문자열을 저장할 수 있다. 2차원 배열의 각 행은 문자열 중에서 가장 긴 문자열 "blueberry" 을 저장할 수 있도록 충분히 크게 선언해야 한다. 최선

[ C언어: 배열 포인터(a pointer to an array) ] [내부링크]

배열 포인터(a pointer to an array) : 배열을 가리키는 포인터 int (*pa)[10]; · 괄호가 있으므로 pa는 먼저 포인터가 된다. · int[10]을 가리키는 포인터가 된다. ※ 배열의 이름은 첫 번째 배열 원소를 가리키는 상수 포인터. 배열 포인터는 배열 전체에 대한 포인터. → 포인터 덧셈을 하게 되면 결과가 달라진다. #include <stdio.h> int main() { int a[5] = { 1,2,3,4,5 }; // int [5]배열에 대한 포인터 선언 int(*pa)[5]; int i; // 배열 포인터에 배열의 주소 대입 pa = &a; for (i = 0; i < 5; i++) printf("%d\n", (*pa)[i]); return 0; } 1 2 3 4 5 * 포인터 배열과 배열 포인터 비교 https://blog.naver.com/goaehfkwl/222632500904 [ C언어: 포인터 배열(an array of pointer

[ C언어: 함수 포인터(function pointer) ] [내부링크]

포인터는 변수뿐만 아니라 함수도 가리킬 수 있다. 함수 포인터(function pointer) 일반적인 포인터는 변수가 저장되어 있는 주소를 가리키지만 함수 포인터는 함수가 시작되는 주소를 가리킨다. 함수 포인터 선언 int (*pf)(int, int); 포인터 함수와 함수 호출에 필요한 인수, 반환형도 함께 알려줘야 한다. - 괄호에 의해 () 연산자보다 *연산자가 먼저 적용되어 pf는 포인터가 된다. - int pf(int, int) 함수를 가리키는 포인터가 된다. ※ 우선순위에 의해 괄호로 우선 포인터를 만들어야 한다. 괄호가 없다면 int *pf(int, int)와 같이 정수형 포인터를 반환하는 pf 함수가 되어 완전히 다른 의미가 된다. 이렇게 선언된 함수 포인터는 반환형, 매개 변수가 정확히 일치하는 함수만 가리킬 수 있다. int sub(int, int); // 함수 원형 정의 int (*pf)(int, int); // 함수 포인터 정의 … pf = sub; // 함

[ 책: 아침에는 죽음을 생각하는 것이 좋다 ] 리뷰 [내부링크]

출처 - yes24 " 아침에는 죽음을 생각하는 것이 좋다 " 김영민 지음 < 책 소개 > 저자는 이 책을 가리켜 과거의 사람들을 추억하고 미지의 세계를 궁금해하며 새로운 만남을 잊지 않으려는 노력이라고 이야기하면서 독자 역시 이 책을 통과하는 동안만큼은 불안하던 삶이 견고해지기를, 독서가 삶의 작은 기반이나마 되어주기를 바라고 있다. 우리 사회에 통용되는 불문율을 깨뜨리고, 비판적 인식을 공유하는 이 책은 독자들로 하여금 지금 자기 자신이 어떤 질문을 품고 살아가고 있는지 점검해 볼 기회를 전해준다. 출처 - 교보문고 우리는 없는 것을 바라고, 있는 것은 무시한다. …‥ 삶은 그런 식으로 소진되며, 죽음은 예기치 못하게 다가온다. 루크레티우스 이 책을 읽기 전 필자는 저자의 "공부란 무엇인가"를 재미있게 읽고 저자에게 궁금증이 생겨 "아침에는 죽음을 생각하는 것이 좋다"를 읽게 되었다. 나와 같은 연유로 읽는 사람도 적지 않을 거라고 생각한다. 또는 "추석이란 무엇인가"에 대한 칼

[ C언어: 다차원 배열과 포인터 ] [내부링크]

[ C언어: 포인터와 배열 ] 포인터와 배열 : 배열 이름 = 포인터 (배열 이름은 배열이 시작되는 주소) 4byte씩 연속된 공... blog.naver.com 위에서 포인터와 일차원 배열에 대해서만 다뤘다. 다차원 배열의 경우는 어떨까? 정수형 2차원 배열 m을 가정하자. int m[3][3]; 배열 m은 3개의 행(row)과 3개의 열(column)을 가지는 구조다. 2차원 배열을 저장하는 방법은 아래와 같다. ① 행우선 방법(row-major) ② 열우선 방법(column-major) 프로그래밍 언어에 따라서 두 가지 방법 중 하나를 선택하고 있으며 C에서는 행우선 방법이 사용된다. 1차원 배열의 이름 = 포인터 2차원 배열의 이름 = 첫 번째 배열 원소의 주소 &m[0][0] #include <stdio.h> int main() { int m[3][3] = { 10,20,30,40,50,60,70,80,90 }; printf("m=%p\n", m); // 배열 시작주소

[ 주식: 포트폴리오 설계&관리 ] [내부링크]

직접 종목을 선택한 보람이 있으려면 복리로 연 12~15% 수익을 올려야 한다. 여기에는 모든 비용과 수수료가 차감되고, 배당과 무상주 등 수익이 모두 포함되어야 한다. < 월가의 영웅 > 中 p.321 [ 적절한 종목수 ] 달걀은 모두 한 바구니에 담아야 한다. 제럴드 로브 모든 달걀을 한 바구니에 담지 마라. 바구니에 구멍이 날지도 모른다 앤드루 토비스 요점은 종목 수에 얽매이지 말고 당신에게 강점이 있으며, 모든 조사 기준을 충족하는 흥미로운 종목이라면 모두 보유하는 것이 최선이다. 소규모 포트폴리오 - 3~10개 1) 보유 종목이 많을수록 10루타 종목의 가능성이 높다. 2) 보유 종목이 늘어날수록 종목별 자금 배분에 유연성이 높아진다. 포트폴리오를 설계할 때 대형 우량주를 몇 개 포함하면, 고성장주와 회생주에서 오는 스릴을 완화할 수 있다. 예시) 손절매 주문을 내는 행위는 주식을 현재의 가치보다 낮은 가격에 팔겠다고 인정하는 행위다. < 월가의 영웅 > 中 p.329 포트

[ C언어: const 포인터 & volatile 포인터 & void 포인터 ] [내부링크]

const 키워드 : 변하지 않음을 나타내는 키워드 const를 붙이는 위치에 따라 다르게 해석된다 const char *p; → p가 가리키는 대상이 변경되지 않는다. char *const p; → 포인터 p가 변경되지 않는다. #include <stdio.h> int main() { char s[] = "Barking dogs seldom bite"; char t[] = "A bad workman blames his tools"; const char* p = s; char* const q = s; // p[3] = 'a'; p가 가리키는 내용을 변경할 수 없다. p = t; // p는 변경 가능하다. q[3] = 'a'; // p가 가리키는 내용을 변경할 수 있다. // q = t; q는 변경이 불가능하다. return 0; } volatile 키워드 : 프로세스나 스레드가 값을 항상 변경할 수 있어 값을 사용할 때마다 다시 메모리에서 읽는 것을 의미 주로 동일한 메모리를 여

[ C언어: main 함수의 인수(매개 변수), qsort() ] [내부링크]

main()도 함수이므로 매개 변수와 반환값을 가진다. int main(int argc, char *argv[]) // main()함수는 외부 입력을 받을 수 있다. { … } argc - 명령어가 가지는 인수 개수 argv - 명령어가 가지는 인수들의 문자열 형태 mycopy 프로그램이 파일을 복사하는 프로그램이라 가정하고 (mycopy.exe), 다음과 같이 명령어 프롬포트 상에서 원본 파일 이름과 복사본 파일을 받는다고 가정하자. C: \program> mycopy src dst // enter 운영체제는 src과 dst라는 명령 인수를 프로그램으로 전달했다. 어떤 방법으로 전달될까? argc는 명령어 행(command line)에 존재하는 모든 단어들의 개수를 전달한다. argc = 3 argv[] 배열의 원소들은 명령어 행에 인수들의 주소를 갖는다. (※문자열은 항상 맨 끝에 null 문자를 가진다는 것을 잊지 말자.) #include <stdio.h> int main(in

[ C언어: 스트림(stream) ] [내부링크]

입출력 장치들은 다양한 방식으로 Data를 주고받지만 C에서는 스트림(stream) 개념을 사용해 일관된 방법으로 입출력을 수행한다. 스트림(stream): 모든 입출력을 바이트(byte)들의 흐름으로 표현 스트림의 특징 ① 장치 독립성 입출력 장치에 상관없이 입출력은 연속된 바이트의 스트림이다. 따라 개발 진척 여부와 상관없이 입출력 프로그램을 미리 준비할 수 있다. ② 버퍼(Buffer) 사용 일반적으로 CPU의 속도가 입출력 장치보다 훨씬 빨라 CPU가 하나의 바이트 입출력을 기다리는 것은 비효율적이다. → CPU와 입출력 장치 중간에 버퍼를 설치한다. * 버퍼: 임시 저장 장치 표준 입출력 스트림 : 프로그램이 시작될 때 자동 생성되는 스트림으로, 프로그램이 종료될 때 자동 소멸된다. 이름 스트림 연결장치 stdin 표준 입력 스트림 키보드 stdout 표준 출력 스트림 모니터 화면 stderr 표준 오류 스트림 모니터 화면 프로그래머에게 제공되는 스트림의 최대 개수는 5

[ C언어: printf() 형식 제어 문자열 ] [내부링크]

형식 제어 문자열 : printf()의 첫 번째 매개 변수 format은 형식 제어 문자열이라고 한다. 형식 제어 문자열의 구조는 다음과 같다. 이 중 필수적인 요소는 "형식"이다. - 플래그(flag) 기호 의미 기본값 - 출력 필드에서 출력값을 왼쪽 정렬한다. 오른쪽 정렬된다. + 결과값을 출력할 때 항상 +와 -의 부호를 붙인다. 음수의 경우 -부호를 붙인다. 0 출력값 앞에 공백 문자 대신 0으로 채운다. -와 0이 동시에 있으면 0은 무시된다. 정수 출력의 경우, 정밀도가 지정되면 역시 0은 무시된다. (%08.5) 채우지 않는다. blank(' ') 출력값 앞에 양수나 0인 경우 부호 대신 공백을 출력한다. 음수는 -가 붙여지며 +플래그가 있으면 무시된다. 공백을 출력하지 않는다. # 8진수 출력 시 출력값 앞에 0을 붙이며 16진수 출력 시 0x를 붙인다. 붙이지 않는다. 출력 문장 출력 결과 설명 printf("%d", 123); 1 | 2 | 3 | | | | |

런데이 30분 달리기 8주차 완료 후기 [내부링크]

RunDay #런데이 30분 달리기 8주차를 완료한지 벌써 한 주가 흘러갔다 시간 참 빨라 거두절미하고.. 나는 마지막 달리기를 끝내자마자 카톡으로 먼저 후기를 남겼다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 초큼 부끄럽긴한데 30분 달리기를 완료하면 코에서 간지가 철철 흐를 수 있다^-^ "난 멋있어" 지금 보니 꼴불견이네 ㅎ 하지만 저랬던 이유가 있다 런데이 앱에서 성우 아저씨가 엄청난 격려와 응원을 해주시는데 이에 힘입어 자존감이 뿜뿜 올라가게 된다. 허허 달리기 시작 전에 엄청 힘들까봐 걱정할 수 있는데 처음에는 1분만 달리기를 반복해서 인생에서 달려 본 적 없는 나에게도 안성맞춤이었다^^ 또 몸이 건강하면 정신이 건강해진다고, 이를 뼈저리게 느끼게 해주는 경험이었다 (정말로) 정말 주변에 마구마구 추천해주고 싶다 자기관리와 자기계발에 관심있다면 바로 도전해보시길 *^_^* 아 맞다 런데이 어플에 스트레칭이랑 근력 운동 루틴도 이것저것 더 있는데 나는 귀찮아서 못

[ C언어: scanf() ] [내부링크]

기본적으로 키보드에서 입력되는 것은 문자열이다. 예를 들어 정수 123을 입력한 경우, 사용자는 키보드로 문자 "1", "2", "3"을 입력한다. 이 문자들을 모아 하나의 정수로 변환하는 작업을 scanf()가 한다. 또 scanf()는 문자열을 정수뿐 아니라 실수로도 변환한다. scanf()는 getchar()나, gets_s()와는 다르게 문자열을 숫자의 형태로 자동적으로 변환해 편리하다. getchar(), gets_s 참고) [ C언어: 문자 입출력 라이브러리 ] 문자 입출력 라이브러리 getchar()과 putchar() getchar() 는 Buffer를 사용한다. 따라서 값을 입력... blog.naver.com [ C언어: 문자열 입출력 라이브러리 ] 문자열 입출력 라이브러리 scanf와 printf() "%s" 형식 지정자 사용. → 이렇게 하면 약간... blog.naver.com scanf() 유용하게 사용하기 필드폭 지정해서 읽기 만약 형식 제어 문자

[ 주린이의 종목 분석기: IT / 보안 - 윈스 ] [내부링크]

맨땅에 헤딩하는 기분으로 막연하고 무지막지한 주린이의 주식분석기를 시작한다. 글씨체가 딱딱하면 더 뵈기 싫을까봐 글씨라도 둥글게 해본다^-^ #윈스 분야: 소프트웨어 IT 보안 먼저 주식 책에서 많이 봤던 것부터 PER이 13배? 회사가 연 13% 성장될 것이라고 기대하고 있다. 정말 그렇게 성장할 수 있을지 현재 그렇게 진행되는거 같은지 이익증가율과 비교해본다. 먼저 이익증가율은 영업이익증가율= {(현 회계연도 영업이익-전 회계연도 영업이익)/전 회계연도 영업이익}*100 (영업이익= 매출액-매출원가-판매관리비) 라는데 다행히 계산이 돼있는 것 같다. 영업 이익 증가율은 약 10% 배당까지 고려해보면 배당수익률을 계산기로 뚜드려서.. 약 2.7%가 나왔다. 13 / 13.3 < 1 습득한 내용에 따르면 1 보다 작을 시 비싼 상태라고 했다. 어떡하지 다시 마음을 가다듬고 연결 재무상태표를 확인해본다. 현금성 자산이 630억원에서 660억원으로 올랐다. 부채가 감소하는 추세다 아주

[ C언어: 파일의 기초 ] [내부링크]

응용 프로그램을 사용할 때 데이터나 현재 설정 정보를 저장하기 위해 디스크에 저장되는 파일을 사용한다. 파일을 사용하는 이유는 뭘까? 우리는 모든 데이터를 변수에 저장한다. 변수는 메모리에서 생성되며 영구적인 기억장치가 아니다. 따라서 데이터를 영구적으로 보관하기 위해 보조 기억 장치가 필요한데, C에서는 디스크(보조 기억 장치)에 파일을 생성시켜 데이터를 보관할 수 있다. 파일의 개념 입출력과 같이 파일도 스트림으로 취급되어 일련의 연속된 바이트로 생각하면 된다. 모든 파일에 입출력 동작이 발생하여 현재위치를 나타내는 파일 포인터(file pointer)를 가진다. 입출력 연산이 진행되면 파일 포인터는 자동적으로 이동한다. 파일의 유형 C에서는 텍스트 파일(text file)과 이진 파일(bianry file)의 두 가지 파일 유형을 지원한다. 1) 텍스트 파일 텍스트 파일에는 문자들이 포함되고, 문자들은 아스키 코드로 표현된다. 모니터, 키보드, 프린터 등이 모두 문자 데이터

[ C언어: 파일 입출력 ] [내부링크]

파일 입출력 라이브러리 함수 종류 입력 함수 출력 함수 문자 단위 int fgetc(FILE *fp) int fputc(int c, FILE *fp) 문자열 단위 char *fgetc(char *buf, int n, FILE *fp) int fputs(const char *buf, FILE *fp) 서식화된 입출력 int fscanf(FILE *fp, …) int fprint(FILE *fp, …) 이진 데이터 size_t fread(char *buffer, int size, int count, FILE *fp) size_t fwrite(char *buffer, int size, int count, FILE *fp) 파일들은 일반적으로 성공적으로 읽은 항목의 개수를 반환한다. 반환되는 값이 0이면 입출력을 실패했으며, 입출력이 실패하는 이유는 여러 가지다. 오류의 종류를 알고 싶으면 feof(), ferror()를 호출한다. 문자 단위 입출력 fputc()을 이용해 하나의 문자를

[ 주린이의 종목 분석기 2탄: 보안 / 에스원 ] [내부링크]

[ 주린이의 종목 분석기: IT / 보안 - 윈스 ] 맨땅에 헤딩하는 기분으로 막연하고 무지막지한 주린이의 주식분석기를 시작한다. 글씨체가 딱딱하면 더 뵈... blog.naver.com 어쩌면 조금 업그레이드 됐을지도 모르는 하지만 여전히 무지막지한 (귀여움 가득한) 주린이의 주식 분석기가 돌아왔다.. … 저번 주식 분석기에서는 내가 보유하고 있는 종목인 "윈스"를 분석해보았다. 이번에는 보안과 관련된 다른 종목을 분석해보고 두드러지는 점을 분석해 볼 예정이다. 1. 에스원 현 보안관련주 국내 시총 1위 2.6조 (토스증권 기준) 현재 최저가를 찍고 있는 중이다. 최근 2/24일 기준 거래가 69,100원 PER은 17이지만, 영업이익증가율이 (-)를 달리고 있다. 배당은 2,500원 씩 꾸준히 지급되고 있고 주식 배당이 아닌 현금 배당으로 지급된다. 물가 상승률도 있고, 딱히 재무재표가 막 좋아졌다고 느끼지는 못하겠다. 주요주주가 눈에 뛴다. 세콤 20%, 삼성 20% 국민연금공

3월에 쓰는 1월 회고.. [내부링크]

짧게 지나갔던 1월에 계획했던 일 들은 아래와 같다^-^ · 책 읽기 · PT 등록하기 · 운동하기 (RUNDAY) · 주식 공부 시작하기 · 블로그 꾸준히 하기 하나하나 되돌아보자면 먼저 < 책 읽기 > 블로그에도 책 후기가 있지만, "너의 심장을 쳐라", "지대넓얕 1", "메타버스", "카피 쓰는 법" 등이 있다. 공부는 안하지만 현재도 열심히 책을 읽고 있다 허허 주객전도가 따로없네 두 번째 < PT 등록하기 > 지금 3월에는 PT 20회가 마무리 돼서 끝났다. PT 후기를 간략히 말하자면 나는 헬스장 한 번 안가본 노근력 노체력 헬린이였다. 하지만 지금은 웨이트와 자세 교정을 열심히 해서 키도 컸고 체력도 튼튼해졌다. 진짜로 이래서 사람들이 운동 운동~ 하는거구나 1월에 먹었던 사진 중 마음에 드는 걸 가져왔는데 아주 모순적이고 자극적이어서 좋다. 나처럼 식단하면 다이어트는 무슨 손 쉽게 벌크업을 할 수 있지ㅎ 세번째 < 운동하기 > ^-^ 1월 초 왼쪽, 1월 후반 오른쪽

[ 책: 지적 대화를 위한 넓고 얕은 지식 제로 ] 리뷰 [내부링크]

출처 - yes24 "지적 대화를 위한 넓고 얕은 지식 제로" 채사장 지음 "이 책은 당신 삶의 가장 앞에 위치해야 한다. 이 책은 모든 지식의 목차에 해당한다." 지식을 알고 싶은면 선(先)지식이 필요하다! 지금까지 그리고 앞으로도 끊임없이 얻어야 하는 모든 지식을 위해, 당신의 가장 밑바탕에 마련해야 하는 지식 출처 - 밀리의 서재 완독 시간: 약 5시간 30분(330분) 당신은 이 복잡하고 변화무쌍하며 믿을 거라곤 없어 보이는 세상 속에서 어떻게 확실하고 참된 인식을 얻을 수 있다고 생각하는가? 지대넓얕 제로 中 p.623 지대넓얕 1을 읽고 물리적인 현실의 흐름을 알게되었다면 지대넓얕 제로를 읽은 후 보이지 않는 또 다른 세계의 흐름을 알았다면 자만일 것이다. 그저 처음으로 비행기를 타고 내가 살던 지역을 떠나 공기마저 어색했던 다른 지역에 한 발짝 내디뎌 여행했던 그 순간처럼 잠시나마 그 세계를 들여다볼 수 있었다. 여러 지역을 여행하면서 다양한 사람들의 생각과 행동양식을

[ 책: 나는 소망한다 내게 금지된 것을 ] 리뷰 [내부링크]

< 나는 소망한다 내게 금지된 것을 > 양귀자 지음 거침없이 질주하며 여성 억압에 관한 담대한 질문을 퍼붓는 강렬한 주인공, 자신의 존재 조건에 스스로 신화적 의미까지 부여하는 주인공 강민주 작가 양귀자의 장편소설. 1992년에 초판이 나오자마자 바로 페미니즘 논란과 함께 화제의 중심에 올랐고 그해 최고의 베스트셀러가 되었다. 또한 이 소설은 여성 억압의 현실을 고스란히 뒤집어 학대당하고 조련당하는 남성을 보여주는, 앞선 페미니즘 소설에서는 전혀 볼 수 없었던 공격적인 방법으로 우리 사회에 만연한 성의 불평등 문제를 제기하면서 처음부터 소설의 흡인력을 최대치로 높이고 있다.거침없이 질주하며 남과 여 두 개의 성(性)에 관한 담대한 질문을 퍼붓는 강렬한 주인공, 자신의 존재 조건에 사회적 의미는 물론 신화적 의미까지 스스로 부여하는 주인공의 등장을 통해 이 소설은 한국 페미니즘 문학의 다양한 활로를 열었다는 평가를 받고 있다. 출처 - yes24 <공부란 무엇인가> 에 나왔던가? 김영

[ 책: 나는 왜 혼자가 편할까? ] 리뷰 [내부링크]

< 나는 왜 혼자가 편할까? > 오메가 다카시 저 『나는 왜 혼자가 편할까?』(원제: 회피성애착장애回避性愛着障害)는 1인 가구의 증가와 더불어서 계속 늘어나고 있는 회피형 인간이 어떻게 하면 지금보다 더 편안하고 행복한 인생을 살 수 있는지 그 방법을 알려주는 책이다. 저자는 회피형 인간이 원래 태어날 때부터 내성적이고 소심했기 때문이 아니라 어린 시절 만들어진 ‘회피성 애착 성향’ 때문에 그런 성격으로 굳어진 거라고 말한다. 방치되거나 혹은 너무 억압적인 환경에 노출되면서 공감을 바탕으로 한 ‘애착 관계’를 형성하지 못했기 때문이다. 출처-yes24 완독 시간: 약 1시간 상처받는 것을 피하려고 자신의 인생으로부터 계속 도망칠 수도 있고, 도망치는 것을 그만두고 상처받는 것을 두려워하지 않고 맞서며 살 수도 있다. 어떤 것을 선택할지는 당신 자신의 몫이다. < 나는 왜 혼자가 편할까 > 中 p.218 서점에 들러 책 구경을 하다 너무 내 얘기 같은 제목이라 눈에 띄어서 읽게 되었는

[ Java: 자바의 특성·장점 ] [내부링크]

독립적으로 작동하는 안정된 프로그래밍 언어가 필요해 1991년 제임스 고슬링을 비롯한 선 마이크로시스템스 연구원들이 Java를 처음 개발했다. 자바의 특성 ① 플랫폼에 영향을 받지 않아 다양한 환경에서 사용할 수 있다. (이식성) write once, run anywhere 한 번 작성하면, 어디서든 돌아간다. 프로그램을 컴파일하면 Example.class 파일이 생성되는데 이는 바이트 코드로 완벽한 실행 파일이 아니다. 따라서 이 바이트 코드를 실행하려면 운영체제에 맞는 자바 가상 머신이 필요하다. = .class 파일을 만들면 운영체제에 맞는 가상 머신을 이용해 어느 환경에서나 실행할 수 있다. +) 자바 설치 시 자바 가상 머신(Java Virtual Machine: JVM)도 함께 설치된다. 이 특성으로 프로그램 실행 속도가 느리다는 단점이 있었지만 하드웨어가 발전하면서 자바 컴파일러 JIT(Just In Time)가 개선돼 해결되었다. +) 자바 가상 머신과 JIT 컴파일

[ Java: 변수란 무엇일까? ] [내부링크]

변수는 말 그대로 변하는 수입니다. 변수를 사용하기 위해 어떤 형태의 자료를 저장할 것인지 정해야 하는데, 이 형태를 변수의 '자료형'이라고 합니다. 자료형을 선택한 후 변수의 이름을 정해줘야 하는데, 이를 '변수를 선언한다'라고 합니다. int level; // 정수형 변수 level선언 level = 10; // 값 10을 level 변수에 대입 int는 정수를 나타내는 자료형이고 level은 변수 이름입니다. '=' 기호는 수학적 의미와 다르게 프로그램에서는 '오른쪽 값을 왼쪽에 대입한다'는 의미로 사용합니다. 'level이라는 이름의 변수를 정수 자료형 으로 선언한다. 선언한 level 변수에 값 10을 대입한다.' // 변수 선언 후 사용하기 package chapter2; public class Variable1 { public static void main(String[] args) { int level; level = 10; System.out.println(level

2022-03-14 금융시장 (금리, 환율, 주가) [내부링크]

[ 금리 ] [ 환율 ] [ 주가 ] 금리 상승, 환율(달러) 상승, 주가 하락

2022-03-15 금융시장 (금리, 환율, 주가) [내부링크]

[ 금리 ] [ 환율 ] [ 주가 ] 금리 변동 없음, 환율(달러) 상승, 주가 하락

[ Java: 변수 자료형 ] [내부링크]

변수와 메모리 변수: 컴퓨터 내부 메모리 공간에 저장 메모리: 프로그램이 실행되는 작업 공간 int level = 10; = 메모리에 4바이트 크기의 공간이 level이라는 이름으로 할당됩니다. 기본 자료형의 종류 정수형 문자형 실수형 논리형 1바이트 byte - - boolean 2바이트 short char - - 3바이트 int - float - 4바이트 long - double - ① 정수 자료형 : 양수, 음수, 0을 나타내는 자료형 각 정수 자료형에 따라 표현 가능한 유효 범위 자료형 바이트 크기 수의 범위 byte 1 (-2^7)~(2^7-1) short 2 (-2^15)~(2^15-1) int 4 (-2^31)~(2^31-1) long 8 (-2^63)~(2^63-1) ※ long형의 경우 자바는 모든 정수 값을 기본으로 int형으로 처리해 컴파일러에게 명시적으로 알려줘야합니다. int num1 = 12345678900; // int num2 = 12345678900

2022-03-17 금융시장 (금리, 환율, 주가) [내부링크]

[ 금리 ] [ 환율 ] [ 주가 ] 금리 하락, 환율(달러) 하락, 주가 상승

[ Java: 상수와 리터럴 ] [내부링크]

상수 선언 항상 변하지 않는 값을 '상수(constant)'라고 합니다. 자바에서 final이라는 예약어를 사용해 선언합니다. final double PI = 3.14; final int MAX_NUM = 100; 주로 상수 이름은 대문자로, 단어를 연결하는 경우에는 _기호를 사용합니다. 한 번 선언한 상수는 변하지 않아 선언과 동시에 값을 지정하는 것이 좋지만, 가끔 사용하기 전에 값을 지정하기도 합니다. package ch02; public class Constant { public static void main(Strin[] args) { final int MAX_NUM = 100; final int MIN_NUM; // 사용하기 전 초기화 MIN_NUM = 0; System.out.println(MAX_NUM); System.out.println(MIN_NUM); } } 100 0 Process finished with exit code 0 상수를 사용하면 편리한 이유 프

[ Java: 형 변환 ] [내부링크]

형 변환이란? 정수와 실수는 컴퓨터 내부에서 표현되는 방식이 달라 하나의 자료형으로 통일한 후 연산 해야 하는데 이때 형 변환(type conversion)이 이루어집니다. int n = 10; double dnum = n; 1. 바이트 크기가 작은 자료형에서 큰 자료형으로 형 변환은 자동으로 이루어진다. 2. 덜 정밀한 자료형에서 더 정밀한 자료형으로 형 변환은 자동으로 이루어진다. 형 변환의 기본 원칙 형 변환에는 크게 묵시적 형 변환(자동 형 변환)과 명시적 형 변환(강제 형 변환)이 있습니다. ① 묵시적 형 변환 1) 바이트 크기가 작은 자료형에서 큰 자료형으로 대입하는 경우 byte bNum = 10; int iNum = bnum; 자료 손실 없이 bnum의 값이 모두 inum에 저장되며 남은 3byte는 0으로 채워집니다. 2) 덜 정밀한 자료형에서 더 정밀한 자료형으로 대입하는 경우 int iNum2 = 20; float fNum = iNum2; 두 변수의 크기가 같은

2022-03-18 금융시장 (금리, 환율, 주가) [내부링크]

[ 금리 ] [ 환율 ] [ 주가 ] 금리 상승, 환율(달러) 상승, 주가 상승

[ Java: 기본 연산자 ] [내부링크]

항과 연산자 항(operand): 연산에 사용하는 값 연산자(operater): 연산에 사용하는 기호 연산자 설명 연산 예 단항 연산자 항이 한 개인 연산자 ++num 이항 연산자 항이 두 개인 연산자 num1 + num2 다항 연산자 항이 여러 개인 연산자 (5 > 3) ? 1 : 0; 대입 연산자(assignment operater) : 변수에 값을 대입하는 연산자 우선 순위가 가장 낮은 연산자로, 마지막에 연산 결과를 변수에 대입한다. [ 왼쪽 변수(lValue) = 오른쪽 변수(rValue) ] totalScore = mathScore + engScore; 부호 연산자 연산자 기능 연산 예 + 변수나 상수 값을 양수로 만듬 +3 - 변수나 상수 값을 음수로 만듬 -3 더하기, 빼기 연산에 쓰는 이항연산자이면서 부호를 나타내는 단항 연산자로도 사용합니다. int num = 10; System.out.println(+num); System.out.println(-num);

2022-03-21 금융시장 (금리, 환율, 주가) [내부링크]

[ 금리 ] [ 환율 ] [ 주가 ] 금리 상승, 환율(달러) 하락, 주가 하락

[ Java: 비트 연산자 ] [내부링크]

비트 단위의 연산을 하는 경우는 '암호화' 작업처럼 임의의 숫자를 만들거나, 어떤 변수의 특정 비트를 꺼내보는 (마스킹: masking) 경우에 사용합니다. 또는 하드웨어에 내장되는 임베디드 시스템 프로그램에서 메모리 용량이 부족하거나 계산이 복잡해 속도가 느려질 때, 속도를 빠르게 할 수 있습니다. 비트 논리 연산자 ① & 연산자 (AND 연산자) 두 개의 비트 값이 모두 1인 경우 결과 값이 1이 됩니다. ② | 연산자 (OR 연산자) 비트 값이 하나라도 1이면 연산 결과 값이 1이 됩니다. ③ ^ 연산자 (XOR 연산자) 비트 값이 같으면 0, 다른 값이면 1입니다. ④ ~ 연산자 (반전 연산자) 0은 1로, 1은 0으로 바꾸는 연산자입니다. 위 경우 부호 bit가 1로 바뀌었기 때문에 음수가 되었습니다. 비트 이동 연산자 ① << 연산자 << 시프트 연산자는 왼쪽으로 비트를 이동하는 연산자입니다. ② >> 연산자 >> 시프트 연산자는 오른쪽으로 비트를 이동하는 연산자입니다

[ 책: 첫사랑 by. 이반 투르게네프 ] 리뷰 [내부링크]

< 첫사랑 > 이반 투르게네프 저 [ 책 소개 ] 러시아의 작가 투르게네프 자신의 젊은 날 아픈 추억에 바탕을 둔 대표작 『첫사랑』. 한 여자를 사이에 둔 아버지와 아들의 삼각관계를 투르게네프 특유의 부드럽고 섬세한 필치로 그려내고 있으며, 등장인물들의 탁월한 심리 및 성격 묘사가 돋보이는 작품이다. 출처 - yes24 완독 시간: 98분 "가질 수 있는 만큼 네 힘으로 가져라. 남의 손에 휘둘리지 말거라. 네가 너 자신의 주인이 되는 것 - 그게 바로 인생의 묘미란다"라고, 어느 날 아버지가 내게 말했다. < 첫사랑 > 中 p.104 1860년에 발행된 고전이고, 러시아 작가가 지은 소설이다. 위 구절을 어디 뒤적거리다 봤는데 무슨 내용인지 궁금해져서 이 책을 찾아 읽게 되었다. 저 문장만 봤을 땐 주인공이 진취적이고, 인생의 엄청난 성찰이 드러나는 책인 줄 알았다. 정말 순수한 첫사랑 이야기라 남 사랑 이야기를 정독해서 읽어야 할지, 나도 못 해본 걸 읽어야 되나 회의감이 들기도

2022-03-25 금융시장 (금리, 환율, 주가) [내부링크]

[ 금리 ] [ 환율 ] [ 주가 ] 금리 상승, 환율(달러) 하락, 주가 상승

[ C언어: 이진 파일 입출력 ] [내부링크]

[ C언어: 파일 입출력 ] 파일 입출력 라이브러리 함수 파일들은 일반적으로 성공적으로 읽은 항목의 개수를 반환한다. 반환되는 ... blog.naver.com 위에서는 주로 텍스트 데이터의 입출력에 대해 알아봤다면 여기서는 이진 데이터의 입출력에 대해 살펴본다. 이진 파일(binary file): 데이터가 직접 저장되어 있는 파일 이진 파일의 장점은 효율성이다. 텍스트 파일에서 숫자 데이터를 읽을 경우 fscanf()를 사용해 문자열을 숫자로 변환해야 하기 때문에 비효율적이다. 이진 파일은 변환 과정 없이 숫자 데이터를 읽으며, 텍스트 파일에 비해 저장 공간을 적게 차지한다. 이진 파일의 단점은 이식성이다. 텍스트 파일은 컴퓨터의 기종이 달라도 파일을 이동할 수 있지만, 이진 파일의 경우 정수나 실수 데이터를 표현하는 방식이 컴퓨터 시스템마다 다를 수 있어 이식성이 떨어진다. 이진 파일 쓰기 배열에 저장된 정수값은 이진 파일에 저장, 대량의 데이터를 한 번에 기록할 때 편하다.

[ C언어: 순차 접근, 임의 접근 ] [내부링크]

순차 접근, 임의 접근 출처 - https://ko.wikipedia.org/wiki/%EC%88%9C%EC%B0%A8_%EC%A0%91%EA%B7%BC ① 순차 접근(sequential access): 데이터 파일의 처음부터 순차적으로 읽고 기록 - 한 번 읽은 데이터를 다시 읽으려면 현재의 파일을 닫고 파일을 다시 열어야 한다. ② 임의 접근(random access): 파일의 어느 위치에서든지 읽기와 쓰기 가능 임의 접근의 원리 순차적으로 데이터를 읽게 되면 파일 포인터(file pointer)는 파일의 시작 위치에서 순차적으로 증가해 파일의 끝으로 이동한다. 임의 접근인 경우 파일의 데이터 전체를 다 읽지 않고 부분적으로 골라서 읽고 싶은 경우 파일 포인터를 이동시켜 임의 파일 액세스를 할 수 있다. 이 때 위치 표시자를 조작해 파일을 원하는 임의의 위치에서 읽을 수 있다. 위치 표시자를 조작하는 함수는 fseek()이다. 파일 포인터 관련 함수 int fseek(FIL

[ C언어: 전처리기란? ] [내부링크]

전처리기란? 전처리기(preprocessor): 컴파일하기에 앞서 소스 파일을 처리하는 컴파일러의 한 부분. 전처리기는 수정된 소스 파일을 생성하고, 다음 단계 컴파일러 프로그램에 의해 본격적으로 컴파일된다. (보통 수정된 소스 파일은 컴파일 과정이 끝난 다음 삭제되기 때문에 사용자에게 보이지 않는다.) 지시어 의미 지시어 의미 #define 매크로 정의 #endif 조건 처리 문장 종료 #include 파일 포함 #ifdef 매크로가 정의되어 있는 경우 #undef 매크로 정의 해제 #ifndef 매크로가 정의되어 있지 않은 경우 #if 조건이 참일 경우 #line 행번호 출력 #else 조건이 거짓일 경우 #pragma 시스템에 따라 의미 다름 단순 매크로 단순 매크로(macro): #define 문을 이용하여 숫자 상수를 기호 상수로 만든 것 #define MAX_SIZE 100 상수 100을 MAX_SIZE 기호 상수로 표현하려는 이유는 무엇일까? ① 가독성을 높인다. (

[ C언어: 함수 매크로 ] [내부링크]

함수 매크로 : 함수와 같이 매개 변수를 가진 매크로 → 함수처럼 복잡한 계산을 숨기고 보다 간단하게 나타낼 수 있다. #define SQARE(x) ((x) * (x)) SQARE - 제곱을 구하는 매크로 정의 (매개변수 x를 갖는다.) ex) #define SUM(x, y) ((x) + (y)) #define MAX(x, y) ((x) > (y)) ? (x) : (y) #define MIN(x, y) ((x) < (y)) ? (x) : (y) 매크로 사용 시 주의할 점 ① 함수 매크로에서 매개 변수의 자료형을 쓰지 않는다. → 어떤 자료형이든 적용 가능, 자료형에 따라 여러 개의 매크로를 만들 필요가 없다. v = SQUARE(7); // 정수형 제곱 7*7 v = SQUARE(1.23); // 실수형 제곱 1.23*1.23 변수를 포함한 수식도 매크로의 매개 변수가 된다. v = SQUARE(a+b); ② 매크로의 매개 변수들을 괄호로 묶어야 한다. 함수 매크로 매개 변수는

[ C언어: #ifdef, #endif ] [내부링크]

#ifdef, #endif #indef: 조건부 컴파일 전처리 지시자 * 조건부 컴파일 : 어떤 조건이 만족 되는 경우에만 지정된 소스 코드 블록을 컴파일 한다. #ifdef DEBUG printf("value = %d\n", value); #endif #ifdef 다음에 있는 매크로 DEBUG를 검사해 매크로가 정의되어 있으면 #if와 #endif 사이에 있는 모든 문장 들을 컴파일한다. 정의되어 있지 않을 경우 문장들은 컴파일되지 않으며 실행 코드에 포함되지 않는다. (없는 것으로 취급) ex) int average(int x, int y) { printf("x=%d, y=%d\n", x, y); … } 디버깅 시 의심이 가는 부분에 변수 값들을 위처럼 출력하는 경우 출력문은 디버깅 시 유용하지만 디버깅이 끝나면 불필요한 문장이다. 따라서 다음과 같은 조건부 컴파일을 사용한다. int average(int x, int y) { #ifdef DEBUG printf("x=%d, y

[ C언어: #if, #else, #endif ] [내부링크]

#if #if DEBUG==1 printf("value=%d\n", value); #endif if 다음에 있는 기호를 검사해 기호가 참으로 계산되면 #if와 #endif 사이에 있는 모든 코드를 컴파일 한다. (조건은 상수 수식이어야 한다.) 매크로 DEBUG의 값이 1이면 #if와 #endif 사이에 있는 모든 문장들을 컴파일 한다. 따라서 DEBUG를 1이 아닌 값이나 정의하지 않을 경우 컴파일이 되지 않는다. #define DEBUG 0 #if, #elif, #else, #endif #elif: #if + #else, C의 else if에 해당 ex) #define NATION 1 #if NATION == 1 printf("안녕하세요?"); #elif NATION == 2 printf("你好?"); #else printf("Hello?:\)"); #endif 비교 연산자 사용 가능 if (VERSION > 3) // 버전이 3 이상이면 컴파일 … #endif 다른 매크로와

[ C언어: 다중 소스 파일 ] [내부링크]

소스 파일을 여러 개 만드는 이유가 뭘까? 서로 밀접하게 관련된 함수들을 모아 독립적인 소스 파일에 저장시키면 다음에 다시 사용할 수 있다. 별도의 소스 파일로 작성되어 있지 않으면 소스 파일에서 함수만을 분리하는 작업을 매번 해야 한다. 프로그램에서 각각의 소스 파일을 모듈(module)이라 한다. 각각의 모듈은 하나의 소스 파일과 함수들의 원형이 정의되어 있는 헤더파일을 가진다. 거듭 제곱을 구하는 함수 power()를 만들고 power.c에 저장한 후 main.c를 만들고 함수 main()을 정의한 다음, main()에서 power()을 호출한다. main.c #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include "power.h" int main() { int x, y; printf("x의 값을 입력해주세요: "); scanf("%d", &x); printf("y의 값을 입력해주세요: "); scanf("%d", &y); p

[ C언어: 비트 필드 구조체 ] [내부링크]

비트 필드 구조체 : 구조체의 일종으로, 멤버들의 크기가 비트 단위로 나누어져 있는 구조체를 의미 비트 필드를 사용하면 꼭 필요한 만큼 비트를 사용할 수 있어 메모리를 효율적으로 사용하는 것이 가능하다. ex) 상품 정보를 저장하는 비트 필드 구조체 struct product { unsigned style : 3; unsigned size : 2; unsigned color : 1; }; product 구조체에 비트 필드 3개가 정의되어 있고 각각 3, 2, 1 bit로 구성되어 있다. 비트 필드의 크기를 나타내는 숫자는 unsigned 자료형이 가지는 bit 수 사이의 값이다. ※ "unsigned style : 3"이 unsigned가 3개 있다는 뜻이 아니며 unsigned 중 3개의 bit를 사용한다는 의미다. 비트 필드는 선언된 순서대로 unsigned 자료형 안에 하위비트 부터 순차적으로 저장된다. #define _CRT_SECURE_NO_WARNINGS #include

[ C언어: 동적 할당 메모리란? ] [내부링크]

메모리 할당 방법 ① 정적 메모리 할당(static memory allocation) : 프로그램이 시작되기 전 미리 정해진 크기의 메모리를 할당 받는다. int score_s[100] - 프로그램 실행 중 크기가 변경될 수 없다. ② 동적 메모리 할당(dynamic memory allocation) : 프로그램 실행 도중 동적으로 메모리를 할당 받는다. 프로그램에서 필요한 만큼 메모리를 할당받고, 사용이 끝나면 반납한다. → 매우 효율적으로 사용할 수 있다. score = (int *) malloc(100*sizeof(int)); +) 동적 메모리 할당의 좋은 점은 변수가 생성되고 소멸되는 시간을 마음대로 조절할 수 있다. 또한 동적 배열도 얼마든지 정적 배열처럼 사용할 수 있다. score[0] = 10; score[1] = 20; … 동적 메모리의 사용 절차 메모리 할당량 결정 ↓ 라이브러리 함수 호출 ↓ 운영체제에 메모리 요청 ↓ 충분한 메모리 존재 시 요청 승인 후 메모

[ C언어: 동적 메모리 할당의 기본 ] [내부링크]

동적 메모리 할당 기본적인 함수 malloc()은 바이트 단위로 동적 메모리를 할당한다. malloc()은 <stdlib.h>에 원형이 정의되어 있다. int *p; p = (int *)malloc(100*sizeof(int)); // 100개의 정수 malloc() 반환형: void * → 프로그래머가 할당받은 메모리 블록을 어떤 자료형으로 사용할지 알 수 없기 때문이다. (void 포인터를 원하는 포인터 타입으로 변경 후 사용하면 된다.) int *score; score = (int *)malloc(100*sizeof(int)); if(score == NULL){ … // 오류처리(메모리가 올바르게 할당되었는지 확인) } malloc()은 메모리가 부족하면 null을 반환해 반환값이 null 값인지 확인해야 한다. +) 동적 메모리를 초기화시키지 않는 이유는 실행 시간을 조금이라도 단축시키기 위해서다. 쓰레기 값이 아닌 0으로 초기화된 동적 메모리를 원한다면 뒤에 나오는 cal

[ C언어: calloc()과 realloc() ] [내부링크]

calloc() : 0으로 초기화된 동적 메모리 할당, byte 단위가 아닌 항목 단위로 메모리 할당 int *p; p = (int *)calloc(5, sizeof(int)); realloc() : 할당한 메모리 블록의 크기 변경 int *p; p = (int *)malloc(5*sizeof(int)); p = realloc(p, 7*sizeof(int)); 첫번째 매개 변수(p): 기존에 동적 할당된 메모리 블록을 가리키는 포인터 두번째 매개 변수: 새로운 메모리 블록의 크기(바이트 단위), 기존의 데이터 값 유지 예제 1) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() { printf("정수 2개를 저장할 공간이 필요\n"); int* list = (int*)malloc(sizeof(int) * 2); int i; int* list_new; list[0] = 10; list[

[ C언어: 연결 리스트란? ] [내부링크]

연결 리스트의 개념 대량의 데이터를 저장하기 위해 배열을 이용했다. 배열은 구현이 간단하고 빠르지만 크기가 고정되어 있다. 이를 보완하기 위한 자료구조를 연결 리스트(linked list)라 한다. 연결 리스트는 각각의 원소가 다음 원소의 위치를 가리킨다. 즉, 연결 리스트란 물리적으로 흩어져 있는 자료들을 포인터(pointer)로 서로 연결하는 줄을 구현해 하나로 묶는 방법이다. 따라서 중간에 데이터를 삽입, 삭제할 때 용이하다는 장점이 있다. 항목 c를 삭제할 경우 데이터를 옮길 필요 없이 데이터를 연결하는 줄만 수정하면 된다. 연결 리스트의 구조 상자를 노드(node)라고 부르며, 노드 들의 집합을 연결 리스트라 부른다. 연결 리스트의 노드는 데이터 필드(data field)와 링크 필드(link field)로 이루어진다. 데이터 필드는 저장하고 싶은 데이터가 들어가며 데이터는 정수가 될 수 있고 복잡한 데이터가 될 수 있다. 링크 필드는 다른 노드를 가리키는 포인터가 저장

[ C언어: 연결 리스트 생성, 응용 ] [내부링크]

연결 리스트 생성 예 노드의 구조를 아래와 같이 가정 typedef struct NODE { int data; struct NODE *link; } NODE; ※ 노드 생성 X 일반적으로 연결 리스트는 필요할 때 마다 동적 메모리 할당을 이용해 노드를 동적으로 생성한다. NODE *p1; p1 = (NODE *)malloc(sizeof(NODE)); 포인터 변수 p1을 만들고 malloc() 함수를 이용해 노드의 크기만큼 동적 메모리를 할당 받는다. 이 동적 메모리가 노드가 된다. p1->data = 10; p1->link = NULL; 그 후 새로 만들어진 노드에 데이터를 저장하고 링크 필드를 NULL로 설정한다. NODE *p2; p2 = (NODE *)malloc(sizeof(NODE)); p2->data = 20; p2->link = NULL; p1->link = p2; 두 번째 노드를 동적으로 생성하고 첫번째 노드의 링크 필드가 두 번째 노드를 가리켜 두 개의 노드를 연결

[ Java: 추상 클래스 ] [내부링크]

추상 클래스란? 말 그대로 구제적이지 않은 클래스로 영어로 abstract class라고 합니다 지금까지 만든 클래스는 concrete class였습니다 추상 클래스는 항상 추상 메서드를 포함하고, 추상 메서드는 구현 코드가 없으며 이는 함수 몸체(body)가 없다는 것을 의미하죠 int add(int x, int y) { return x + y; } { } 중괄호 안, 구현부 안이 없는 이 함수(add)는 추상 함수(abstract function)이고 자바에서는 추상 메서드(abstract method)라고 합니다. 추상 메서드 선언 abstract int add(int x, int y); abstract 예약어를 사용하며 { } 대신 ;을 사용합니다. 참고로 int add(int x, int y) {} 이는 추상 메서드가 아닙니다, { }를 사용함으로써 메서드를 구현한 셈입니다. 추상 클래스와 추상 메서드는 기울임꼴로 표시합니다. 위 다이어그램을 예제 코드로 이해해보겠습니다.

[ 책: 5년 만에 신혼여행 / 장강명 ] 리뷰 [내부링크]

< 5년 만에 신혼여행 > 장강명 저 [ 책 소개 ] 우리는 어떻게 시시한 세상을 견디며 청춘을 보내야 할까? 연애는 어렵고, 결혼은 더 어렵다. 혼자 사는 것도 만만치 않다. 소설가 장강명의 모습도 우리와 다르지 않다. 《5년 만에 신혼여행》은 작가의 청춘 이야기이며, 연애 이야기이며, 결혼과 결혼 후의 이야기이다. 그가 어떻게 시시한 세상을 견디며 청춘을 보냈는지, 별 희망이 안 보이던 자신에게서 어떻게 희미하게나마 무언가를 건져냈는지, 첫사랑, 첫 섹스, 첫 직장 생활 같은 것들에서 어떻게 벗어났는지에 대한 이야기다. 작가는 HJ와 어렵게 연애를 하고, 힘들게 결혼을 하고, 끝내 한국을 떠나지 않고 지금까지 살아왔다. 그러므로 이 에세이는 연애와 결혼해 대해 소설가 장강명이 이야기하는 것들에 대한 에세이식 보고서이기도 하다. 장강명과 HJ는 한국이 싫다. 하지만 서로가 끔찍하게 좋다. 이거면 된 거 아닐까? 출처 - yes24 완독 시간: 약 50분 군대에 있을 때 기자가 되어

[ 책: 나를 힘들게 한 건 언제나 나였다 / 데일 카네기 ] 리뷰 [내부링크]

< 나를 힘들게 한 건 언제나 나였다 > 데일 카네기 저 [ 책 소개 ] 오늘도 현실이라는 벽에 가로막히고, 사람에게 상처 받았다면... 행복의 실마리도, 인간관계의 답도 모두 자신 안에 있다! 겉의 문제만이 아닌, ‘내 안의 진정한 나’를 찾아가는 한 권의 따뜻한 여정 … 어제는 후회되고 내일은 걱정된다면, 우울하고 불행하다고 생각된다면, 현실이라는 벽에 가로막힌 것 같다면, 타인의 말과 시선에 상처받았다면, 인간관계가 막막하게 느껴진다면 이 책이 세상을 살아가는 나침반이 되어줄 것이다. 출처 - 인터넷 교보문고 완독 시간: 약 40분 상대에게 충실할 것, 자신에게 충실할 것, 그리고 지금 이순간에 충실할 것 나힘언나 - 밀리의 서재 < 나를 힘들게 한 건 언제나 나였다 >, 책 "인간관계론"으로 유명한 데일 카네기가 쓴 책입니다. 전에 인간관계론을 열심히 읽은 기억이 있습니다. 서점을 둘러보다 위 책을 발견했는데, '데일 카네기가 이런 책을 썼다고?' 라는 생각이 들어 바로 읽게

[ Java: 상속에서 클래스 생성 & super() ] [내부링크]

상속 관계에서 클래스의 생성 과정을 살펴보면 하위 클래스가 상위 클래스의 변수와 메서드를 사용할 수 있는 이유를 알 수 있습니다. 상속의 개념을 알고 보시면 쉽게 이해하실 수 있습니다. [ Java: 상속 ] '상속'은 객체 지향 프로그래밍의 중요한 특징입니다. 상속은 보편적으로 알고 있는 뜻과 똑같이... blog.naver.com 하위 클래스가 생성되는 과정 클래스 생성 과정을 보다 쉽게 이해하기 위해 예제와 함께 살펴보겠습니다. (1) 상위 클래스 예제 package inheritance; public class Customer { protected int customerID; protected String customerName; protected String customerGrade; int bonusPoint; // 보너스 포인트 double bonusRatio; // 적립 비율 public Customer() { customerGrade = "SILVER"; bonus

[ 주린이 주식 스터디 -6 ] [내부링크]

현재가치와 관련해서 투자자가 알아두어야 할 것은 주식을 10,000원에 사서 1년 뒤에 10,000원에 처분하면 결코 본전이 아니라는 점이다. 주식 가치를 정할 때 요구수익률을 어떻게 구할 것인가? 책에서 나오는 대안은 ① CAPM ② 당신의 요구 수익률 ③ 투자등급에 해당하는 BBB- 5년 금리이며, 여기서 ③번을 권고한다. ①번은 허점이 있고, ②번은 정하기 어렵고, ③번은 위험자산인 주식보다는 안전자산인 예금으로 자금이 옮겨 진다면 악재가 되며 이러한 이유로 가치평가에 할인율에 금리를 포함시키는 것이다. 따라서 2022년 기준으로 BBB- 5년 금리는 10.04%이다. 한국신용평가 기준일 검색 [단위:%] 엑셀 저장 구분 3월 6월 9월 1년 1년6월 2년 3년 5년 국고채 1.44 1.58 1.80 2.01 2.50 2.96 3.18 3.39 AAA 1.94 2.04 2.25 2.65 3.22 3.58 3.78 3.83 AA+ 2.01 2.12 2.30 2.69 3.25 3.

[ Java: 메서드 오버라이딩 & 애노테이션(Annotation) ] [내부링크]

상위 클래스 메서드 재정의 상위 클래스에 정의된 매서드가 하위 클래스에 구현할 내용과 맞지 않을 경우 메서드를 재정의 할 수 있습니다. 이를 "메서드 오버라이딩(method overriding)"이라고 합니다. 오버라이딩 하기 위해선 상위 클래스의 반환형, 메서드 이름, 매개 변수 개수, 매개 변수 자료형과 같아야 합니다. ( 그렇지 않을 경우 자바 컴파일러는 재정의한 메서드를 기존과 다른 메서드로 인식합니다) 기존 메서드 (Customer 클래스) public int calcPrice(int price) { bonusPoint += price * bonusRatio; return price; } 메서드 재정의 package inheritance; public class VIPCustomer extends Customer { private int agentID; double saleRatio; … @Override public int calcPrice(int price) { bon

[ Java: 다형성(polymorphism) ] [내부링크]

다형성이란? : 하나의 코드가 여러 자료형으로 구현되어 실행되는 것 쉽게 말해 같은 코드에서 여러 실행 결과가 나오는 것을 말합니다. +) 다형성은 추상 클래스, 인터페이스 에서 구현됩니다. 안드로이드, 스프링 등 자바 기반의 프레임워크에서 응용할 수 있는 중요한 개념입니다. 3개의 클래스가 Animal 클래스를 상속 받는 예제를 통해 알아봅니다. Animal 클래스 package polymorphism; public class Animal { public void move() { System.out.println("동물이 움직인다"); } } class Human extends Animal { @Override public void move() { System.out.println("사람이 두 발로 걷는다"); } } class Tiger extends Animal { @Override public void move() { System.out.println("호랑이가 네 발로 뛴

[ Java: 다운 캐스팅과 instanceof ] [내부링크]

상위 클래스를 자료형으로 선언하는 Animal ani = new Human(); 코드를 쓸 수 있습니다. 필요에 따라 다시 원래 인스턴스의 자료형(Human 형)으로 되돌아가야 하는 경우가 있습니다. 이를 다운 캐스팅(down casting)이라고 합니다. instanceof 다운 캐스팅을 하기 전 원래 클래스의 자료형을 확인하는 예약어가 'instanceof'입니다. Animal hAnimal = new Human(); if(hAnimal instanceof Human) { Human human = (Human)hAnimal; } instanceof의 반환 값이 true이면 다운 캐스팅을 하는데, 이때는 Human human = (Human)hAnimal; 문장과 같이 명시적으로 자료형을 써 주어야 합니다. 상위 클래스로는 묵시적으로 형 변환이 되지만, 하위 클래스로 형변환을 할 때는 명시적으로 해야합니다. instanceof로 인스턴스형을 확인하지 않으면 오류가 발생할 수 있습

[ 주린이 링크 제니시스 IT관련주 분석기 ] [내부링크]

오늘은 링크 제니시스를 분석해봅니다 먼저 링크 제니시스의 기업가치를 알아봐요 요구 수익률 K는 BBB-5년 금리를 사용해봅니다. 9.82 ROE에 변동성이 있어 3분기의 평균으로 ROE를 정합니다. = 5.23 지배주주지분 = 41억 기업 가치 = 21.84억 적정 주가, 21.84억/5,969,782,550 = 약 0.3원? 주식이란 뭘까 분석하려는 종목마다 답이 없네 더 분석하고 싶은 마음이 사라졌습니다.

[ Java: 객체 배열 & 배열 복사 ] [내부링크]

객체 배열 사용 객체 배열은 int 나 char들 기본 자료형 배열과 사용 방법이 조금 다릅니다. 어떻게 다른지 예제를 통해 확인해봅시다. Book 클래스로 객체 배열을 만들어보겠습니다. package array; public class Book { private String bookname; private String author; public Book() {} // 디폴트 생성자 public Book(String bookname, String author) { this.bookname = bookname; this.author = author; } public String getBookname(String bookname) { this.bookname = bookname; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public

귀차니즘 인간의 토너패드 추천.. [내부링크]

스킨케어가 23초면 끝난다고라? 세럼, 스킨, 로션을 챙겨 바르는 게 힘겨워 격일로 기초케어를 하게되는 나에게 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 엄청난 메리트로 다가왔어요 그렇게 받는 날만 기다리다가 . ㆍ 두둥! 연한 핑크색의 이쁜 패키지 어? 예쁘다. 자신감 뿜뿜인 웰컴카드^-^ 놀라운 경험 한 번 느껴보자구 머야 많이 들었네? 5개 들었거니 했는데 10개씩 들어있습니다 @_@ 소포장이라 휴대용이 가능한 점 친구집에서 자고갈 때 한 장씩 들고 가유^^ (가방에 태블릿만으로 벅차ㅎ) 패드에 핑크색이 뭐지? 했는데 팩패드를 손에 끼워서 피부결정돈 + 팩의 역할을 할 수 있다! 항상 스킨케어를 설렁설렁해서 아침마다 메이크업을 떠다니게 하고 그랬는데 스킨바꿨다고 안뜨는게 말이되는거구나? 집에 있는거 갖다 버려야되나보다 ㅋㅎ 아휴 간편함에 놀라고 멀쩡한 메이크업에 두 번 놀라 헐레벌떡 추천하고 싶었어요 "모닝3종팩패드"를 협찬 받아 작성한 후기예요! https://m.smartstor

[다이어트 제품] 84.4kcal 안단 저칼로리 복숭아잼 후기 [내부링크]

가격: 8,900원 개당 220g 이번에 저칼로리 잼이 나와서 신청해봤는데 어쩌다 제품 협찬을 받게 되었다 과연 맛있을까? 다이어터에게 제일 중요한 것은.. 제품 성분과 맛 아무리 성분이 좋아도 맛이 없으면 도루묵... (맛 없어서 안먹게 돼ㅎ) 먼저 성분을 보면 총 내용량 220g 84.4kcal 에 탄수화물: 104g 당: 13.1g 대체 당: 83g 식이섬유: 2.6g 단백질 0.9g 1회 제공량이 약 45g이니까 대충 6번 먹을 수 있고 1회 당 탄수화물 15g 정도 먹는다^^ 기존 잼과 다르게 매우매우 착한 친구 잼을 죄책감 없이 먹을 수 있다는 생각에 바로 맛을 보았다 먼저 비주얼은 영롱하다 뭐랑 먹어야 탄단지 비율이 맞을까 고민하다가 식빵에 잼 + 단백질 쉐이크를 먹어야겠다는 생각이 들었다. 하지만 모든게 생각대로 흘러가지 않는다 빵이 없어 요플레로 맛을 봤다 (간식용) 어? 맛있네 맛 평가를 내리자면 밤 + 복숭아 맛 = 달달한 맛 띠옹할 수 있는데 시지 않은 잼맛?

[ 책: 열두 발자국 / 정재승 ] 리뷰 [내부링크]

< 열두 발자국 > 정재승 저 [ 책 소개 ] 신간 《열두 발자국》은 지난 10년간 펼쳐졌던 저자의 강연 가운데 가장 열띤 호응을 받았던 12편의 강연을 선별하여 내용을 보충하고 새롭게 집필한 것이다. 점심 메뉴 고르기도 어려운 사람들을 위한 결정장애 처방전부터, 제4차 산업혁명을 맞이하기 위한 자세까지, 조금 더 현명하게 내 삶을 가꾸고 다가올 새로운 세상을 준비하기 위한 과학의 지혜를 모아냈다. 정재승의 강연은 가보지 않았던 새로운 생각의 숲으로 이끄는 발자국이다. 그의 발자국을 따라 들어간 숲에서 청중들은 ‘과학 지식이 삶과 세상에 대한 통찰과 지혜로 바뀌는 경험’을 하게 된다. … 언제나 ‘새로고침’하고 싶은 인생의 난제들 앞에서, 숨 가쁘게 변화하는 시대의 한 가운데에서 저자는 질문을 던지고 해답을 독자들과 함께 탐색한다. 그리고 독자들은 생각의 모험으로, 지성의 숲으로, 지도 밖의 세계로 이끄는 저자의 발자국을 따라 인간이라는 거대한 우주를, 아직 오지 않은 세상을 탐험하

[ Java: ArrayList 클래스 활용 ] [내부링크]

ArrayList 클래스는 객체 배열을 관리할 수 있는 멤버 변수와 메서드를 제공해 사용법을 알아 두면 편리하게 사용할 수 있습니다. 기존 배열과 다르게 배열 길이를 정하지 않아도 됩니다. 또 배열 사용 중 배열 길이와 위치를 수정할 수 있어요. ArrayList 클래스 주요 메서드 메서드 설명 boolean add(E e) 요소 하나를 배열에 추가 *E는 요소의 자료형 int size() 배열 요소의 개수 반환 E get(int index) 배열 index 위치에 있는 요소 값 반환 E remove(int dex) 배열 index위치에 있는 요소 값 제거 boolean is Empty() 배열이 비어 있는지 확인 더 많은 메서드가 궁금하거나 찾고싶은 메서드가 있다면 밑에 사이트를 참고하면 됩니다. 자바 API 클래스와 메서드를 알려주는 사이트입니다. (자주 들어가게 될테니 즐겨찾기에 추가해두세요...! 필자도 계속 보게 됩니다ㅎ) Overview (Java Platform SE

[ Java: 다차원 배열 ] [내부링크]

다차원 배열이란? 이차원 이상으로 구현된 배열을 '다차원 배열'이라 합니다. 다차원 배열은 평면이나 공간 개념을 구현하는데 사용합니다. 이차원 배열 int[ ][ ] arr = new[2][3]; 자료형(int)과 배열이름(arr), [2]: 행 개수, [3]: 열 개수를 나타냅니다. 이차원 배열 초기화 int[i][j] arr = {{1, 2, 3}, {4, 5, 6}}; 이차원 배열 초기화 ex package array; public class TwoDimension { public static void main(String[] args) { int[][] arr = {{1,2,3}, {4,5,6}}; for(int i=0; i<arr.length; i++) { for(int j=0; j<arr[i].length; j++) { System.out.println(arr[i][j]); } System.out.println(); // 행 출력 후 한 줄 띄움 } } } 1 2 3

[ Java: 상속 ] [내부링크]

'상속'은 객체 지향 프로그래밍의 중요한 특징입니다. 상속은 보편적으로 알고 있는 뜻과 똑같이 물려준다는 의미입니다. 클래스의 상속 "B 클래스가 A 클래스를 상속받는다." 우리가 생각하기에 상속을 하는 클래스에서 상속을 받는 B 클래스로 화살표가 갈 것 같지만, 클래스 간 상속을 표현할 때는 왼쪽 그림 처럼 표현합니다. 상위 클래스는 또 다른 말로 '부모 클래스', 하위 클래스는 '자식 클래스' 라고 합니다. 클래스 상속 문법 상속을 구현할 때는 extends 예약어를 사용합니다. (extend: 확장하다) class B extends A { } class americano extends Coffee { … } class cafemoca extends Coffee { … } 위처럼 상속 관계에서는 상위 클래스가 하위 클래스보다 일반적인 개념이고, 하위 클래스는 상위 클래스보다 구체적인 클래스가 됩니다. 상속 ex [ 고객 관리 프로그램 구현하기 ] package inherita

저탄고지 식단: 키토선생 [버터 커피] 후기 [내부링크]

티비에서 엄정화님이 아침에 방탄 커피를 드시는게 관리 비법.. 이란다. 방탄 커피 레시피가 버터와 MCT오일을 섞어서 만드는 건데 보면서 과연 저게 무슨 맛일까? 싶었다. 짜잔 갬성샷 장난없고 18입 가격: 27,000원 개당 1,500원 꼴 성분을 보면 저탄고지 식단이라는 걸 바로 알 수 있다 탄수화물 3g 지방 13g 무설탕 & 당류 0g 먹어봐야지... 긴장된다 이게 무슨 맛일까? 커피맛인데 버터맛? 버터에 커피맛이 더 정확한 것 같다 느끼한 거 별로 안좋아하면 도전하기 쉽지 않을 것 같다 (본인) 요때 띠옹하고 저탄고지 식단으로 아침 운동 가기 전에 다시 먹어봐야지! 다시 먹어봐도 (믹스커피 기대하지 마시고) 이름대로 버터커피 맛이다 공복에 뛰러가면 좀비처럼 집에 들어오는데 먹고 가니 확실히 포만감은 좋았다 사람처럼 집에 들어옴 MCT 오일이 뭔가 봤더니 탄소 사슬이 짧아 체지방으로 저장되는 비율이 적고 빠르게 에너지원으로 쓰인다는 특징이 있다는데 그래서 방탄커피에 주재료로

[ Java: this 예약어 ] [내부링크]

자신의 메모리를 가리키는 this this: 생성된 인스턴스 스스로를 가리키는 예약어 package thisex; public class BirthDay { int day; int month; int year; public void setYear(int year) { this.year = year; } public void printThis() { System.out.println(this); } } package thisex; public class ThisExample { public static void main(String[] args) { BirthDay bDay = new BirthDay(); bDay.setYear(2000); System.out.println(bDay); bDay.printThis(); } } thisex.BirthDay@4eec7777 thisex.BirthDay@4eec7777 this 값은 참조 변수 bDay 출력 값과 같습니다. 클래스 코드에서

[ Java: 객체 간 협력 ] [내부링크]

객체 지향 프로그램은 객체를 정의하고 객체 간 협력으로 만들어집니다. 실제로 객체의 협력이 어떻게 이뤄질까요? 학생, 버스, 지하철 세 객체를 만들고 어떻게 협력이 이루어지는지 살펴보겠습니다. 학생 클래스 구현 package cooperation; public class Student { public String studentName; public int grade; public int money; // 학생 이름과 가진 돈을 매개변수로 받는 생성자 public Student(String studentName, int money) { this.studentName = studentName; this.money = money; } // 학생이 버스를 타면 1,000원 지불하는 method public void takeBus(Bus bus) { bus.take(1000); this.money -=1000; } // 학생이 지하철을 타면 1,000원 지불하는 method public v

[ 주린이 주식 스터디 -5 ] [내부링크]

정확하게 맞히려다 완전히 빗나가는 것보다 대충이라도 맞히는 편이 낫다 워렌 버핏 적정주가, 주식의 가치를 어떻게 측정할 것인가? RIM(잔여이익모델)과 S-RIM(made by 서경인...) +) ROE(Retuen On Equity): 자기자본순이익률 EX) 자기자본 100억, 회사 당기순이익 14억 (→ ROE: 14%), 요구수익률 10% ROE가 10%라면 자기자본만큼의 가치 ROE < 주주요구수익률: 기업가치 100억↓ ROE > 주주요구수익률: 기업가치 100억↑ '기업가치 = 자기자본 + 초과이익' ① 4%의 초과 이익(4억)을 내는 경우 적정가치 ② 2%의 미달 적자(-2억)를 내는 경우 적정가치 IFRS 수혜주의 비밀 실제 바뀌는 건 하나도 없는데도 충당금이란 '숫자'가 줄고 이익이라는 숫자가 늘어서 세금은 '현금'으로 내야한다. 이익이라는 숫자를 얻고 세금이라는 현금을 잃었으니, 기업가치는 오히려 감소해야한다. P.612 하지만 이익 증가로 (이익으로 가치를 판

[ Java: static 변수 ] [내부링크]

각 인스턴스마다 따로 생성되는 변수가 아닌 공통으로 사용하는 변수를 'static 변수'로 선언합니다. static 변수의 정의와 사용 방법 static 변수는 '정적 변수'라고 불리기도 하며 클래스 내부에 선언합니다. static int serialNum; 이처럼 자료형 앞에 static 예약어를 사용합니다. static 변수는 프로그램이 실행되었을 때 딱 한번 메모리 공간이 할당되며 모든 인스턴스가 공유합니다. 따라서 다른 멤버 변수처럼 인스턴스가 생성될 때마다 새로 생성되는 변수가 아닙니다. 이런 이유로 클래스에 기반한 변수라고 하여 '클래스 변수(class variable)'라고도 합니다. static 변수 사용 package staticex; public class Student { // static 변수는 인스턴스 생성과 상관 없이 먼저 생성됨 public static int serialNum = 1000; public int studentID; public String

'법의 허점'을 노린 구글 vs 방통위의 '인앱결제 강제방지법' [내부링크]

꼼수 모자라 소송 카드 만지작…구글 반격에 자존심 구긴 '인앱법' [편집자주] '인앱결제 강제방지법'을 둘러싼 구글과 한국 정부간 갈등이 고조되고 있다. 빅테크의 일방적 수수료 정책에 제동을 건 '세계 최초' 입법으로 평가받았지만, 법의 허점을 노린 구글의 반격과 정부의 규제의지가 news.naver.com 기사 요약 '인앱결제 강제방지법'은 빅테크의 일방적 수수료 정책에 제동을 건 '세계 최초' 입법이다. 법의 허점을 노린 구글과 정부의 규제의지가 '2라운드'로 번지는 흐름이다. 1. '강대강' 치닫는 방통위-구글 구글의 '아웃링크'를 금지하며 방통위는 이를 '인앱결제 강제 방지법'위반이라는 유권해석을 내렸다. 따라 방통위는 실태조사를 할 예정이며 이에 거부할시 불이익을 부과한다. 2. '허점' 가진 법, 예고된 '반격' 결제 강요를 방지하는 '인앱(In-App) 결제 방지법'에 구글은 '제 3자 결제'를 도입했으며, '아웃링크 금지' 방안을 모색했다. 인앱결제방지법은 구글의 Pl

[ Java: 변수 유효 범위 ] [내부링크]

변수 유효 범위란? 함수나 메서드 안에서만 사용할 수 있는 지역 변수(로컬 변수, local variable), 클래스 안에서 사용하는 멤버 변수(인스턴스 변수, instance variable), 여러 인스턴스에서 공통으로 사용할 수 있는 static 변수(클래스 변수, class variable) 변수는 어디에 어떻게 선언되느냐에 따라 유효 범위(scope)가 달라집니다. 지역 변수의 유효 범위 - 함수나 메서드 내부의 선언: 다른 함수에서 사용X 스택에 생성되는 지역 변수는 함수가 호출될 때 생성되었다가 할당된 메모리 공간이 해체되면서 사라집니다. 멤버 변수의 유효 범위 - 클래스가 생성될 때 힙(heap) 메모리에 생성: 클래스의 모든 메서드에서 사용O 힙에 생성된 인스턴스가 가비지 컬렉터(garbage collecter)에 의해 수거되면 메모리에 사라집니다. static 변수의 유효 범위 - 클래스 생성과 상관없이 데이터 영역 메모리에 생성: 클래스 외부에서 사용O

당신의 게으름 괜찮으신가요? (게으름 테스트) [내부링크]

(커피 응모는 대학재학생만 참여할 수 있습니다!) 안녕하세요 여러분! 정말 재밌는 테스트! 그리고 엄청난 이벤트가 있어서 이렇게 글을 쓰게 되었습니다 바로 삼성에서 개최하는 이벤트인데요 이벤트 참여하면 전원 모두!! 스벅 아메리카노 Tall 2잔을 증정한답니다! 4/8 ~ 4/30 일로 이벤트 기간은 아직 넉넉하답니다~! 커피값도 아끼고 (제일 중요) 나의 게으름도 테스트도 해볼 수 있는 정말 좋은 기회 아닐까요? 테스트를 시작하면 신과의 대화부터 진행되어요 ㅋㅋㅋㅋㅋㅋㅋ 그 다음 부터 선택지가 나오고 귀여운 신이 나옵니다 (시강) 그렇게 클릭을 하다가 나온 저의 결과는 막 눌렀더니 반대로 나왔네 이럴리가 없는데 나이를 조금 먹으니 손가락이 제멋대로 움직이는게 습관이 됩니다 솔직하지 못한 제 자신이 통탄스러울뿐입니다 이렇게 자신의 게으름과 진실함을 알 수 있는 기회 여러분들도 해보시길 바라요! 같이 커피값 아껴보자구요- 삼성전자 생태계 공모전 연결은 삼성이 할게! 사용은 누가 할래?

[ Java: 배열이란? ] [내부링크]

배열을 사용하면 자료형이 같은 자료 여러 개를 한 번에 관리할 수 있습니다. 배열 선언과 초기화 자료형[] 배열 이름 = new 자료형[개수]; 자료형 배열 이름[] = new 자료형[개수]; 배열도 변수와 마찬가지로 자료형을 함께 선언합니다. int[] studentIDs = new int[10]; //int형 요소가 10개인 배열 선언 자료형이 int형이므로 배열 요소를 저장할 수 있는 공간의 크기는 4byte로 동일하며 총 40byte의 메모리가 할당됩니다. 배열 초기화하기 자바에서 배열을 선언하면 그와 동시에 각 요소의 값이 초기화됩니다. 배열의 자료형에 따라 정수는 0, 실수는 0.0, 객체 배열은 null로 초기화되죠. 배열 선언과 동시에 특정 값으로도 선언할 수 있습니다. int[] studentIDs = new int[] {101, 102, 103}; 배열이 초기화 요소의 개수 만큼 생성되므로 [ ]안의 개수는 생략하며 [ ]안에 개수를 쓰면 오류가 발생합니다. i

[ Java: 클래스, 메서드, 패키지 ] [내부링크]

클래스 속성을 구현하는 멤버 변수 public class Student { int studentID; String studentName; int grade; String address; } 클래스에 선언하는 멤버 변수는 다른 말로 속성(property), 특성(attribute) 등으로 말하기도 합니다. 속성 자료형 변수 이름 설명 학번 int studentID 학번은 정수로 나타낼 수 있어 int형으로 선언합니다. 이름 String studentName 학생 이름은 문자열로 되어있어 자바에서 제공하는 String 클래스를 사용합니다. 학년 int grade 학년은 정수로 나타낼 수 있어 int형으로 선언합니다. 사는 곳 String address 문자열을 나타내기 위해 String을 사용합니다. ex) Person 클래스 만들기 package classpart; public class Student { String name; int height; double weight; cha

[ 주린이 주식 스터디 -4 ] [내부링크]

"가치를 판단하는 기준이 없다면 그것은 투자가 아니라 투기로 보아야 할 것이다." 주식 가치를 측정하는 방법들 1. PBR (Price Bookvalue Ratio) : 가격과 장부가치(book value) 비교해 주식의 가치를 알아본다. 2. PER (Price Earning Ratio) : 주가수익비율 (본전 찾는 데 걸리는 시간) → 이익은 회계처리 방법(선입선출, 후입선출, 평균)에 따라 달라져 이익이 아닌 현금으로 평가해야 한다는 주장 3. PCR (Price Cashflow Ratio) : 현금흐름(cashflow)을 기업가치의 척도로 본다. 이익도 아직 나지 않고 장부상의 가치도 크지 않은 벤처기업이나 바이오 회사는 어떻게 평가할까? → 매출액(sales)을 기준으로 삼자는 주장 4. PSR (Price Sales Ratio) | 증권사 HTS에 '투자지표'에서 확인 가능 가치 평가 Earning PER Book Value PBR Cash flow PCR Sales P

[ Java: 메서드 함수 ] [내부링크]

함수 정의하기 int add (int num1, int num2) { int result; result = num1 + num2; return result; } - 함수 이름: add - 매개변수: num1, num2 - 예약어 return, 반환형 return 예약어: '이 함수의 결과 값을 반환합니다' return 예약어를 사용해 result 값을 반환하고 반환 값의 자료형을 반환형이라 합니다. 함수 이름 왼쪽에 써있죠. result의 반환형은 정수형입니다. 반환 값이 없는 함수도 있는데, 반환형을 비워두면 오류가 발생해 void 예약어를 씁니다 void는 '반환할 값이 없다'는 의미입니다. void printGreeting(String name) { System.out.println(name + "님 안녕하세요"); return; // 반환값 없음 } return 예약어는 함수 수행을 끝내고 복귀할 때 사용할 수도 있습니다. void divide(int num1, int nu

[ Java: 클래스와 인스턴스 ] [내부링크]

클래스 사용과 main() 함수 public class Student { // 멤버 변수 int studentID; String studentName; int grade; String address; // 메서드 public String getStudent() { return studentName; } public void setStudentName(String name) { studentName = name; } } student 클래스는 멤버 변수와 메서드로 구성되어 있습니다. 멤버 변수는 클래스 속성, 메서드는 멤버 변수를 이용해 클래스 기능을 구현합니다. main() 함수 ① Student 클래스에 main() 함수 포함하기 package classpart; public class Student { int studentID; String studentName; int grade; String address; public String getStudentName() { ret

[ DID? 기술 기반 비대면 서비스? ] [내부링크]

IT News Scrap 라온화이트햇, DID 기술 기반 비대면 서비스 개발 확대 라온화이트햇이 블록체인 기반 분산신원증명(DID) 기술을 활용한 비대면 서비스 개발에 나선다. 라온시큐어는 자회사 라온화이트햇이 군인공제회C&C‧KB국민은행‧IBK기업은행‧금융결제원과 news.naver.com IT 뉴스를 살펴보다 DID라는 처음 보는 용어가 등장해 스크랩하게 되었습니다. [ 뉴스 요약 ] 라온화이트햇은 '옴니원(OmniOne)'을 통해 DID(분산신원증명) 기반 신원인증과 자격증명 시스템을 제공한다. 이는 데이터의 위변조가 불가능하고, 개인이 직접 본인의 신원 정보와 자격증명을 관리할 수 있다. 오는 6월 부터 군인 적금 가입 희망자는 DID 기반으로 가입할 수 있다. 옴니원은 라온시큐어가 블록체인을 활용해 개발한 자기주권형 분산아이디(DID) 서비스이다. 분산아이디 또는 DID(Decentralized Identity)는 기존 신원확인 방식과 달리 중앙 시스템에 의해 통제되지 않으

[ Java: 생성자 ] [내부링크]

package constructor; // 생성자 만들기 public class Person { String name; float height; float weight; } package constructor; public class PersonTest { public static void main(String[] args) { Person personLee = new Person(); } } 생성자(constructor) : 클래스를 처음 만들 때 멤버 변수나 상수를 초기화하는 것 Person() 같은 함수를 생성자라고 합니다. 생성자는 클래스를 생성할 때만 호출합니다. 생성자 이름은 클래스 이름과 같고, 반환값이 없습니다. Person 클래스에 Person() 생성자가 없다? 디폴트 생성자(default constructor) : 컴파일러가 자동으로 만들어주는 생성자 디폴트 생성자는 매개변수가 없고 구현코드도 없습니다. package constuctor; pubilc class

[ Java: 정보 은닉 ] [내부링크]

접근 제어자(access modifier) : 클래스 내부 변수나 메서드, 생성자에 대한 접근 권한자 접근 제어자 설명 public 외부 클래스 어디에서나 접근할 수 있습니다. protected 같은 패키지 내부와 상속 관계의 클래스에서만 접근할 수 있고 그 외 클래스에서는 접근할 수 없습니다. 아무것도 없는 경우 default이며 같은 패키지 내부에서만 접근할 수 있습니다. private 같은 클래스 내부에서만 접근할 수 있습니다. get(), set() 메서드 public 메서드가 제공되지 않는다면 변수에 접근할 수 있는 방법은 없습니다. private으로 선언한 변수를 외부 코드에서 사용하려면 get(), set()메서드를 이용합니다. +) 값을 얻는 get() 메서드를 getter, 값을 지정하는 set() 메서드를 setter라고도 부릅니다. get(), set() 메서드 사용하기 package hiding; public class Student { int student

[ Java: 조건문 ] [내부링크]

조건문이란? 조건에 따라 다른 문장을 선택하도록 프로그래밍 하는 것 if문 / if-else 문 : 만약 ~라면 if(조건식) { 수행문; // 조건식이 참일 경우 수행 } 조건식에는 참, 거짓으로 판별되는 식, 변수, 상수를 사용합니다. "만약 나이가 8살 이상이면 학교에 다닌다" int age = 10; if (age >= 8) { System.out.println("학교에 다닙니다."); } * if-else 문 if (조건식) { 수행문1; // 조건식이 참일 경우에 이 문장을 수행 } else { 수행문2; // 조건식이 거짓일 경우에 이 문장을 수행 "만약 나이가 8살 이상이면 학교에 다닌다. 그렇지 않으면 학교에 다니지 않는다." package ifexample; public class IfExample1 { public static void main(String[ ] args) { int age = 7; if(age >= 8) { System.out.println(

[ Java: 반복문 ] [내부링크]

자바 프로그램에서 사용하는 반복문의 종류에는 while문, do-while문, for문 이렇게 세 가지가 있습니다. while문 조건식을 만족하는 동안 중괄호 {} 안의 수행문을 반복해서 처리합니다. package loopexample; public class WhileExample1 { public static void main(String[] args) { int num = 1; int sum = 0; while(num <= 10) { sum += num; num++; } System.out.println("1부터 10까지의 합은 " + sum + "입니다."); } } 1부터 10까지의 합은 55입니다. Process finished with exit code 0 - 무한 반복 while(true) { … } +) 웹 서버처럼 끊임없이 돌아가는 시스템을 데몬(damon)이라고 부릅니다. 데몬 서비스를 구현할 때 무한 반복을 사용합니다. do-while문 while문은 조건식

[ Java: 객체 지향 프로그래밍과 클래스 ] [내부링크]

객체 지향 프로그래밍 Object-Oriented Programing: OOP 객체 기반 프로그래밍으로, '어떤 대상(객체)를 가지고 프로그래밍 한다'고 생각하시면 됩니다. 상호작용할 객체를 먼저 정의하고 각 객체가 어떤 기능을 제공하고 객체 간 협력을 어떻게 구현할 것인지 고민해야 합니다. 클래스란? : 객체의 속성과 기능을 코드로 구현한 것 객체를 클래스로 구현 → '클래스를 정의한다' (접근 제어자) class 클래스 이름 { 멤버 변수; 메서드; } ex) 학생 클래스 package classpart; public class Student { // 멤버 변수 int studentID; String studentName; int grade; String address; } 자바 프로그램은 모든 요소가 클래스 내부에 있어야 합니다. 클래스 외부에는 package 선언과 import 문장 외에 아무것도 선언하지 않습니다. 클래스 이름 짓는 규칙 코딩을 할 때 읽기 쉽고 이해하