
요런 느낌의 DatePicker를 만들고 싶다면.. private let datePicker: UIDatePicker = UIDatePicker() 먼저 선언을 해 줍니다 그러면 원하는 대로 나오지 않기 때문에 변경해봅시당 datePicker.do { $0.preferredDatePickerStyle = .wheels } 이 외에도 다양한 모드가 있습니다 UIKit - Date Picker 사용하기, iOS 14 변경사항 정리 본 포스팅은 다음 버전을 기준으로 작성되었습니다. Swift 5.3 iOS 14.1 Intro 이전 포스트에서 Date 에 관해 알아보았으니 이번에는 사용자가 아이폰에서 날짜를 고를 때 자주 마주치게되는 인터페이 kasroid.github.io 참고 참고 우리는 날짜는 필요없고 시..
만약 주소창에 특정 URL 값을 입력한다면? 브라우저 1. URL에 입력된 값을 브라우저 내부에서 결정된 규칙에 따라 그 의미 조사 2. 조사된 의미에 따라 HTTP Request 메시지 만듬 3. 만들어진 메시지를 웹 서버로 전송 - 이때 만들어진 메시지 전송은 브라우저가 하는 것이 아니라 OS에 의뢰하여 메시지 전달 - OS에 송신을 의뢰할 때는 도메인명이 아니라 ip 주소로 메시지를 받을 상대를 지정해야 하는데, 이 과정에서 DNS 서버를 조회 프로토콜 스택, LAN 어댑터 1. 프로토콜 스택이 브라우저로부터 메시지 받음 2. 브라우저로부터 받은 메시지를 패킷 속에 저장 3. 수신처 주소 등의 제어정보 덧붙임 4. 패킷을 LAN 어댑터에 넘김 5. LAN 어댑터는 다음 Hop의 MAC 주소를 붙인 ..

로드밸런싱 둘 이상의 CPU or 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것 - 웹사이트에 접속하는 인원이 급격하게 늘게 되면서 모든 사람들의 트래픽을 감당하기에 서버 1대로 부족 - 대응 방안 : 하드웨어 성능 향상, 여러대의 서버가 나눠서 일하도록 만드는 것 - 하드웨어 향상 비용이 더욱 비싸기도 하고 서버가 여러대면 무중단 서비스를 제공하는 환경 구성이 용이하기에 여러대의 서버가 나눠서 일하는 Scale-out이 효과적 - 여러 서버에게 균등하게 트래픽을 분산시켜주는 것 -> 로드밸런싱 로드 밸런싱 : 분산식 웹 서비스로 여러 서비스에 부하를 나누어주는 역할 - Load Balancer를 클라이언트와 서버 사이에 두고 부하가 일어나지 않도록 여러 서버에 분산 - 서비스를 운영하는 사이트의 ..

프로세스 - 수행 중인 프로그램 - 보조기억 장치에 단순히 저장되어 있는 프로그램은 프로세스가 아님 - 데이터를 기본으로 정상적인 실행을 위해 필요한 환경을 시스템으로부터 부여받은 능동적인 존재 스레드 - 프로세스 안에서 실행되는 여러 흐름 단위 - 큰 틀 : 프로세스 / 세분된 작은 일 : 스레드 - 프로세스마다 최소 1대의 스레드 소유 (메인 스레드 포함) - 프로세스는 각각 별도의 공간을 할당 -> 독립적 Code - 코드 자체를 구성하는 메모리 영역(프로그램 명령) Data - 전역변수, 정적변수, 배열 등 : 초기화 된 데이터는 data 영역에 저장 / 초기화되지 않은 데이터는 bss 영역에 저장 Heap - 동적 할당 시 사용 (new(), malloc() 등) Stack - 지역변수, 매개변..
@objc private func touchupBackButton(){ // rootView를 FriendTabViewController로 변경 let navigationController = UINavigationController(rootViewController: FriendTabViewController()) navigationController.modalPresentationStyle = .overFullScreen self.present(navigationController, animated: true) } rootViewController를 FriendTabViewController로 변경함으로서 뷰를 전환한다

AutoLayout 이란? 제약 조건을 기반으로 동적으로 크기와 위치를 계산하는 방법 - 디바이스의 view 사이즈에 따라 제약조건에 맞게 위치와 사이즈를 동적으로 조절 - 어느 디바이스에서든지 같은 레이아웃을 가지도록 합니다. View의 속성 1. 위치 속성 - CenterX, Leading, Trailing, CenterY, Top, Bottom 2. 크기 속성 - Width, Height - 고정되어 있는 절대값이 아닌, 조건(contraints)을 설정 private func layout() { view.addSubview(firstView) view.addSubview(secondView) view.addSubview(thirdView) view.addSubview(fourthView) view..

데이터베이스란? 조직에 필요한 정보를 어기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해놓은 것 1. 데이터, 정보, 지식 데이터 + 데이터 -> 정보 정보 + 정보 -> 지식 데이터 : 관찰의 결과로 나타난 실제 값 정보 : 데이터에 의미부여 지식 : 사물과 현상에 대한 이해 2. 데이터베이스의 활용 데이터베이스는 데이터의 검색과 변경 작업 주로 수행 변경 : 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업 3. 데이터베이스 개념 및 특징 ➡️ 데이터베이스 개념 1. 통합된 데이터 - 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장 - 중복 최소화해 데이터 불일치 현상 없애기 2. 저장된 데이터 - 디스크, 테이프 같은 컴퓨터 저장 장치에..

프로젝트 폴더 이름을 변경하고 실행했더니 이와 같은 오류가 난다 xcode build input file cannot be found app Info.plist 파일의 위치가 바뀌어 일어난 오류이며 빌드 설정을 변경해 주면 해결할 수 있다 먼저 프로젝트 파일을 선택 요기서 Build Settings에 들어가 All을 선택해준다 그리고 검색 (cmd + f)으로 info.plist 파일을 검색 그렇게 하면 Packaging에서 Info.plist 파일을 찾을 수 있는데 이 파일 경로를 변경해주면 오류가 해결된다
PostgreSQL 이란? - PostgreSQL은 객체관계형 DBMS로 개발자는 기존 데이터 type에서 확장된 type 형태를 자유롭게 정의하여 사용 가능 - 또한 테이블 상속기능이 제공되어 자식 테이블은 부모 테이블로부터 열을 받아 사용 가능 - 방식 : 멀티프로세스 - 단순 CRUD시에는 MySQL에 비해 PostgreSQL의 성능이 떨어짐. PostgreSQL은 복잡한 쿼리를 요구하고 대규모 서비스 경우에 특화 - MGA 방식으로 튜플을 업데이트할 때 새로운 값으로 replace 처리하는 것이 아닌, 새로운 튜플을 추가하고 이전 튜플은 유효 범위를 마킹하여 처리 - PostgreSQL UPDATE시 내부적으로 새 행이 INSERT되고 이전 데이터는 삭제 표시가 됨. - 모든 인덱스에는 행의 실제..

롬복이란? 자바 개발할 때 자주 사용하는 코드 Getter, Setter, 기본생성자, toString 등을 어노테이션으로 자동 생성 implementation 'org.projectlombok:lombok' -> build.gradle에 위와 같은 코드 추가 -> gradle refresh 인텔리제이 2020.03 버전 이후에는 롬복 기본 라이브러리로 설치되어 있어 따로 설치할 필요는 없었다 - setting > build > compiler > annotation processer 에서 Enable annotation processing 체크 완료 +) 추가

build.gradle 파일에 compile('org.projectlombok:lombok') 위와 같은 코드를 추가하고 refresh 했는데 Could not find method compile() 에러 발생 compile, runtime, testCompile, testRuntime 명령어는 gradle 7.0 부터 삭제 삭제된 명령어를 사용해 오류가 난 것 위 명령어들은 implement, runtimeOnly, testImplementation, testRuntimeOnly로 변경되었다 implementation 'org.projectlombok:lombok' 그렇기에 compile 명령어를 implementation으로 변경해 주었다 해결 완 출처 : https://velog.io/@g0709-..

java.lang.IllegalStateException: Found multiple @SpringBootConfiguration annotated classes 에러 같은 패키지 안에 @SpringBootApplication 어노테이션이 중복으로 선언되어 발생하는 오류 나같은 경우는 자동으로 생성된 ExSpringboot2Application과 직접 생성한 HelloControlloer에 중복 선언되어 있었다 주석 처리를 해준다 해결 완료

인텔리제이에서 처음 스프링부트를 실행했을 때 요런 에러가 떴다. application.properties 파일에 밑과 같은 정보를 추가 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/(DB스키마)?autoReconnect=true spring.datasource.username=(DB아이디) spring.datasource.password=(DB비밀번호) mysql일 경우 오류 해결
스프링부트는 웹 프로그램을 쉽고 빠르게 만들 수 있도록 도와주는 웹 프레임워크 자바로 만들어짐 - XSS, SQL Injection 공격을 기본으로 막아줌 - 로그인 기능, 페이징 기능 등이 잘 만들어져 있음 - 톰캣 서버가 내장되어 있고 설정도 자동 적용, WAS를 쓰지 않아도 됨 - 설정이 쉬움 1. Frame(틀)work(동작) 👉🏻 틀 안에서 동작하는 것 - 틀을 벗어나지 않고 그 안에서만 움직이는 것, 틀에 맞춰서 개발할 수 있게 됨 2. 스프링은 오픈소스 - 소스코드가 공개되어 있다는 것 - 내부를 볼 수 있음 👉🏻 내부를 고치는 것 가능, 무료 3. 스프링은 IoC 컨테이너를 가진다. - Inversion of Control : 제어의 역전, 주도권이 스프링에 있다는 것 - class : 설..
1. 깃허브에 프로젝트 올리기 git remote add origin (원격 저장소 주소) - 로컬의 git 저장소에 원격 저장소 주소 연결 git branch -M main - main branch의 이름을 main으로 git push -u origin main - 커밋 내역들을 업로드 git remote - 원격 목록들 보기 git remote remove (origin 등 원격 이름) - 원격 지우기 (연결 해제) 2. 깃허브에서 프로젝트 다운받기 git clone (원격 저장소 주소) 3. 원격으로 커밋 밀어올리기 git push 4. 원격의 커밋 당겨오기 git pull