728x90

카테고리 204

[Kotlin] 코틀린 언어 소개

[Kotlin] 코틀린 언어 소개 코틀린에서는 ; 생략 가능하다. 한 줄에 여러 명령을 작성하는 경우에는 반드시 ;로 구분한다. 프로젝트 시작 시 아무것도 없는 Empty Views Activity로 프로젝트를 생성하고, 프로젝트 Name의 첫 글자는 대문자로 설정한다. name을 설정하면 package name이 자동으로 설정된다. 프로젝트를 저장하는 save location에는 한글이 포함되면 안 된다. 안드로이드 스튜디오는 에디터, 안드로이드 sdk는 컴파일시켜 준다. ex) API 24 ("Nougat"; Android 7.0) ==> API 24, 7.0 이후의 sdk에서는 모두 실행 가능하다. mainActivity에서 id값 설정은 삭제하고 시작하자. gradle sync를 잘 시켜주자. s..

Front-End/Kotlin 2024.04.13

[OS] 프로세스와 스레드

[OS] 프로세스와 스레드 학습목표 - 프로세스가 생성된 후 어떤 상태 변화를 거치는지 알아보자 - 프로세스 제어 블록의 구성과 문맥 교환 시 동작 과정을 이해하자 - 프로세스의 생성과 복사, 전환 과정을 이해하자 - 스레드의 개념을 이해하고 멀티스레드 시스템의 장점을 알아보자 프로세스의 개념 프로그램이란 저장장치에 저장되어 있는 정적인 상태입니다. 프로세스란 실행을 위해 메모리에 올라온 동적인 상태, 즉 실행 중인 프로그램을 말합니다. 프로세스는 메모리에 적재되어 운영체제의 제어를 받습니다. 운영체제로부터 PCB라는 프로세스 제어 블록을 할당받는다는 것은 곧 프로세스가 존재한다는 의미입니다. 프로세스 제어 블록 PCB란 프로세스를 위해 관리하는 자료구조입니다. 프로세스 구분자란 PCB에서 각 프로세스 ..

CS/OS 2024.04.09

[ Kotlin ] 기본문법 3 상속, 람다, 익명 함수

[ Kotlin ] 기본문법 3 상속, 람다, 익명 함수 1. 상속 // 상속을 가능하게 하려면 open을 써야 한다 // 클래스, 변수, 함수 모두 open을 써야 한다 open class User1(name:String){ // 매개변수에 var를 붙여 멤버변수로 생성이 가능하다 open var name = "lee" // 멤버변수를 클래스 안에 생성 가능하다 //constructor(name:String){ // 생성자를 직접 넣거나 init{ // init 사용 println("specialUser.. ${this.name}.. $name") this.name = name println("specialUser.. ${this.name}.. $name") //this.name = name } ope..

Front-End/Kotlin 2024.04.05

[ Kotlin ] 기본문법 2 조건문, 반복문, 객체지향

[ Kotlin ] 기본문법 2 조건문, 반복문, 객체지향 1. 조건문 - 기본 fun main() { var data1 = 10 if(data1 > 0){ println("positive") } else if (data1 == 0){ println("0") } else{ println("negative") } } - 코드의 공통된 특징을 앞으로 빼기, 코틀린 코드 간략하게 만들기 fun main() { var data1 = 10 var data2:Int if(data1 > 0){ println("positive") data2 = 1 } else if (data1 == 0){ println("0") data2 = 0 } else{ println("negative") data2 = -1 } // 위의 식과..

Front-End/Kotlin 2024.04.05

[ Kotlin ] 기본문법 입출력, 자료형, 함수, 배열

[ Kotlin ] 기본문법 입출력, 자료형, 함수, 배열 1. 입출력, 자료형 // 전역변수는 반드시 초깃값 설정 var data5:Int = 40 // var dat6L:Int 데이터 선언만 하면 오류가 난다 // Int, Short, Long, Double, Floot, Byte, Boolean, Char는 lateinit 사용불가 lateinit var data6 : String // 타입만 설정, 전역변수의 초기화를 미룸 fun main() { // var과 val 의 차이 var data1 = 10 // 변경 가능, 데이터 타입 자동 할당 val data2 = 10 // 변경 불가능 data1 = 20 //data2 = 10 // 오류 // Int, Short, Long, Double, Flo..

Front-End/Kotlin 2024.04.03

JAVA 람다식과 컬렉션 프레임 워크

JAVA 람다식과 컬렉션 프레임 워크 람다식 람다식이란 메서드를 하나의 식으로 표현한 것이다. 함수를 하나의 식으로 표현함으로써 간략하게 표현을 할 수 있고, 메서드의 이름과 반환값이 사라져 익명함수라고 부른다. 람다식은 익명 함수답게 메서드에서 이름과 반환 타입을 제거하고, 매개변수 선언부와 몸통 {} 사이에 ->를 사용한다. 람다식 변환하는 방법 1. return 생략 2. 중괄호 생략 3. 중괄호에 문장 하나면 세미콜론 생략 가능 4. 중괄호에 문장이 return 문일 경우 중괄호 생략 불가능, 세미콜론 생략 불가능 5. 매개변수 타입 생략 6. 매개변수 1개이면 매개변수 괄호 생략 7. 매개변수 타입이 있다면, 괄호 생략 불가능 람다식 변환 예시 예시 1 int max(int a, int b){ ..

JAVA Synchronized 스레드 동기화

JAVA Synchronized 스레드 동기화 스레드 동기화 (Thread Synchronized) 멀티스레드 환경에서 여러 스레드가 하나의 공유자원에 동시 접근하지 못하게 막는 것이다. 공유데이터가 사용되어 동기화가 필요한 부분을 임계영역(critical section)이라고 부르고, 이 임계영역에 synchronized 키워드를 사용해 여러 스레드가 동시에 접근하는 것을 방지하여 동기화시킨다. Synchronized로 지정된 임계영역은 한 스레드가 접근해 사용할 때 lock이 걸림으로써 다른 스레드가 접근 불가능 하도록 해줍니다. 해당 스레드가 임계영역의 코드를 모두 실행한 후 벗어나게 된다면 unlock 상태가 되고, 다른 스레드가 임계영역에 접근하여 다시 lock을 걸고 사용가능하게 된다. 스레드..

[ 어떤 개발자가 되고 싶은가 ] '개발자' 진로에 대한 고민

[ 어떤 개발자가 되고 싶은가 ] '개발자' 진로에 대한 고민 컴퓨터공학과 진학 이유 컴퓨터공학과에 진학하고 싶다는 생각은 고등학교 1학년 때부터 한 것 같다. 중학교 때까지는 광고 디자이너가 되고 싶었는데 그 이유는 중학교 시절 나는 창의력이 풍부하여 아이디어 대회가 있으면 항상 수상을 했기 때문이다. 그래서 내가 잘하는 일을 하고자 하였다. 하지만 광고 디자이너 되기 위해서는 미대에 진학해야 한다는 사실을 깨닫고, 미적 감각이 없던 나는 그 꿈을 포기하였다. 그래서 창의력을 살릴 수 있는 다른 직업을 생각해 보게 되었다. 나는 무려 5살 때부터 게임을 좋아했다. 우리 아버지는 it 금융권에서 일을 하셨는데 항상 바쁘셔서 주말에도 출근하셨다. 가끔 주말마다 나를 데려가 일을 하셨는데, 어린아이가 회사에..

일상 2024.03.28

스프링부트 레이어드 아키텍쳐

스프링부트 레이어드 아키텍쳐 모델과 엔터티 차이 모델 : 비즈니스 데이터를 담는 역할 엔터티 : 데이터베이스의 테이블과 스키마를 표현하는 역할 롬복 어노테이션 설명 @Builder : 빌더 클래스를 자동생성해서 객체 생성하기 TodoEntity todo = TodoEntity.builder().id("123").userId("SeY").title("psy").build(); @NoArgsConstructor : 매개변수가 없는 생성자를 자동으로 구현해 줌 @AllArgsConstructor : 클래서의 모든 멤버 변수를 매개변수로 받는 생성자를 자동으로 구현 @Data : 클래스 멤버 변수의 Getter/Setter 메소드를 자동으로 구현 @RestController : 이 클래스가 REST 컨트롤러임을..

REST API (3)

왜 API는 REST가 잘 안되나? 일반적인 웹과 비교, 웹페이지 HTTP API Protocol HTTP HTTP 커뮤니케이션 사람-기계 기계-기계 Media Type HTML JSON REST API가 실패한 이유 : 커뮤니케이션, Media Type HTML JSON 커뮤니케이션 Hyperlink 가능(a태그) 불가능 Self-descriptive 가능(html 명세) 불완전 Json이 불완전하다는 의미 : 대괄호, 중괄호 파싱, 배열 해석은 가능하지만 그 안에 있는 값이 무엇인지는 정의되지 않음. 따라서 JSON의 문법 해석은 가능하지만, 의미를 해석하려면 별도로 API 문서가 필요하다. HTML은 REST를 성공하였다. 하지만 JSON은 REST를 성공하지 못하였다. 독립적인 진화에 도움 그런데..

CS/CS 교육팀 2024.03.24
728x90