[Tistory] [항해99]99클럽 코테 스터디 8일차 TIL + 탐욕법(Greedy)

1.  오늘의 학습 키워드 : 탐욕법(Greedy)https://www.inflearn.com/course/%EB%91%90%EC%9E%87-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%90%EB%B0%94 [지금 무료] Do it! 알고리즘 코딩테스트 with JAVA | 하루코딩 – 인프런하루코딩 | IT기업 코딩테스트 대비를 위한 [자료구조 및 알고리즘 핵심이론 & 관련 실전 문제 풀이 강의] 입니다. – JAVA 편 -, [사진] 💻 코딩테스트 알고리즘의 핵심,자바로 구현하는 알고리즘을www.inflearn.com인프런 코테 강의에 탐욕법이 나와있으니까 이거 참고해서 공부하겠습니다..

[Tistory] [정보처리기사 실기 예상문제] 1. 요구사항 확인

1.LOC 기법에 의하여 예측된 총 라인 수가 30,000라인, 개발에 참여할 프로그래머가 5명,프로그래머들의 평균 생산성이 월간 300라인일 때 개발에 소요되는 기간을 계산식과 함께 쓰시오.더보기계산식 : (30,000 / 300) / 5=20답 : 20개월 2.(가) 요구사항은 시스템이 무엇을 하는지, 어떤 기능을 하는지 등 사용자가 시스템을 통해 제공받기를 원하는 기능이나 시스템이 반드시 수행해야하는 기능을 의미한다.(나) 요구사항은 품질이나 제약사항과 관련된 요구사항으로 시스템의 장비 구성 성능, 인터페이스, 테스트, 보안 등의 요구사항을 말한다더보기(가 ) : 기능(나 ) : 비기능 3.검토 자료를 회의 전에 배포해서 사전 검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 문제 식별..

[Tistory] [iOS] ViewController 생명주기

view가 화면에 나타날 준비를 하는 과정1. view의 init(coder:) 메서드를 사용하여 각 뷰를 생성2. action 및 outlet 연결3. 각각의 view와 viewcontroller의 awakFromNib() 메서드 호출4. view계층을 viewcontroller의 view객체에 할당5. viewDidLoad() 호출로드 타임에 viewController를 사용할 수 있게 하는데 필요한 설정단계를 한 번만 수행위의 단계에서 화면에 나타날 때마다 수행되어야 하는 작업은 하면 안됨(애니메이션, 뷰 업데이트 등)화면이 뜰 때 단계별로 함수를 print해보면 위와 같이 출력 되는 것을 볼 수 있음 UIKit은 view가 화면에 표시되면 viewcontroller에게 알려주고 view의 의 레이..

[Tistory] 도메인주도개발 시작하기 4장

JPA 를 이용한 리포지터리 구현 도메인 모델과 리포지터리를 구현할 때 선호하는 기술은 JPA 를 들 수 있다. 데이터 보관소로 RDMS 를 사용할 때 객체 기반의 도메인 모델과 관계형 데이터 모델 간의 매핑을 처리하는 기술로 ORM 만한 것이 없다. 모듈 위치 리포지터리 인터페이스는 애그리거트와 같이 도메인 영역에 속하고 리포지터리를 구현한 클래스는 인프라스트럭처 영역에 속한다. 이는 리포지터리 구현 클래스를 인프라스트럭처 영역에 위치시켜서 인프라스트럭처에 대한 의존을 낮춰야 한다. DIP에 따라 리포지터리 구현 클래스는 인프라스트럭처 영역에 위치한다. 즉 , mongodb,mysql,postgre등등 구현기술은 인프라스트럭처계층에서 구현하고 언제든지 바꿔낄 수 있어야한다. 리포지터리가 제공하는 기능은..

[Tistory] Blocking/Non-Blocking , Sync/Asyn

Blocking vs Non-Blocking Blocking : 요청한 작업이 끝날 때 까지 기다렸다가 작업이 끝나면 자신의 일을 시작하는것 1. B 함수를 호출하면서 제어권을 B함수에 넘긴다. 2. A 함수는 제어권이 없어 B 함수가 끝날 때까지 기다린다. 3. B 함수가 완료되면서 제어권을 A함수에게 돌려준다. 4. A 함수는 제어권을 얻어 다음 코드를 진행한다. Non-Blocking : 요청한 작업의 상관없이 진행하던 일을 계속 진행하는 것 1. B 함수를 호출하지만 제어권은 넘겨주지 않는다. 2. B 함수는 B대로 실행, A함수도 다음 코드를 실행한다. 즉, 제어권이란 작업의 흐름진행을 누가 제어하고 있는가를 의미하며, 제어권의 소유 여부가 Blocking과 Non-Blocking을 구분짓는 요..

[Tistory] project X) 2주차 과제 메모

상속super다단계상속 계층적 상속다중상속 제외https://coding-factory.tistory.com/865 오류: There is no default constructor available inhttps://velog.io/@gywns0417/Java-Error-there-is-no-default-constructor-available-in-%EC%83%81%EC%86%8D Java – (Error) There is no default constructor available in (상속)(Error) There is no default constructor available invelog.io super() 안에 부모함수의 생성자 모두 넣어줘야함  override 원리https://velog.i..

[Tistory] 아이템 37 – 데이터 집합 표현에 data 한정자를 사용하라

Kotlin에서는 데이터 집합을 표현할 때 data 클래스를 사용하면 여러 가지 편리한 기능을 자동으로 제공받을 수 있습니다. data 클래스를 사용하면 코드가 간결해지고, 데이터 객체의 비교, 복사, 문자열 표현 등을 쉽게 처리할 수 있습니다.equals: 객체의 내용을 비교합니다.hashCode: 객체의 해시 코드를 생성합니다.toString: 객체의 문자열 표현을 제공합니다.copy: 객체를 복사할 수 있습니다.(얕은 복사)componentN: 객체의 각 속성에 접근할 수 있습니다.// 얕은복사data class Address(var street: String, var city: String)data class Person(var name: String, var address: Address)fun..

[Tistory] [Spring Boot] Mybatis 쿼리 Interceptor 처리 테스트

MyBatis 개발환경에서 쿼리를 추출할 수 있는 방법을 찾아봤습니다.소스를 오픈해주신 분이 계셔서, 쉽게 테스트 할 수 있었습니다. 소스 출처https://velog.io/@yuna706/%EB%A7%88%EC%9D%B4%EB%B0%94%ED%8B%B0%EC%8A%A4-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0-%EC%BD%98%EC%86%94-%EC%B6%9C%EB%A0%A5-%EA%B8%B0%EB%8A%A5-%EA%B5%AC%ED%98%84-spring-boot-interceptor 마이바티스 파라미터 콘솔 출력 기능 구현 – spring boot interceptormybatis parameter console output기존의 log4j를 걷어내고 spring boot +..

[Tistory] 핀테크 서비스 – 동시성 문제

핀테크 서비스에도 동시성 문제를 해결해야 했다 데드락 우선 먼저 동시성 테스트를 해보니 락을 사용하지도 않았는데 데드락 에러가 발생했다 그래서 찾아보니 레코드를 수정할때 x-lock을 걸어버리고 다른 레코드를 참조하는 새 레코드를 생성할때 s-lock을 건다고 한다 따라서 x-lock을 획득하기 위해 다른 트랜잭션의 s-lock을 기다리게 되버리므로 데드락에 빠진다 https://0soo.tistory.com/214 MySQL 낙관적 락과 데드락(dead lock) With JPA Hibernate 프로젝트에서 모임 가입 기능을 구현하면서, 동시성 문제와 데드락까지 경험한 내용 그리고 어떻게 해결하였는지 고민과정과 해결방법을 정리하려고 합니다. 프로젝트 버전 SpringBoot 2.7.8 MySQL 8…

[Tistory] 함수 호출 규약 (Calling Convention)

함수 호출 규약 1. 함수 호출 규약 1. 함수 호출 규약이란? 함수 호출 규약은 함수의 호출 및 반환에 대한 약속이다. 함수를 호출할 때 파라미터를 어떤 식으로 전달하는지에 대한 규칙을 정의한다. caller (호출자) : 함수를 호출한 곳 callee (피호출자) : 호출 당하는 함수 함수 호출 규약을 적용하는 것은 일반적으로 컴파일러의 몫이다. 프로그래머가 코드에 명시하지 않는다면, 컴파일러는 CPU 의 아키텍처에 적합한 함수 호출 규약을 적용한다. 2. 함수 호출 규약 종류 컴파일러는 지원하는 호출 규약 중, CPU 아키텍처에 적합한 것을 선택한다. x86 (32bit) 아키텍처는 레지스터의 수가 적으므로, 스택으로 인자를 전달하는 규약을 사용한다. 반대로 x86-64 (64bit) 아키텍처는 레..