전체글 236

[코틀린] companion object이란?

오늘은 companion object에 대해 알아볼 예정이다. 역시나 Java 로 코드를 살펴보고 Kotlin으로 바꿔보도록 하자 Java에서의 상수 public class Person { public static final int MAX_AGE = 500; } public static void main() { System.out.println(Person.MAX_AGE); } 간단한 코드이다. Person 클래스 내부에 MAX_AGE 라는 상수가 public 접근 제한자로 존재하고, 이는 외부에서 Person.MAX_AGE로 접근할 수 있다. 만약 Person 클래스 내부에서만 접근하게 하고 싶다면 public을 private으로 바꿀 수 있다. 클래스와 인스턴스 관점에서 바라보자면, static 필드..

[SOY 발표자료] 철강 최근에 왜 괜찮았나? 앞으로 어떻게 될 것인가

왜 요즘 철강사 주가들이 괜찮았나?! 중국이 코로나 종식을 선언하고 대규모 인프라 투자를 진행 (사실 전세계적으로 대규모 인프라 투자가 예정되어 있다. 아직 코로나가 확실하게 종식되지 않아서 시작을 못하는 것 뿐) 대규모 인프라 투자 → 철이 오지게 많이 필요하다 → 철광석 가격 급등 → 열연 및 철근 판가 증가 → 철강사 영업레버리지 효과 → 이익 뻠핑 https://www.kores.net/komis/price/mineralprice/ironoreenergy/pricetrend/baseMetals.do 2021 01 11 철강 하나금투 Weekly 철강 제품 간단 설명 용광로 = 고로이다. 고로라고 부르는 이유는, 용광로 높이가 100m 가까이 되서라고... 철강은 눈에 보이는 것이 고급재이다. 예를..

[코틀린 탐구생활] when, 그리고 클린 코드

when 사실 when expression을 처음 보았을때 들었던 생각은 switch case문과 무척 유사하다는 점이었다. Java에서는 else 사용을 지양해야 한다는 일반적인 clean code 원칙에 따라 switch case 사용도 지양하고 있었는데, Kotlin의 when은 Java의 switch case보다 훨씬 단순하고 강력했다. 비교를 해보자. Kotlin 숫자가 들어오면 숫자를 3으로 나눈 나머지에 따라 적절한 로직을 수행하고 원하지 않는 형태 이면 exception을 뱉어야 한다고 하자. 이를 Early Return 스타일로 표현하면 다음과 같다. (println에 로직이 들어간다고 생각할 수 있다) private fun validateNumber(num: Int) { if (num ..

2021 01 16 포트폴리오 점검

위닉스 26.47% 4월을 기다려보자 ㅎㅎ 미국향 수출을 감안했을때, 현재 value 저렴하다는 판단 현금 24.25% KTG 11.62% 무념무상 ㅎㅎ 배당이나 잘 주면 됐지 뭐 유진기업, 삼일씨엔에스 건자재 트리오 (둘이 합쳐서 대충 15%) 삼일씨엔에스는 다른 건자재 갈때 안가더니 이번달 들어 다시 조금 올라왔다 절대적인 기준으로는 둘 모두 저렴하나 상대적인 기준으로는 저렴한지 모르겠다. 모르겠어서 둘 모두 홀딩 사람인 6.18% 코로나가 길게 가고 있어, 최근 부진하지 않았나 싶다. 회사가 잘되면 사람이 필요한데... 코로나가 사라지면 채용 시장이 빠르게 턴하지 않을까? 잡 코리아 M&A도 지켜볼만한 이슈 매일유업 5.09% 회사 출퇴근을 하며 탕비실에 있는 커피 머신으로 하루 커피 1잔을 바꿔 ..

투자에 대한 생각 (하워드 막스) #3 가치란 무엇인가?

가장 오래되고 가장 단순한 투자 규칙이 있다. 그것은 바로 "싸게 사서 비싸게 팔라"는 것이다. 내재가치보다 싼 가격에 사서 그보다 비싸게 팔면 된다. 물론 그러기 위해서는 내재가치가 무엇인지를 잘 알아야 한다. 기본적 분석 과정에 충실하지 않은 모멘텀 투자와 같은 단순한 투자 방식을 제외하면, 우리에게는 기본적 분석에 속하는 두 가지 투자전략이 남는다. '가치투자'와 '성장투자'가 그것이다. 성장투자는 미래에 실현될 수도 있고 실현되지 않을 수도 있는 기업의 실적에 투자하는 것인 반면, 가치투자는 기업의 현재가치 분석을 토대로 투자하는 것이다. 한 기업의 현재가치를 규명하려면 그 기업의 미래에 관한 견해가 필요하고, 결과적으로 예측 가능한 거시경제 환경, 경쟁력 있는 제품 개발, 과학기술의 발전 등을 ..

[코틀린] data class란?

Kotlin data class에 대해서 알아보려고 한다. Java의 data class Car 이라는 객체를 예시로 Step By Step 접근을 해보자 Plain Java Object로 Car를 작성하면 다음과 같다. public class Car { private String name; private int price; } 여기서 Car 인스턴스 필드에 접근하기 위한 getter / setter 를 추가하면 아래와 같다. public class Car { private String name; private int price; public String getName() { return name; } public int price() { return price; } public void setName(..

투자에 대한 생각 (하워드 막스) #2 시장의 효율성을 이해하라

2. 시장의 효율성을 이해하라 투자와 관련된 판단을 할 때 (현재의 사실과 미래에 대한 전망을 바탕으로 귀가 솔깃한 투자 아이디어를 많이 내놓는) 앤드류가 하는 첫 번째 질문은 항상 똑같다. "그건 누구나 다 아는 내용 아닌가요?" 그렇다면 시장의 실수는 어디에서 오는 것일까?? 시장의 가격이 항상 옳을 수는 없다. 근본적인 이유는 '객관성'이다. 인간은 단순한 계산기가 아니다. 대부분의 사람들은 객관성을 잃게 만드는 탐욕, 공포, 시기, 그 밖에 다른 감정에 영향을 받기 때문에 언제라도 커다란 실수를 할 수가 있다. 효율성 대 비효율성에 관한 거대 담론에서 나는 어떠한 시장도 완벽하게 두 가지 중 하나는 아니라는 결론을 내렸다. 즉 어느 한쪽이 아니라 정도의 문제인 것이다. 효율성을 존중한다면 어떠한 ..

[코틀린] ?. 연산자, ?: 연산자

코틀린에는 ?. 연산자가 존재한다. 일반적으로 객체지향적인 언어에서 . 연산자는 객체 인스턴스의 필드나 메소드에 접근하는 역할을 수행한다. 코틀린에서는 객체가 null 일 수도 있는 경우를 코드 상 명확히 하기 위해 . 대신 ?. 를 사용해야 한다. Java와 Kotlin으로 몇 가지 예시를 살펴보자 Java 에서의 . 연산자 다음과 같은 코드가 있다고 해보자. public void main() { System.out.println(getCarOrNull().getName()); } public Car getCarOrNull() { if (...) { return null; } return new Car(); } getCarOrNull 코드를 호출하면 조건에 따라 null이 올 수도 Car 인스턴스가 반..

[코틀린] val과 var 차이

Java에서는 새로운 변수를 만들 때 int number = 3; 처럼 [타입] [변수이름] = [할당될 값 또는 인스턴스]가 문법이었다. 하지만 Kotlin에서는 val number1 = 3 var number2 = 3 처럼 Java 문법상 [타입] 자리에 val 또는 var이 들어가게 된다. 둘의 차이는 간단하다. val : 한 번 선언하면 값이 바뀌지 않는다 (JS의 const) var : 한 번 선언한 이후 값을 바꿀 수 있다 (JS의 let) 예를 들어 number1과 number2를 수정했을때 아래와 같이 되는 것이다. number1 = 4 // 에러 number2 = 4 // 통과 Kotlin은 타입을 가고 있어 number1, numbere2에 대한 타입을 자동으로 추론한다 (즉 Int 타..

투자에 대한 생각 (하워드 막스) #1 심층적으로 생각하라

1. 심층적으로 생각하라 2차적 사고 투자에서는 더 많이 배웠다거나, 더 많은 시간을 사용했다거나, 영양 상태가 더 좋거나, 노력을 더 하거나, 체력이 더 좋거나, 각종 장비를 더 많이 갖추고 있음보다 통찰력 있는 사고, 내 식으로 말하면 2차적 사고가 더 중요하다. 평균 이상의 수익을 지속적으로 올리기 위해 꼭 필요한 탁월한 통찰력, 직관, 가치에 대한 감각, 심리 파악 능력 등을 가질 수 있는 사람은 많지 않다. 투자의 목적은 평균이 아니라 평균 이상의 수익을 내는 것이다. 따라서 다른 투자자들보다 한발 앞선 사고, 더 효과적이고 더 고차원적인 사고를 해야 한다. 2차적 사고의 예시 예측 가능한 결과에는 어떤 것들이 있는가? 그 중 어떤 결과가 나올 것이라고 생각하는가? 내 예측이 맞을 가능성은 얼마..