농장 122

개발자 영어단어 10개 (1탄)

영알못 개발자가 작성한 글입니다.1. starvation기아, 굶주림Livelock은 IT용어로, '무한 반복'이란 뜻입니다.위 글은 DB 트랜잭션이 부족한 상황에 대해 얘기하는 것 같습니다.indefinite(무기한의)acquire(획득하다)denial-of-service(서비스 거부 공격)를 줄여서 DoS라고 합니다. 익숙한 단어인데 full name은 처음 알았어요. 2. abnormally, abnormal비정상적으로, 비정상적인 3. observe~를 보다, (보고)알다, 목격하다, 관찰/관측/주시하다 두 명령어의 차이점을 어떻게 볼 수/알 수 있느냐, 라는 질문입니다. 4. established확실히 자리잡은, 인정받는, 저명한 올바른 JSON data format에 대해 이야기하는 내용입니다..

[IntelliJ / Kotlin] kotlinx.coroutines 모듈 Import 안됨 해결

Unresolved reference: delay 우선 해당 패키지의 공식 경로는 아래와 같다. https://github.com/Kotlin/kotlinx.coroutines#gradle GitHub - Kotlin/kotlinx.coroutines: Library support for Kotlin coroutines Library support for Kotlin coroutines . Contribute to Kotlin/kotlinx.coroutines development by creating an account on GitHub. github.com 아래는 intelliJ에서 새 프로젝트 생성시 선택할 수 있는 빌드 시스템 별 해결방법이다. Gradle dependencies { impleme..

농장/Java·Kotlin 2023.12.10

[Kotlin] 문자열 바이트 수 구하기 / 바이트 크기

코틀린에서 문자열의 바이트 수(크기)를 구하는 확장함수를 아래와 같이 코드에 추가하여 사용할 수 있다. val String.byteSize: Int get() = toByteArray(Charsets.UTF_8).size 클래스 안에 두지 않고 밖에 두어야 여러 클래스들에서 사용이 용이하다. 자세한 설명을 아래에서 잇겠다. toByteArray() 코틀린의 String 클래스에선 toByteArray()라는 메서드를 지원한다. 문자열로부터 ByteArray를 추출하였을때 이 ByteArray의 크기가 문자열의 바이트 수이다. fun String.toByteArray( charset: Charset = Charsets.UTF_8 ): ByteArray 기본 파라미터로는 Charset 클래스를 받는다. 디..

농장/Java·Kotlin 2023.11.05

[MySQL] JSON 타입 사용해서 JSON Array 다루기

MySQL에 JSON 타입이 지원되기 시작한 건 version 5.7.8 in mid 2015 부터이다. MySQL 5.7 공식 가이드 이 글에선 8.0 기준으로 설명한다. 개발 공부할때 직접 쿼리를 돌려가보면서 확인하기 귀찮은 나같은 사람에게 이 글을 바친다. JSON 타입을 적극 활용하자! JSON 타입 컬럼에 값을 insert할때 유효성검사를 시스템에서 자동으로 해주므로, 5.7.8 이상 버전을 사용한다면 구지 varchar, text와 같은 문자열 타입 컬럼에 json 형태 string을 저장할 필요가 없다. 또한 JSON 컬럼에 저장된 데이터는 시스템 자체에서 json 객체로 인식하기 때문에 적합하고 사용이 편리하다. JSON 타입 컬럼의 사이즈 한도 LONGBLOB, LONGTEXT 타입과 거..

농장/DB 2023.09.16

코틀린 스코프 함수 정리

Scope 함수 apply 주로 객체 자신을 초기화하거나 자신의 프로퍼티를 사용하는 경우에 사용한다. 객체 자신의 프로퍼티를 참조없이 곧바로 사용이 가능하며, 반환 객체도 자기 자신이다. run 주로 초기화가 완료된 객체에 사용한다. 객체 자신의 프로퍼티를 참조없이 곧바로 사용이 가능하며, 마지막 구문을 무조건 반환한다. with 다른 스코프 함수완 달리 확장함수의 모습은 아니나 확장함수처럼 동작한다. 매개변수로 객체를 받으면 내부에서 해당 객체의 프로퍼티를 참조없이 곧바로 사용이 가능하다. run함수와 동일하게 마지막 구문을 무조건 반환한다. also 함수 내부에서 it을 통해 객체 자기 자신을 사용 가능하며, 반환 객체는 자기 자신이다. let 함수 내부에서 it을 통해 객체 자신을 사용 가능하다. ..

농장/Java·Kotlin 2022.01.19

Android 앱 종료 에러 해결 java.lang.ExceptionInInitializerError

구글 플레이스토어에 업로드한 앱이 내 폰이 아닌 다른 기기에서 앱 실행 즉시 크래시 에러가 난다. Play console에서 확인한 에러다. java.lang.ExceptionInInitializerError: at okhttp3.internal.platform.Platform.get (Platform.java:85) at okhttp3.OkHttpClient.newSslSocketFactory (OkHttpClient.java:263) at okhttp3.OkHttpClient. (OkHttpClient.java:229) at okhttp3.OkHttpClient. (OkHttpClient.java:202) at retrofit2.Retrofit$Builder.build (Retrofit.java:61..

농장/Android 2021.09.04

nodejs ajax SyntaxError: Unexpected end of JSON input 에러 해결

프론트 단에서 ajax로 데이터를 넘겨주었으나 계속 제목과 같은 오류가 발생한다. dataType을 text로 주면 넘어가긴 하나 서버단에서는 아무 데이터도 받지 못한다. $.ajax({ url: '/chat', type: 'POST', data: {port: $port}, dataType: 'json', 아래 코드를 추가한다. const bodyParser = require("body-parser"); //app.use(bodyParser.urlencoded({ extended: true }));

농장/Node.js 2021.08.21

2-3 컴퓨터 성능 향상 기술 / 버퍼와 캐시, 저장장치의 계층구초에 대해

* 메모리 = 메인메모리 버퍼 버퍼(buffer)는 일정량의 데이터를 모아 옮김으로써 두 장치 간 속도의 차이를 완화하는 역할을 한다. 버퍼의 용량이 클 수록 속도가 빠르다. 버퍼가 다 채워질 때까지 저장장치 간에 데이터 전송이 지연되기 때문에 연결된 하드웨어 제거시 데이터 소실 등의 문제가 생길 수 있으므로 주의해야 한다. 예: 하드디스크의 메모리 버퍼, 동영상 스트리밍에 사용되는 데이터 버퍼 스풀 SPOOL, Simultaneous Peripheral Operation On-Line의 약자. CPU와 입출력장치가 독립적으로 동작하도록 고안된 소프트웨어적인 버퍼이다. 대표적으로 프린터의 스풀러가 있다. 스풀러(spooler): 인쇄할 내용을 순차적으로 출력하는 소프트웨어이며 출력 명령을 내린 프로그램과..

3-1 프로세스 개요

프로세스란? 프로그램 = 정적인 상태, 저장장치에 위치 프로세스 = 컴퓨터 시스템의 작업 단위(Task) = 동적인 상태, 실행을 위해 메모리에 위치 작성한 프로그램을 실행하면, 프로세스가 된다. 프로그램이 메모리로 로드된다. 프로세스 제어 블록(PCB)을 생성한다. : PCB가 있어야 프로그램을 프로세스로 전환할 수 있으며, 프로세스를 처리하는데 필요한 정보들을 가지고 있다. 운영체제 또한 프로그램이기에 부팅과정을 통해 프로세스 형태로 실행된다. 때문에 컴퓨터에선 운영체제의 커널 프로세스(kerner process), 일반 사용자의 사용자 프로세스(user process)가 있다. 프로세스의 상태 일괄 작업 시스템의 상태 변화: 생성(create) >> 실행(run) >> 완료(terminate) 오늘..

2-2 CPU와 메모리

크오아아아아아아아ㅏㅇ아아아아(아무일 없음, 취준생, 가끔 급발진함) CPU의 기본 구성 산술논리 연산장치(Arithmetic and Logic Unit, ALU): 데이터를 연산하는 장치로, 산술연산과 논리연산을 수행한다. 제어장치(control unit): CPU에게 작업을 지시한다. 레지스터(register): CPU 내에 데이터를 임시로 보관하는 곳이다. 연산을 위해 필요한 데이터를 메모리에서 CPU로 가져와 임시로 보관하고, 연산 결과를 메모리에 저장하기 전 보관한다. 사용자 가시 레지스터(user-visible register): 사용자에 의해 내용이 변경된다. 데이터 레지스터(DR): 메모리에서 가져온 데이터를 임시로 보관한다. CPU에서 주로 사용되며, 일반 레지스터 또는 범용 레지스터라고 ..

2-1 컴퓨터의 기본 구성 / 하드웨어의 구성, 폰노이만 구조란?

하드웨어의 구성 필수장치 중앙처리장치(CPU): 명령어를 해석하여 실행 메인메모리(제1저장장치): 작업에 필요한 프로그램과 데이터를 저장. 바이트 단위의 주소 분할. 데이터를 영구적으로 저장할 수 없다(전원OFF시 소멸). 주변장치 입력장치: 외부의 데이터를 컴퓨터에 입력하는 장치. 키보드, 마우스, 스캐너, 터치스크린 등 출력장치: 컴퓨터의 처리결과를 사용자가 원하는 형태로 출력하는 장치. 프린터, 모니터, 스피커 등 저장장치(제2저장장치, 보조저장장치): 메인메모리와 달리 구동장치가 있어 속도가 느리지만, 저렴하고 용량이 크다. 데이터를 영구적으로 저장한다. 자성 이용 저장장치: 카세프테이프, 플로피디스크, 하드디스크 등 레이저 이용 저장장치: CD, DVD, 블루레이디스크 등 메모리 이용 저장장치:..

1-2 운영체제의 역사 / 운영체제, OS시스템, 컴퓨팅 환경

일괄 작업 시스템 batch job system 1950년대. 아주 작은 논리회로인 IC칩으로 컴퓨터가 만들어지면서 등장했다. 현대적인 프로그래밍과 컴퓨터의 시작(진공관&전선 탈출)! CPU, 메인메모리가 있었고 입력장치로는 *천공카드 리더(OMR의 원조)를, 출력장치로는 *라인프린터를 사용했다. * 천공카드 리더: 구멍을 뚫어 문자와 숫자를 표현했다. 흔히 시험에 쓰이는 OMR카드에 까만 점을 칠하는 것과 비슷하다. 구멍을 뚫었다니 꼭 오르골을 사용하는 것 같기도. * 라인프린터의 '라인'은 한줄씩만 출력한다는 의미이다. 그러나 이러한 입출력 기기로 인해 일괄 처리 시스템(batch processing system)이다. 시분할 시스템 time sharing system 1960년대 후반. 다중 프로그..

shields.io / github badge / C#, C++ 만들기

URL에 들어가지 않는 특수문자를 포함한 언어들을 사용하기 위해선 특수문자 인코딩 텍스트를 사용해야 한다. C# https://img.shields.io/badge/-C%23-000000?logo=Csharp&style=flat C#의 경우, logo 파라미터는 'csharp'으로 전부 알파벳이지만 뷰에 이름을 같이 표시할때는 #을 사용할 수 없다. 때문에 %의 URL인코딩 문자열 '%23'을 사용해주었다. C++ https://img.shields.io/badge/-C++-000000?logo=c%2B%2B&style=flat cpp은 약간 다르다. logo 파라미터를 'cpp'이라고 사용하면 될 줄 알았는데 아니다. 인코딩문자열을 넘겨주어야 한다. 뷰에 표시할 이름에는 그냥 '+'기호를 사용해도 상관..

농장/Git·Github 2021.07.02