기술을 기술하다

레거시 코드를 점진적으로 개선한 경험
프로젝트를 이어받다.저는 작년(2019년) 6월 말에 새로운 회사로 이직하였습니다. 첫 번째로 받은 업무는 새롭게 개발 중이던 관리자용 시스템을 이어받아 완성 시키는 것이었습니다. 기존에 개발자 한 분께서 맡아 개발해왔지만, 관리자용 시스템이라 우선순위가 다른 프로젝트들보다 낮아 꽤 오랜 기간 미완성 상태로 남겨졌던 프로젝트였습니다. 그러나, 이미 기존 시스템 기반으로 어느 정도 구현이 된 상태였고 실제 배포되어 일부 기능들은 업무 담당자들이 사용하고 있었습니다. 그렇기에 해당 프로젝트는 이미 작성된 코드량이 꽤 되었죠. 이 ...
AWS도 Setter를 사용하지 않는다
AWS도 Setter를 사용하지 않는다.AWS SDK 버전을 ‘1.11.x’에서 ‘2.x’로최근 회사 프로젝트의 AWS SDK(Java) 버전을 ‘1.11.x’에서 ‘2.x’으로 올리는 작업을 진행하였다.사내 시스템에 다량의 Email을 발송하는 기능이 있는데 실행 시간이 오래 걸렸기 때문에 개선이 필요하였다. 메일 발송 기능은 AWS SES 서비스를 사용하고 있었고 실행 시간을 단축하고자 메일 발송 로직 전체를 비동기로 변경하려고 알아보던 중 AWS SDK 버전이 2.x로 들어서면서 Nonblocking I/O를 지원하는 것...
Unity3D에서 Observer패턴을 이용한 연산량 감소
개요 도플러 효과를 이용한 실감 음향 기술을 제안하는 프로젝트를 Unity3D와 아두이노(움직이는 스피커)를 이용하여 진행. 음원의 이동에 따른 도플러 효과를 고려(계산)하기 위하여 Unity3D내 주요 개체들이 음원 개체의 위치를 매순간 참조 Unity3D내 주요 개체들이 음원 개체를 매번 참조하는 것이 아닌, 음원 개체의 위치가 변경될 때만 위치를 참조하여 계산을 하도록 설계하면 프로그램 연산량이 감소될 것이라 기대 기존 구현 방법 및 문제점 Unity3D의 MonoBehaviour 클래스의 Update() 메소드를 이용...
가볍게 구분하는 개체, 객체, 인스턴스
개체 프로그래밍에서 이르는 모든 요소 OOP에서는 Class의 Instance 객체개체를 취급할 때 주체 측에서 상대적으로 이르는 말 인스턴스추상화 기법 중 분류/인스턴스화(classification/instantiation) 개념으로 접근인스턴스: 추상적인 개념과 구체적인 실체 사이 관계에 초점 참고 https://social.msdn.microsoft.com/Forums/ko-KR/c095ed0e-0f92-4c1b-8251-5950b4a1ca14/ctip-4406052404204913963650752-44061524042...
가상함수와 가상상속
가상 함수배경 및 필요성 비가상함수의 경우 부모 클래스형 포인터로 자식 클래스의 멤버 함수를 호출할 때 컴파일러는 포인터의 자료형을 기준으로 멤버 함수를 호출한다. 즉, 실제 가리키는 객체의 자료형을 기준으로 판단하지 않는다. 자식 클래스에서 부모 클래스 함수를 오버라이딩 했다는 것은, 해당 객체에서 호출되어야 하는 함수의 행위가 바뀐다는 것인데 비가상함수의 경우 이를 지원하지 못한다. 이는 다형성 개념과 충돌된다. 따라서 객체지향에서는 가상 함수라는 개념을 제공한다. 가상 함수를 이용하면 포인터의 자료형을 기반으로 호출대상을...