while(1) work();
반응형
article thumbnail
이상하고 아름다운 JAVA 퀴즈 3
언어/JAVA 2023. 3. 13. 01:30

문제 class Q3 { public static void main(String[] args) { Integer a = 200; Integer b = 200; System.out.println(a == b); Integer c = 100; Integer d = 100; System.out.println(c == d); } } 출력값은 무엇인가? (1) true true (2) false false (3) true false (4) false true (5) 런타임 에러 (6) 컴파일 에러 정답 답은 4번. false true 이다. Integer은 객체 래퍼(wrapper) 타입이기 때문에 두 객체는 동등성(equality)은 일치하지만 동일성(identity)은 달라야 할 것 처럼 보인다. 따라서 fa..

article thumbnail
이상하고 아름다운 JAVA 퀴즈 2
언어/JAVA 2023. 3. 13. 01:12

문제 class Q2 { static long value; public static void main(String[] args) { Runnable r = () -> { for (int i = 0; i < 100000; i++) value++; }; Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); t1.join(); t2.join(); //작업 종료 대기 System.out.println("value = " + value); } } 출력된 값은 200000인가? 정답 아니다. 200000에 한참 못미치는 값이 출력된다. 꼬리 문제 그럼, 문제 1( https://engine-it.tistory.com/179 ) 처..

article thumbnail
이상하고 아름다운 JAVA 퀴즈 1
언어/JAVA 2023. 3. 13. 00:37

문제 class Q1 { static long value = 123456789123456789L; public static void main(String[] args) { Thread t1 = new Thread(() -> { long cnt = 0; while (true) { value = (cnt++ % 2 == 0) ? 987654321987654321L : 123456789123456789L; } }); Thread t2 = new Thread(() ->{ while (true) { long v = value; if (v != 987654321987654321L && v != 123456789123456789L) { //여기 System.out.println("Something wrong.. va..

SOLID 원칙과 구체적인 예시
언어/JAVA 2023. 3. 9. 18:46

개요 아래 내용은 Chat GPT가 작성한 내용입니다. 따라서 잘못된 내용이 있을 수 있습니다....가 아니라 많네요 보니까 ^^; Chat GPT 테스트 겸 그대로 업로드합니다 SOLID 원칙 단일 책임 원칙 (Single Responsibility Principle) : 모든 클래스는 하나의 책임만 가져야 합니다. 이는 클래스를 변경할 때 다른 기능에 영향을 미치지 않도록 하는 것을 의미합니다. 개방 폐쇄 원칙 (Open-Closed Principle) : 소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에 대해 열려 있어야 하고 변경에 대해서는 닫혀 있어야 합니다. 즉, 기존 코드를 변경하지 않고 새로운 기능을 추가할 수 있어야 합니다. 리스코프 치환 원칙 (Liskov Substitution Pr..

Spring Security JWT 인증 잘 정리된 블로그
언어/JAVA 2022. 12. 20. 20:19

https://bcp0109.tistory.com/301 Spring Security 와 JWT 겉핥기 Introduction 이 글에서는 Spring Boot + JWT + Security 를 사용해서 회원가입/로그인 로직을 구현했습니다. JWT 와 Spring Security 코드는 인프런 Spring Boot JWT Tutorial (정은구) 강의를 수강하면서 만들고 제 스타 bcp0109.tistory.com

VSCode Kotlin 프로젝트 셋팅
언어/JAVA 2022. 11. 22. 23:46

gradle init 을 통해 gradle project를 생성 후 build.gradle.kts import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { kotlin("jvm") version "1.6.21" } group = "com.example" version = "0.0.1-SNAPSHOT" java.sourceCompatibility = JavaVersion.VERSION_17 repositories { mavenCentral() } dependencies { } tasks.withType { kotlinOptions { freeCompilerArgs = listOf("-Xjsr305=strict") jvmTarget = "17" } ..

article thumbnail
대신증권 API JAVA에서 사용하기 (2)
언어/JAVA 2022. 2. 25. 16:16

이제 지난 글에서 변환한 class들을 가지고 코드를 작성하면 된다. 대신증권은 타 증권사와 다르게 API 문서(비공식)도 상당히 잘 만들어져 있고, API 담당자에게 질문글을 올리면 보통 하루 내에 답변까지 달아준다. API에 대한 정보가 많기 때문에 크게 어렵지 않게 어지간한 기능들을 다 구현할 수 있기 때문에 본 글에서는 복잡한 기능들을 구현하는데 초점을 맞추기 보다는 JAVA에서 돌아가는 기본적인 코드를 구현하는데 집중하고자 한다. 주의할점은 반드시 JAVA를 관리자 권한으로 실행시켜야 하며 JAVA의 버전은 32bit이어야 한다는 것이다. 이는 파이썬으로 대신증권 API를 사용할때도 마찬가지였는데, 이를 몰라 한참을 해맸던 기억이 있다. JDK 9부터는 64bit만 지원하는 것으로 알고 있어서 ..

대신증권 API JAVA에서 사용하기 (1)
언어/JAVA 2022. 2. 25. 15:52

대신증권 API는 dll 형식으로 제공되기 때문에 C#이나 VB에서 사용 가능하다. 파이썬에서는 pywin32 (win32com) 라이브러리를 사용해서 API를 호출할 수 있다. 여기까지가 대신증권에서 공식적으로 지원하는 언어이고 JAVA는 우회적인 방법을 사용해야 한다. 먼저 대신증권 Cybos Plus를 설치해야한다. Cybos를 설치한 뒤 실행하면 로그인 화면에서 Cybos Plus를 눌러 설치할 수 있다. 설치가 완료되면 C:\DAISHIN\CYBOSPLUS 경로에 dll 파일들이 잔뜩 생겨난다. 여기서 일반적으로 필요한 dll은 cpdib.dll, cpsysdib.dll, cptrade.dll, cputil.dll 네 가지이다. 이제 JAVA에서 dll을 사용하기 위해 dll들을 JAVA cla..

반응형

검색 태그