- [ 놀이터 ]프로그래머스 - 코드 처리하기2023-10-28 16:49:10def solution(code): ret = "" # 결과 문자열을 초기화 mode = 0 # 초기 모드는 0으로 설정 for idx in range(len(code)): if mode == 0: # 모드가 0인 경우 if code[idx] != "1": if idx % 2 == 0: # idx가 짝수인 경우에만 문자를 ret에 추가 ret += code[idx] else: mode = 1 # "1"을 만나면 모드를 1로 변경 else: # 모드가 1인 경우 if code[idx] != "1": if idx % 2 != 0: # idx가 홀수인 경우에만 문자를 ret에 추가 ret += code[idx] else: mode = 0 # "1"을 만나면 모드를 0으로 변경 if ret == "": retu..
- [ CS/운영체제 ]운영체제 정리 #12023-10-25 21:58:02레지스터 설명 프로그램 카운터(program counter; PC): 다음에 실행할 명령어의 주소를 기억했다가 제어장치에 알려줌. 명령어 포인터(instruction pointer라고도 함) 명령어 레지스터(instruction register; IR): 현재 실행 중인 명령어를 저장 메모리 주소 레지스터(memory address register; MAR): 데이터를 메모리에서 가져오거나 보낼 때 주소를 지정하는 데 사용 메모리 버퍼 레지스터(memory buffer register; MBR): 메모리에서 가져오거나 옮겨갈 데이터를 임시로 저장. 항상 메모리 주소 레지스터와 함께 동작함 메모리 보호 메모리 보호란? 사용자의 영역의 작업이 운영체제 영역으로 침범하지 못하도록 막는 것 메모리 보호가 되지않..
- [ Android [ Java, Kotlin ] ]Appium을 이용해 안드로이드 테스트 자동화 환경 구축하기2023-10-20 22:35:41Appium이란? Appium은 모바일 앱 자동화 도구로, 여러가지 모바일 플랫폼에서 앱을 테스트하고 자동화 할 수 있는 소프트웨어 프레임워크이다. IOS 및 안드로이드 플랫폼에서 실행되며 다양한 프로그래밍 언어를 지원하여 개발자 및 QA엔지니어가 UI요소와 상호작용하며 앱의 기능을 테스트 하는 스크립트를 작성할 수 있도록 도와준다. Appium Server? Appium Server는 Appium 프레임워크의 핵심 구성 요소 중 하나로, 자동화를 관리하고 제어하는 중심적인 역할을 수행한다. 주요 역할로는 다음6가지 정도가 존재한다. 1. 통신 다리 역할 클라이언트 애플리케이션(Appium Inspector, Test Script 등)과 모바일 디바이스 또는 에뮬레이터 사이에서 중개자 역할을 한다. 2...
- [ Android [ Java, Kotlin ] ]안드로이드 Retrofit2 통신 시 HTTPS가 아닌 HTTP로 설정하기2023-10-19 10:22:53안드로이드에서 Retrofit2으로 서버와 통신할 때 요구되는 방식은 HTTPS다. 프로토콜은 HTTP와 HTTPS가 존재하는데 두 프로토콜의 차이점은 보안성과 데이터 무결성의 차이에 있다. HTTP HTTPS 보안 제공 X 제공 O 암호화 평문전송 SSL/TLS 사용 포트 80 443 요약하자면, HTTP는 보안 기능이 없고 데이터를 암호화하지 않지만, HTTPS는 데이터 보안과 무결성을 제공하므로 민감한 정보를 안전하게 전송하는 데 사용된다. 웹에서는 HTTPS를 사용하는 것이 권장되며, 많은 웹사이트가 HTTPS를 통해 데이터 보안을 강화하고 있다. 하지만, 불가피하게 HTTP로 통신해야 할때는 xml - network_security_config.xml 파일을 생성하여 HTTP 연결 권한을 허용한..
- [ Android [ Java, Kotlin ] ]안드로이드 프로그래밍 - 커스텀 프로그래스바(Progressbar)2023-10-16 11:20:50OS - Mac OS 13.5.2 Tools - Android Studio Iguana | 2023.2.1 Canary 5 Language - Java android version - 12 tartgetSDK - 33 minSDK - 28 요약 안드로이드 앱을 개발하다보면 프로그래스바를 사용하는 경우가 많다. 예를 들어 로딩화면을 구현하거나, 가입 과정 등 요긴하게 사용된다. 이번 포스트를 통해 프로그래스바를 커스텀 하는 방법을 제공하겠다. 해결방안 우선, xml파일을 따로 생성해서 include시키는 것이 코드의 재사용성에 이점이 있다. custom_progressbar.xml파일을 하나 생성해서 관리한다. progressbar은 다음과 같이 선언했다. style="?android:attr/progre..
- [ Android [ Java, Kotlin ] ]안드로이드 프로그래밍 - 인텐트(Intent)와 Finish2023-10-15 23:12:39환경 OS - Mac OS 13.5.2 Tools - Android Studio Iguana | 2023.2.1 Canary 5 Language - Kotlin android version - 12 tartgetSDK - 33 minSDK - 28 요약 안드로이드 스튜디오에서 앱 개발 시 여러 페이지를 작성해서 페이지를 넘겨야하는 경우가 종종 존재한다. 이를 해결하기 위해 Intent기능을 사용해 페이지를 넘기는 기능을 설명할 것이다. 해결방안 1. acitity_main.xml에 Intent기능을 수행할 버튼을 하나 생성한다. 2. 생성한 버튼에 id값을 부여한다. activity_main.xml 3. 새로운 액티비티를 생성한다.(res - layout - new - activity- empty vie..
- [ Android [ Java, Kotlin ] ]안드로이드 프로그래밍 - 타이틀바(Action bar) 제거 방안2023-10-15 22:15:46환경 OS - Mac OS 13.5.2 Tools - Android Studio Iguana | 2023.2.1 Canary 5 Language - Kotlin android version - 12 tartgetSDK - 33 minSDK - 28 요약 안드로이드 스튜디오에서 앱 개발 시 상단에 존재하는 타이틀바를 제거하는 경우가 많다. 이 문제를 해결하기 위해 타이틀바를 제거하는 방법을 2가지 제공하겠다. 해결방안 1. Themes.xml수정 parent에 NoActionbar을 지원하는 테마를 적용시키는 것을 사용하거나, style속성에 다음 두 속성을 넣으면 ActionBar를 제거할 수 있다. false true 2. 코드로 구현 하지만 테마를 앞서 말한듯이 작성하면 앱 전체에 영향이 미친다. (..
- [ Android [ Java, Kotlin ] ]안드로이드 프로그래밍 - 버튼 색상 변경2023-10-15 21:59:16환경 OS - Mac OS 13.5.2 Tools - Android Studio Iguana | 2023.2.1 Canary 5 Language - Kotlin android version - 12 tartgetSDK - 33 minSDK - 28 요약 안드로이드 스튜디오로 앱을 개발 할 때, 버튼의 background속성을 주었음에도 불구하고 버튼색상이 변경되지 않는 경우가 있다. 이는 안드로이드 버전이 올라가며 생기는 이슈이며 여러 해결방안이 존재한다. 이번 포스트는 이를 다루는 방법을 설명하겠다. 해결방안 여러가지 방법으로 버튼 색상을 변경하는 방법을 설명하겠다. 1. Themes.xml수정 프로젝트 생성 시 다음과 같이 설정되어 있을텐데 여기서 테마를 Material3를 사용하지 않고 parent..