- [Effective Modern C++] 항목 8starryeyeEffective Modern C++ 책을 보며 정리하는 포스팅 현재 수준에 감당 되는 것만 추가 공부하여 정리 항목 8. 0과 NULL보다 nullptr을 선호하라 리터럴 0은 int이지 포인터가 아니다. 포인터만 사용할 수 있는 위치에 0이 있으면 c++은 마지 못해 null 포인터로 해석 하긴 한다.. 하지만, 최후의 수단일 뿐이다.. (NULL 도 포인터 형식이 아니다.) 간단한 개념이다. void f(int); void f(bool); void f(void*); f(0); //f(int) 호출 f(NULL); //보통 f(int) 호출, f(void*) 호출하는 경우 없음 f(nullptr); //f(void*) 호출 overloading 된 함수를 보자.. nullptr을 사용하지 않을 때....
- 2022-08-14 20:14:30
- [Effective Modern C++] 항목 5starryeyeEffective Modern C++ 책을 보며 정리하는 포스팅 현재 수준에 감당 되는 것만 추가 공부하여 정리 auto 사용 시, 장점 auto를 잘 활용하면 개발 코드의 양이 줄어든다.. 또한, 직접 지정했을 때 겪게 되는 정확성 문제와 성능 문제도 방지할 수 있다. 항목 5. 명시적 형식 선언보다는 auto를 선호하라. 1. auto 변수의 형식은 해당 초기값으로 부터 deduction된다. 따라서 초기값을 반드시 제공 해야한다. int a; //OK auto b; //compile error auto c = 0; //OK 위 코드는 지역 변수 선언이다. a 변수는 컴파일러에 따라 초기화가 0으로 되거나, 쓰레기값이 적재되기도 한다. -> C/C++이 퍼포먼스에 최척화된 언어라고는 하나 꼭 초기화를..
- 2022-08-14 19:35:51
- [Java 정리] Thread 2starryeye이미 알던 지식이지만, 기본으로 돌아가서.. Java의 관점에서 한번 정리해보자. 쓰레드 우선순위 쓰레드의 start() 메서드를 호출하기 전에 쓰레드의 우선순위를 정할 수 있다. void setPriority(int newPriority) int getPriority() public static final int MAX_PRIORITY = 10 public static final int MIN_PRIORITY = 1 public static final int NORM_PRIORITY = 5 main 쓰레드의 우선순위는 5 이며, 쓰레드의 우선순위는 쓰레드를 생성한 쓰레드와 동일한 우선순위로 셋팅된다. 멀티 코어 환경에서 두개의 쓰레드로 각각 하나의 작업, 총 두개의 작업을 돌릴 경우엔 당연하게도 우선순..
- 2022-08-13 19:30:16
- [Java 정리] Thread 1starryeye이미 알던 지식이지만, 기본으로 돌아가서.. Java의 관점에서 한번 정리해보자. 프로세스와 쓰레드 Process 실행 중인 프로그램(어플리케이션) OS 커널로 부터 실행에 필요한 자원(가상 메모리)를 할당 받아 프로세스가 된다. 프로그램을 수행하는데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있다. 하나의 프로세스 내에 쓰레드 개수는 제한 되어 있지 않지만, 쓰레드에 개별적인 메모리 공간(호출 스택)을 할당해주므로 프로세스의 메모리 한계에 따라 정해진다. Thread 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 쓰레드이다. 모든 프로세스는 최소한 하나 이상의 쓰레드가 존재한다. 둘 이상의 쓰레드를 가진 프로세스를 멀티 쓰레드 프로세스라 한다. 스케쥴러는 프로세스 또는 쓰레드 ..
- 2022-08-13 18:19:16
- JdbcTemplate 1starryeye스프링이 제공하는 JdbcTemplate은 JDBC를 편리하게 사용할 수 있도록 도와준다 JdbcTemplate 장점 1. spring-jdbc 라이브러리에 포함. (JDBC 기본 라이브러리) 2. 템플릿 콜백 패턴으로 대부분의 반복 작업을 대신 처리 해준다. - 커넥션 조회, 커넥션 동기화 - preparedStatement 생성 및 파라미터 바인딩 - 쿼리 실행 - 결과 바인딩 - 예외 발생 시, 스프링 예외 변환기 실행 - 리소스(커넥션, statement, resultset) 종료 JdbcTemplate 단점 동적 SQL 해결 어려움 (-> MyBatis를 사용하자) JdbcTemplate 순서 기반 파라미터 바인딩을 지원한다. NamedParameterJdbcTemplate 이름 기반 파라미터 ..
- 2022-08-09 23:22:24
- [Java 정리] String, final, Immutablestarryeye자바 기본 객체인 String은 immutable 객체이다. immutable객체? 불변 객체라는 뜻이다. 한번 객체에 값이 할당되면 더 이상 데이터가 변하지 않는 속성을 가지고 있다. 대표적으로 String, Integer, Boolean 등이 있다. 장점 : 값이 변하지 않기 때문에 신뢰도가 높다. 멀티 쓰레드 환경에서 자주 쓰인다. (thread-safe) 단점 : 값을 변경해야 할때마다 새로운 객체를 생성해내야 하므로, 성능 문제가 생긴다. String a = "a"; a += "b"; 위 코드에서 변경이 일어난거 같은데? 사실 참조자가 변한 것이다.. 참조자가 변했다고? java의 String 클래스는 두가지로 선언 할 수 있다. String a = "a"; String b = new Strin..
- 2022-08-05 22:55:17
- [Java 정리] Garbage Collector 1starryeyeJava는 개발자가 메모리를 관리할 필요가 없다.. (C++는 직접 관리 해야함.. 스마트 포인터 생각X) 어디서 어떻게 관리 해줄까... JVM의 Garbage Collector(GC)에서 메모리를 관리해준다. Heap영역에 생성된 메모리 영역 중, 더 이상 참조되지 않는 것들을 정리해준다. 간단하게 동작을 알아보자.. void testMethod() { ... String str = new String("Hello"); ... } 위와 같이, 코드가 작성되어 있다면... 아래와 같이 메모리가 사용될 것이다.. 그러다가.. 해당 testMethod 로직이 모두 수행되고 리턴될 때, 지역변수인 str은 사라지게 된다. 그때, 힙 영역의 "Hello"는 도달할 수 없는 객체인 Unreachable Obje..
- 2022-07-30 03:06:12
- [Java 정리] 내부 클래스starryeye클래스 안의 클래스, 내부 클래스에 대해 알아보자. public class outerClass { //InnerClass class InnerClass { } //Static InnerClass static class InnerStaticClass { } public static void main(String[] args) { //내부 클래스 TEST outerClass.InnerClass tmp1 = new InnerClass().new InnerClass(); outerClass.InnerClass tmp2 = new InnerClass().new InnerClass(); int a = 0; if(tmp1 == tmp2) a = 0; else a = 1; //내부 static 클래스 TEST oute..
- 2022-07-28 00:03:08
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)