- [C++] move와 copystarryeyeC++ 11의 개념이다. 해당 개념 포스팅은 시간적 여유가 생긴다면.. 추후 진행할 예정이다.. 포스팅 할 개념 깊은 복사와 얕은 복사 rvalue, lvalue 와 그에 따른 복사 생성자, 이동 생성자 와 복사 할당 연산자, 이동 할당 연산자 std::move std::vector의 push_back, emplace_back 함수 좋은 포스팅 https://docs.microsoft.com/ko-kr/cpp/cpp/move-constructors-and-move-assignment-operators-cpp?view=msvc-170 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jidon333&logNo=60211056131
- 2022-07-15 20:04:46
- [C++] Template Type checkstarryeye개념 정리는 다음에.. 코드와 키워드 중심 간단 정리.. template struct is_TypeA { static const bool value = false; ); template struct is_TypeA { static const bool value = true; }; template class testTemplate { bool checkType(const T1, t1) { if constexpr (is_TypeA::value) { return true; } return false; } } 위와 같이 template에서도 타입을 체크 할 수 있다..
- 2022-07-15 19:47:43
- [C++] window, linux lockstarryeyelock 이란.. 공유되는 자원에 동시 접근하여 데이터의 신뢰도를 떨어트리는 현상을 방지하고자 함에 있다. 따라서 lock이라는 개념을 도입하여 한번에 하나의 작업을 진행하게 한다. 그렇다면.. 여러 스레드에서 어떻게.. 그 자원에 lock이 걸려있는지 알 수 있을까? -> 아래 os별 lock을 구현 하는 코드로 알아보자 window window.h 헤더파일을 사용한다. /////////////// 헤더 파일 class lockTest { 함수 선언 생략.. CRITICAL_SECTION* p_lock; } /////////////// cpp 파일 lockTest::lockTest() { p_lock = NULL; initialize(); } lockTest::~lockTest() { destroy()..
- 2022-07-15 19:33:32
- JDBC 6starryeyeTransactionTemplate 템플릿 콜백 패턴을 사용하여 서비스 계층에서 Transaction을 사용함에 있어서 메서드마다 등장하는 코드를 줄일 수 있다. (repository 계층의 메서드 성공여부 try-catch에 따른 commit, rollback 코드가 없어짐) 하지만.. 서비스 계층에 비즈니스 로직만 순수하게 있는 상황은 아니다. 트랜잭션 AOP (선언적 트랜잭션 관리) 서비스 계층에 순수 비즈니스 로직만 남길 수 있다. @Transactional 어노테이션만 써주고.. 해당 비즈니스 로직만 구현하면 된다.. (스프링 부트에서 제공하기에.. 스프링 부트 종속성이 생김) 아래는 스프링이 트랜잭션 AOP를 적용하기 위해 스프링 컨테이너에 자동으로 등록하는 빈이다. 어드바이저 : BeanFa..
- 2022-07-13 01:54:09
- JDBC 5starryeye트랜잭션 여러개의 SQL 쿼리를 하나의 묶음 단위로 관리하겠다는 의미이다. 예를 들면, 돈을 이체 할때 A계좌에서는 돈이 빠져나가야 하며 B계좌에서는 돈이 들어와야한다. -> 다양한 원인의 장애로 인해 B계좌에서 돈이 들어오는 것은 수행되지 않으면 큰일이다. -> 따라서 하나의 묶음 단위로 성공 혹은 실패를 처리하겠다는 개념이다. 트랜잭션 ACID 4가지.. 1. 원자성(Atomicity) 하나의 트랜잭션 내에서 실행한 모든 작업은 모두 성공하거나 모두 실패하거나 둘 중 하나다. 2. 일관성(Consistency) DB 무결성 제약 조건을 항상 만족 3. 격리성(Isolation) 트랜잭션들은 서로 영향이 없어야 한다. -> lock 개념 4. 지속성(Durability) 트랜잭션이 성공하면 DB가 업데..
- 2022-07-13 00:46:11
- JDBC 4starryeyeDriverManager를 통하여 커넥션을 획득하는 것은.. 리소스 낭비 이다. DriverManager에 대해 다시 한번 복습해보자.. DriverManager JDBC가 제공한다. 라이브러리에 등록된 DB 드라이버들을 관리하며, 커넥션을 획득 할 수 있는 기능을 제공한다. (드라이버 : DB 종류별로 JDBC의 인터페이스를 구현한 구현체) 커넥션을 획득 할 때마다.. 0. DriverManager.getConnection() 호출 1. DriverManager는 DB 드라이버에게 DB와 TCP/IP로 커넥션을 연결 2. DB 드라이버는 ID, Password등 부가 정보를 전달한다. 3. DB는 부가정보로 인증을 하고, DB 세션을 생성한다. 4. 커넥션 생성 완료 5. DB 드라이버는 커넥션 객체를..
- 2022-07-11 22:27:18
- JDBC 3starryeyeDriverManager JDBC가 제공한다. 라이브러리에 등록된 DB 드라이버들을 관리하며, 커넥션을 획득 할 수 있는 기능을 제공한다. (드라이버 : DB 종류별로 JDBC의 인터페이스를 구현한 구현체) DriverManager.getConnection(); 애플리케이션에서 커넥션을 획득 하고 싶을때의 호출문이다. DriverManager는 현재 애플리케이션의 의존하는 라이브러리에 등록된 드라이버 목록을 자동으로 인식 하여... 각 드라이버에 해당 커넥션을 획득 할 수 있는지.. 확인 후 (처리 할 수 없다면 다음 드라이버로 넘김) 커넥션을 리턴해준다. DriverManager에 뭔가 코드 상.. 또는 환경적으로 등록을 해야 할 것 처럼 생각되지만.. DBMS를 켜놓고 라이브러리에 추가만 해놓으면 자..
- 2022-07-11 21:26:54
- JDBC 2starryeyeJDBC를 사용한 데이터 접근 기술은 크게 3가지로 나뉜다. 1. JDBC를 직접 사용 2. SQL Mapper 3. ORM 기술 JDBC를 직접 사용 말 그대로 개발자가 직접 JDBC 표준 인터페이스를 사용하며 모든 것을 컨트롤한다.. SQL Mapper SQL Mapper 내부에서 JDBC를 사용한다. (JDBC를 편리하게 사용할 수 있도록 JDBC를 감싼 기술이다.) 개발자는 SQL Mapper 사용법만 알면 조금 더 편리하게 JDBC를 사용할 수 있게 된다. 개발자는 SQL을 직접 작성해야한다. JDBC의 반복코드를 작성할 필요가 없다. 응답 결과는 객체로 자동 변환 해준다. ex. 스프링 JdbcTemplate, MyBatis ORM 기술 객체를 RDBMS의 테이블과 매핑 시켜줌 그래서 개발자가..
- 2022-07-11 21:01:40
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)