분류 전체보기 22

Rust -3-

배열 대괄호[]를 사용하여 배열임을 나타낸다타입을 정의 할 때 [데이터타입; 요소갯수] 로 정의 한다.변수 초기화시 [값; 요소갯수]로 한번에 초기화가 가능.배열의 요소 접근은 런타임에 확인 가능하기 때문에 잘못된 인덱스 접근은 runtime panic을 발생시킨다. 튜플여러개의 타입을 하나의 변수로 선언가능 (타입,타입, ...)튜플에 속한 값은 인덱스로 접근이 가능하다비어있는 튜플 () 은 유닛타입으로 다른 언어의 void와 유사한 반환 값이 없는 것을 나타낸다.  패턴과 구조분해튜플 구조를 let (변수, 변수) 로 하여 튜플의 구조를 분해하여 값을 한번에 각각 할당 가능구조체를 사용할 경우 let 구조체 { 구조체 속성, 구조체 속성 } 으로 구조 분해가 가능  공유 참조값에 대한 소유권을 가지지..

카테고리 없음 2025.01.26

Rust -2-

흐름제어 if 문if 키워드로 선언 하며 그다음 참/거짓 조건을 명시중괄호를 사용하여 조건이 참일 경우 실행될 행동을 선언다른 조건이 필요할시 else if 키워드를 뒤에 이어서 조건을 추가 할 수 있음명시한 조건 외에 다른 조건을 처리하고 싶다면 else 키워드를 붙여서 처리할 수 있음표현식을 통해서 변수에 값을 할당 시켜 사용할 수 있다.  반복문 whilewhile 키워드를 사용해서 선언조건이 참일 경우에만 정의한 코드를 실행한다.반복될때 마다 조건을 계속 체크한다. forfor 키워드를 사용하여 반복문 선언.., ..= 를 사용하여 어느조건까지 반복할지 선언iterator를 사용하여 배열의 요소만큼 반복가능하며 변수에는 배열의 요소가 할당된다. looploop 키워드로 선언 조건이 필요하지 않는 ..

카테고리 없음 2025.01.25

Rust -1-

함수 선언함수는 fn 키워드를 사용해서 선언하고 다음으로 호출때 사용할 함수 이름 순이다.main 함수는 프로그램 진입점이다.중괄호 {} 를 사용해서 함수 블록을 표시한다.러스트는 매크로 시스템을 가지고 있다. println! 은 그 예시이다.러스트의 문자열은 UTF-8로 인코딩 되며 이모지와 같은 유니코드 문자를 포함 할 수 있다.  변수let 키워드를 사용해서 변수 선언을 하고 변수이름지정타입 명시는 선택적으로 선언 할 수 있다.rust의 변수는 기본적으로 불변상태이다.불변상태를 변경가능상태로 하려면 변수 선언시 let 키워드 다음에 mut 키워드를 사용해주어야한다.  값iN, uN,fN 은 모두 N비트 크기이다.isize 와 usize는 포인터와 같은 크기이다.char는 32비트 이다.bool은 8..

카테고리 없음 2025.01.24

Rust

Rust는 메모리 안정성 과 성능에 중점을 두고 만들어진 프로그래밍언어이다.C++와 유사한 정적 컴파일 언어이며 다양한 플랫폼과 아키텍처를 지원한다.다양한 장치에서 사용될 수 있다. Rust는 C++가 사용되는 곳에 대부분 사용이 가능하다.별도의 런타임을 필요로 하지 않고 가비지컬렉션이 없다. 안정성과 안전에 중점을 둔 언어이다. Rust 장점컴파일 시간 메모리 안전메모리 버그를 컴파일 시간에 찾아낸다. 초기화하지 않을 수 없음메모리 이중 해제 불가메모리 해제 후 사용이 불가개발자들의 골칫덩이 Null 포인터가 없음스래드간 데이터 레이스 막아줌뮤텍스 Lock을 풀지 않는 것을 방지 언어기능열거형과 패턴 매칭제네릭FFI 런타임 오버헤드 없음비용이 들지 않는 추상화친절한 컴파일러 메시지내장 테스트 지원LSP..

카테고리 없음 2025.01.24

VoIP

VoIP (Voice over Internet Protocol)인터넷을 통해 음성 통신을 하는 기술IP를 통해서 음성신호를 압축하여 디지털 데이터 패킷으로 변환하여 전송한다. 코덱 G.729,G.771 을 사용하여 인/디코딩한다.코덱을 이용하여 압축하기 때문에 트래픽이 절감 된다. 전화기능 말고도 지능형 정보처리, 응용 서비스 다양화등이 가능하다.IMPP, UMS, CTI 등 데이터 서비스를 음성과 통합 VoIP는 SIP 와 RTP를 복합 적으로 사용한다.SIP(Session Initiation Protocol)통신 세션을 시작, 유지, 종료 할 때 사용되는 신호 프로토콜이다. RTP(RealTime Transport Protocol)실시간 비디오, 오디오 및 데이터를 전송하는데 사용하는 프로토콜이다.R..

카테고리 없음 2025.01.22

마일즈스톤?

회사에서 업무를 진행하다가 마일즈스톤 이란 단어를 들은적이 있다.마일즈? 스톤? 무슨돌 인가? 라고 생각을 했다. 영단어 사전에서는 중요한 단계돌로된 마일표(이정표)매우 중요한 사건이라고 한다. 그렇다면 업무에서 마일즈스톤은 무엇일까? 마일즈 스톤은 프로젝트 진행과정에서 특정할 만한 중요한 사건의 한 지점을 뜻한다고 한다.프로젝트 진척 상황을 나타내는 강력한 이정표 역할이다. 프로젝트 일정관리에서 체크를 하기위한 용도로 사용하며 쉽게 생각하면 프로젝트 체크포인트라고 보면 될 것 같다.회사의 프로젝트는 여러분야의 많은 사람들이 얽혀있고 많은 사항들이 동시 다발적으로 진행된다 하지만 프로젝트가 전체적으로 얼마나 진행되었다는것을 모두가 파악하기는 어려움이 있다. 이때 필요한것이 마일즈스톤인것 같다. 프로젝트 ..

카테고리 없음 2025.01.22

[Android] Android Studio Kotlin DSL 적용중 빨간줄

안드로이드 스튜디오 플라밍고 버전(2022.2.1 Patch2)을 사용하여 Kotlin DSL 으로 마이그레이션 하는 과정에서 무슨 이유인지 모르겠지만 kts파일에 모두 빨간줄이 그어졌다. 내용은 Cannot access 'java.lang.Object' which is a supertype of ~~~ 으로 대충 엑세스 할 수 없다는 내용이었다. 다행히 그럼에도 빌드도 잘되고 해서 문제는 딱히 없다만... 빨간줄이 너무나도 찜찜한 나머지 안드로이드 스튜디오 캐시도 날려보고 안드로이드 스튜디오를 다시 설치도 해보고 해봤지만 소용 없었다... 이것 저것 찾아보다가 Jetbrains의 youtrack에서 해당 문제 해결방법을 찾았다. 나는 MacBook을 사용하고 있었기 때문에 Mac 기준으로 해결방법을 나..

안드로이드 2023.06.27

[Android] Activity에 대해서... ( feat. Android공식 문서 )

안드로이드 공식문서를 읽으면서 내 생각에 중요부분을 정리해보려고 한다. 액티비티소개 액티비티는 안드로이드 앱의 중요한 컴포넌트로 액티비티가 실행되고 결합되는 방식은 애플리케이션의 기본 요소이다. main() 함수를 통해서 앱이 실행되는 프로그래밍 패러다임과 달리 안드로이드는 라이프사이클에 따른 콜백 메서드를 호출 하여 액티비티 인스턴스의 코드를 시작한다. 액티비티의 개념 모바일 앱은 사용자와 상호작용이 항상 동일한 위치에서 시작되는 것이 아니라는 점에서 데스크탑 앱과 다르다. 사용자의 앱 탐색은 동일한 입력이 주어지더라도 매번 다른 과정을 거쳐 다른 결과를 도출하는 비결정론적으로 시작된다. 홈 화면에서 이메일 앱을 실행 시켰을때는 이메일 목록이 나오지만 다른 앱을 통해서 이메일 앱을 실행하면 메일을 작성..

안드로이드 2023.04.28

[Kotlin] contentToString을 알아보자

[Kotlin] JoinTo 를 알아보자 코틀린에서 배열을 출력해보면 다음과 같이 나타난다. 이는 println을 깊게 파고 들어가면 알 수 있는데 //코틀린에서 내가 호출한 함수 @kotlin.internal.InlineOnly public actual inline fun println(message.. charlie-dev.tistory.com 이전 글에서 JoinTo에 대해서 알아보았다. 이번에는 contentToString 을 알아보도록 하겠다. 먼저 contentToString 사용법이다. fun main() { var array = arrayOf("가","나","다","라","마","바",) println(array.contentToString()) } // 출력 //[가, 나, 다, 라, 마..

Kotlin 2022.09.29