goaehfkwl의 등록된 링크

키자드에 등록된 총 166개의 포스트를 확인하실 수 있습니다.

Naver Blog

3월에 쓰는 1월 회고..

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

Naver Blog

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

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

Naver Blog

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

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

Naver Blog

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

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

Naver Blog

[ Java: 자바의 특성·장점 ]

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

Naver Blog

[ 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

Naver Blog

2022-03-14 금융시장 (금리, 환율, 주가)

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

Naver Blog

2022-03-15 금융시장 (금리, 환율, 주가)

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

Naver Blog

[ 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

Naver Blog

2022-03-17 금융시장 (금리, 환율, 주가)

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

Naver Blog

[ 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 상수를 사용하면 편리한 이유 프

Naver Blog

[ 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; 두 변수의 크기가 같은

Naver Blog

2022-03-18 금융시장 (금리, 환율, 주가)

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

Naver Blog

[ 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);

Naver Blog

2022-03-21 금융시장 (금리, 환율, 주가)

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

Naver Blog

[ Java: 비트 연산자 ]

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

Naver Blog

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

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

Naver Blog

2022-03-25 금융시장 (금리, 환율, 주가)

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

Naver Blog

[ C언어: 이진 파일 입출력 ]

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

Naver Blog

[ 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

Naver Blog

[ C언어: 전처리기란? ]

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

Naver Blog

[ 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); ② 매크로의 매개 변수들을 괄호로 묶어야 한다. 함수 매크로 매개 변수는

Naver Blog

[ 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

Naver Blog

[ 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 다른 매크로와

Naver Blog

[ 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

Naver Blog

[ 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

Naver Blog

[ C언어: 동적 할당 메모리란? ]

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

Naver Blog

[ 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

Naver Blog

[ 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[

Naver Blog

[ C언어: 연결 리스트란? ]

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

Naver Blog

[ 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; 두 번째 노드를 동적으로 생성하고 첫번째 노드의 링크 필드가 두 번째 노드를 가리켜 두 개의 노드를 연결

Naver Blog

[ 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) {} 이는 추상 메서드가 아닙니다, { }를 사용함으로써 메서드를 구현한 셈입니다. 추상 클래스와 추상 메서드는 기울임꼴로 표시합니다. 위 다이어그램을 예제 코드로 이해해보겠습니다.

Naver Blog

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

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

Naver Blog

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

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

Naver Blog

[ 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

Naver Blog

[ 주린이 주식 스터디 -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.

Naver Blog

[ 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

Naver Blog

[ 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("호랑이가 네 발로 뛴

Naver Blog

[ 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로 인스턴스형을 확인하지 않으면 오류가 발생할 수 있습

Naver Blog

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

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

Naver Blog

[ 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

Naver Blog

귀차니즘 인간의 토너패드 추천..

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

Naver Blog

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

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

Naver Blog

[ 책: 열두 발자국 / 정재승 ] 리뷰

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

Naver Blog

[ 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

Naver Blog

[ 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

Naver Blog

[ Java: 상속 ]

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

Naver Blog

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

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

Naver Blog

[ 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 출력 값과 같습니다. 클래스 코드에서

Naver Blog

[ 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

Naver Blog

[ 주린이 주식 스터디 -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 하지만 이익 증가로 (이익으로 가치를 판

Naver Blog

[ 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

Naver Blog

'법의 허점'을 노린 구글 vs 방통위의 '인앱결제 강제방지법'

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

Naver Blog

[ Java: 변수 유효 범위 ]

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

Naver Blog

당신의 게으름 괜찮으신가요? (게으름 테스트)

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

Naver Blog

[ 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

Naver Blog

[ 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

Naver Blog

[ 주린이 주식 스터디 -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

Naver Blog

[ 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

Naver Blog

[ 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

Naver Blog

[ DID? 기술 기반 비대면 서비스? ]

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

Naver Blog

[ 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

Naver Blog

[ 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

Naver Blog

[ 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(

Naver Blog

[ 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문은 조건식

Naver Blog

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

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

1 2