no image
[iOS] Travel Planner 예산 입력 포맷 변경 후, 오류 발생
전체적인 기능 구현이 끝나고, 주변 친구들의 자문을 통해 좀 보완되어야 할 부분이 뭐가 있을까 하다가 한 친구가 말하길"예산을 입력할 때, 1000000 숫자 형태로 입력되니까 너무 숫자 읽기가 힘든 것 같아" 라고 했다.사실 그냥 1000000 형태로 입력해도, 나중에 묵시적으로 잘 변환이 되어 결과를 아래와 같이 출력하긴 하지만, 그래도 확실히 가시적으로 불편한 부분이 있는 것 같았다.그래서 이를 1,000,000 형태로 수정하여 사용자 친화적으로 만드는 작업을 하고자한다.일단 코드를 수정했다.그리고 아주 잘만 될줄 알았는데, 문제점이 발생했다.나는 모든 여행 정보가 입력되면 Full Travel Data 라는 로그가 뜨도록 설정해놨는데, 위 포맷처럼 코드를 수정하니 예산이 제대로 반영되지 않고 있었..
2024.11.23
no image
[iOS] Travel Planner 감격의 웹 서버 연결 구현
글 순서가 좀 두서가 없는데, 아무래도 개발을 하고 생각 나는 대로 포스팅하다 보니, 순서가 좀 뒤죽 박죽이지만2주동안 삽질하다가 드디어 웹서버와 통신을 통해 원하던 주요 기능을 구현 했다..진짜 콘솔에 get OK 뜨자마자 소리 벗고 빤스 질렀다ㅋㅋ 아직 UI 등은 허접하지만, 이제 하나씩 고쳐나가면 될 것 같다
2024.11.23
no image
[iOS] Travel Planner 개발일지 - 1
아주 간단히, 사용자의 여행 정보를 입력 받고, 이를 자료구조에 저장하여 하나의 Full 데이터로 관리가 가능하도록 구현했다. 깨알 디테일로, 목적지, 출발일자 및 도착일자를 입력하지 않으면 다음으로 선택하지 못하도록 막아놨다ㅋㅋ로그를 보면 데이터들이 잘 저장되고 있는 것을 볼 수 있다.다만 이 화면에서는 없는데 모든 데이터가 하나의 자료구조에 잘 저장이 되고 있다.
2024.11.22
no image
[Java] 컬렉션 - Array (배열) / 전,중,후 데이터 삽입
이번 주말에 있을 SQLD 시험을 준비하며.. 미뤄 왔던 포스팅을 다시 열심히 해야지..오늘은 컬렉션 프레임워크 중에서 ArrayList, 즉 배열리스트에 대해 포스팅하고자 한다.배열 리스트는 말 그대로 배열 + 리스트 의 개념을 합쳐 놓은 것이라는 선수 지식을 가지고 오늘의 복습을 시작하겠다.배열은 단순하면서도 복잡하면서도 아주 좋은 자료구조이다import java.util.Arrays;public class ArrayMain { public static void main(String[] args) { int[] arr = new int[5]; //index 입력 : O(1) System.out.println("==index 입력: O(1)=="); ..
2024.11.15
no image
[iOS] Travel Planner 개발일지 - 0
개발하기전에, 일단 어떤 기능을 구현해야할지 플로우 차트로 작성해봤다!어떤 데이터가 필요한지 정해야 함여행의 기본적인 메타 데이터로 아래 내용정도 수집 하면 충분할 듯하다.목적지 (Destination)출발 날짜 (Departure)도착 날짜 (Arrival)예산 (Budget)여행 스타일 (Travel Style) 개발 순서 플로우 차트앱 내부에서 구현1. 사용자 데이터 수집 화면 구현2. 각 화면에서 목적지, 날짜, 예산 등을 수집3. 데이터를 수집하여 저장할 자료구조 구현4. 자료구조에 들어있는 데이터를 객체로 생성5. 사용자 데이터로 Gemini에게 질문할 임의의 질문 문자열 생성6. 결과를 보여줄 수 있는 페이지 필요웹서버로 구현1. 임의의 질문 문자열을 통해 Gemini와 통신2. 리턴 받은 ..
2024.11.05
no image
[OS] 스레드(Thread), 스케줄링(Scheduling), 컨텍스트 스위칭 (Context Switching)
이전 포스팅을 요약해서 복습해보자면, 프로세스란 실행 환경과 자원을 제공하는 컨테이너 역할을 하고, 실제 CPU를 사용하여 코드를 한줄씩 처리하는 것은 스레드이다.CPU 코어가 1개이고 , 프로세스가 2개이며, A프로세스에는 스레드가 1개, B 프로세스에는 스레드가 2개라고 가정하자. 그렇다면 처리 과정은 대략 아래 그림과 같다이후 이 과정을 반복하여 모든 프로세스의 스레드를 실행한다.단일 코어 스케줄링스케줄링 방법은 따로 포스팅해야할 정도로 길기 때문에, 간단히 언급만 하고 넘어가겠다!먼저 운영체제는 내부에 스케줄링을 위한 큐를 가지고 있고, 각각의 스레드는 스케줄링 큐에서 대기한다. 그리고 스레드가 처리되는 과정은 아래와 같다.우선 순위가 높은 스레드부터 한 줄씩 코드가 처리되면, 스케줄링 큐의 가장..
2024.11.03
no image
[OS] 프로세스(Process)와 스레드(Thread)
지난번 내용과 이어서, 이번엔 프로세스와 스레드에 대해 알아보자프로그램은 실제 실행 되기 전에는 그저 단순한 파일로써 존재한다.하지만 우리가 프로그램을 실행하면, 프로세스가 생성되면서 프로그램이 실행된다.프로세스에 대해서 밑에서 자세히 알아보자프로세스(Process) 란?먼저 프로세스는 코드섹션 + 데이터 섹션 + 힙 + 스택 으로 이루어져 있다.코드섹션 : 실행할 프로그램의 코드가 저장되어 있는 부분데이터 섹션(기타) : 전역 변수및 정적 변수가 저장되는 부분힙 : 동적으로 할당되는 메모리 영역스택 : 메서드 호출시 생성되는 지역 변수와 반환 주소가 저장되는 영역(스레드)Java식 표현으로 표현하자면, 프로세스는 실행중인 프로그램의 인스턴스이다.그러므로 각 프로세스는 모두 메모리에 독립적으로 존재하며 ..
2024.11.03
no image
[iOS] 여행 계획을 대신 만들어주는 App 만들기 계획
이번 학기 프로젝트 2개중에 하나인 iOS에 인공지능을 적용한 App 만들기에서 정한 주제는 자동으로 여행 계획을 짜주는 앱을 만드는 것을 목표로 했다.여행 뿐만이 아니라, 계획대로 움직이는 것을 포함하여 계획적으로 사는 것이 쉽지 않음그래도 여행은 가고 싶은데…나의 예산, 목적지, 체류 일수, 여행 스타일 등을 입력하면 자동으로 여행 계획을 세워주는App 이 있다면 어떨까?내가 생각했을 때 앱을 동작하게 하는 알고리즘은 크게 아래와 같다.1. 목적지, 출발 날짜, 도착 날짜, 예산, 여행 스타일 등을 입력2. 위에서 입력한 사용자의 데이터에 따라 하나의 질문으로 모아 Gemini 혹은 GPT에게 넘김3. 받은 답변을 그대로 반환하지 말고, 주요 키워드를 파싱하여 사용자에게 리턴해주기 3번 단계가 상당히..
2024.11.02
no image
[OS] 멀티 태스킹 (Multi Tasking), 멀티 프로세싱(Multi Processing)
이번 포스팅은 멀티 태스킹과 멀티 프로세싱에 대해 정리 해보겠다!예를 들어, 피파(프로그램A) 를 하면서 유튜브(프로그램 B) 를 본다고 가정하자.단일 프로그램 실행만약 연산을 처리할 수 있는 CPU 코어가 1개(싱글 코어)라고 한다면, 한 번에 하나의 프로그램 코드를 실행할 수 있다. 이런식으로, 하나의 코드라인씩 꺼내와서 A 프로그램을 마친 후에, B 프로그램도 A 프로그램과 같이 실행한다.위와 같은 방법은 코어가 하나이므로 한 번에 하나의 프로그램 코드만 실행 할 수 있다. 이처럼 하나의 프로그램을 완전히 마친 후에 다을 프로그램의 코드를 실행 할 수 있다면 진짜 개답답해서 죽을 수 도 있을 것 같다..이를 해결하기 위해 하나의 CPU 코어로 여러 프로그램을 동시에 실행하는 멀티 태스킹 기능 기술이..
2024.11.02