0. 서론 멋쟁이사자처럼 "테킷 iOS 앱스쿨 5기" 부트캠프를 선택한 이유내일배움캠프 부트캠프와 테킷 iOS 스쿨과 고민 정말 많이 했는데요. 태킷 iOS스쿨을 선택한 이유는 2가지 입니다. 1. 전기수와 커리큘럼이 많이 달라졌다. 2. UIKit + SwiftUI 를 배울 수 있다. 전기수h2de6n.tistory.com 멋쟁이 사자처럼을 선택하고나서 TIL을 하루에 한번씩 올린다고 했는데, 지금 올리게 되었네요.. 죄송합니다 ㅠㅠㅠ현재까지 배웠던 걸 요약을 하자면.. 26일차까지는 Swift 문법과 SwiftUI에 대해 배웠었습니다.본 프로젝트를 진행하기전에 2개의 미니프로젝트를 진행한다고 합니다. (강사님마다 다릅니다.) 그래서 3일동안 SwiftUI 미니 프로젝트를 진행했었습니다. 수업 스케쥴에..
내일배움캠프 부트캠프와 테킷 iOS 스쿨과 고민 정말 많이 했는데요. 태킷 iOS스쿨을 선택한 이유는 2가지 입니다. 1. 전기수와 커리큘럼이 많이 달라졌다. 2. UIKit + SwiftUI 를 배울 수 있다. 전기수에서는 SwiftUI만 집중적으로 해서 이번기수도 그랬다면 선택을 안했겠지만 UIKit이랑 동시에 배울 수 있어서 장점이라 생각했고, 최근 채용공고를 보면 눈에 띄게 SwiftUI 기술을 요구하는 게 많아보여 선택한 계기가 되었습니다. 내일배움캠프 부트캠프와 커리큘럼을 비교했을 때, 알고리즘 or CS적인 부분이 많이 부족하다고 생각됩니다. (태킷 앱스쿨 부트캠프 강의를 듣기 시작한지 얼마안돼서 제가 그렇게 느꼈을 수도 있습니다.) 결론은 "내일배움캠프" 와 "태킷 iOS 앱스쿨" 중에 고..
0. 사용자의 PC 환경 - Mac mini M2 16GB - macOS Sonoma 14.2.1 1. 원인 - 설치를 해서 brew 커맨드가 먹히는 지 실험을 해보았지만 'zsh: command not found: brew' brew 커맨드를 찾을 수 없다고 나온다. - 아마 PATH 경로를 못찾아서 그런 경우 인 것 같다. 2. 해결방안 - 필자는 이렇게 해결했다. 1. 먼저 'vi ~/.zshrc' 를 입력하고 Enter 키를 누른다. 2. 밑에 코드를 입력 후 ESC 키를 누르고 ':wq'를 입력해 Enter 키를 누른다. export PATH=/opt/homebrew/bin:$PATH 3. 그림에서 보는 거와 같이 밑에 코드를 입력한다. eval $(/opt/homebrew/bin/brew sh..
0. OS버전과 사용했던 툴 버전 - MAC OS Big Sur 11.3, M1 맥북프로 - Intellij 21.1.1 1. 프로젝트 개요 - 개발 기간: 2021.03.10 ~ 2021.03.17 - 개발 인원: 총 4명 - 개발 역할: 회원에 필요한 기능 구현 - 개발 기술: Java, OracleDB, ERDCloud - 형상관리: GitHub 2. 데이터베이스 모델링 3. 화면 구성 01. 회원등록 및 조회 - 메인메뉴에서 회원관리 메뉴에 들어간 다음 회원의 정보를 등록한다. 등록할 회원의 전화번호, 이름을 입력받아 데이터베이스에 저장하고 "회원정보 등록에 성공했습니다" 라고 콘솔창에 띄워준다. - 그리고 등록한 회원의 정보를 조회하면 다음과 같이 전에 등록했던 정보가 뜬다. 02. 회원수정 -..
0. OS버전과 사용했던 툴 버전 및 사용 api 정리 - MAC OS Big Sur 11.3, M1 맥북프로 - Intellij 21.1.1 - 네이버 로그인 API - 아임포트 API - 다음 도로명 주소 API 1. 프로젝트 개요 - 개발 기간: 2021.04.10 ~ 2021.04.26 - 개발 인원: 총 5명 - 개발 역할: 결제(아임포트API 이용), 관리자페이지(REST API) 구현, 도로명 주소 API 기능 구현 - 개발 기술: HTML5, CSS, Javascript, JSP, Servlet, AJAX, OracleDB - 형상관리: GitHub, Slack 2. 데이터베이스 모델링 - 데이터베이스를 이런식으로 모델링 했지만 결제 쪽을 구현한 결과 결제내역을 굳이 테이블로 안만들어도 된..
1. 사용자의 버전 - MacBook Pro M1 - mac OS 11.2.3 - Intellij 2021.1 2. 에러가 난 이유 - 톰캣을 실행하는데 새로운 프로젝트를 만들때마다 저런 java.net.BindException 에러가 떴다. 해결방법을 모색하던 중 하나의 블로그 주소를 참조할 수 있었다. - 즉, 이런 예외가 난 이유는 한번에 하나의 애플리케이션에서만 포트를 점유할 수 있는데 다른 프로세스에서 이미 가져온 포트를 사용하려 하거나 Tomcat 서버를 제대로 중지안했을 때 뜨는 에러라고 한다. 3. 에러 해결 방법 - 이 오류를 해결하려면 해당 포트를 사용하는 서비스를 종료하거나 다른 포트에서 실행되도록 웹 서버를 변경한다. lsof -t -i :8080 - 이 명령어를 입력하면 거기에 대..
1. 객체 생성 및 삭제 - HttpServletRequest는 클라이언트가 서버에 보내는 요청정보를 처리하는 객체 - HttpServletResponse는 서버가 클라이언트로 보내는 응답 정보를 처리하는 객체 클라이언트가 웹 브라우저에서 서비스를 요청한다. 이때 HTTP 프로토콜 기반으로 요청정보가 만들어져 웹서버에 전달된다. 웹서버는 클라이언트로부터 전달받은 요청정보의 URI를 살펴보고, 서블릿이라면 서블릿 컨테이너에 처리를 넘긴다. 서블릿 컨테이너는 요청받은 서블릿 클래스 파일을 찾아 실행한다. 실행할 때 첫 순서는 최초의 요청인지 파악한다. 최초의 요청이라면 메모리에 로딩 후 객체를 생성하고 init() 메서드를 호출한다. init() 메소드 실행이 끝난 뒤 최초의 요청이든지 그렇지 않든지 서블릿..
서블릿 클래스 간의 관계 - 모든 서블릿은 반드시 HttpServlet를 상속받아야 한다. HttpServlet를 상속받지 않는 클래스는 서블릿이라 할 수 없고, 클라이언트가 실행을 요청하여도 실행되지 않는다. Servlet 인터페이스 - Servlet은 서블릿 프로그램을 개발할 때 반드시 구현해야 하는 메소드를 선언하고 있는 인터페이스이다. Generic Servlet 클래스 - Servlet 인터페이스를 상속하여 클라이언트-서버 환경에서 서버단의 애플리케이션으로서 필요한 기능을 구현한 추상 클래스이다. HttpServlet 클래스 - GenericServlet 클래스를 상속하여 service() 메소드를 재정의함으로써 HTTP 프로토콜 기반으로 브라우저로부터 요청을 전달받아 처리하도록 하는 클래스이다..
0. 컴퓨터 버전과 프로그램 버전들 - Intellij 2020. 3 - Mac OS Big Sur 11.2.3 - MacBookPro M1 - TomCat 9.0.44 - Jstl 1.2 1. Jstl 라이브러리 설치하기 - https://jakarta.apache.org/ 사이트에 들어가 Taglibs 메뉴를 클릭한다. - Taglibs 메뉴를 클릭하고 들어오게 되면 이 화면이 보이게 되는데 빨간색 테두리에 있는 글씨를 클릭해 다음화면으로 넘어간다. - 들어오게 되면 메인화면에 저렇게 다운로드 메뉴가 있을 것이다. 글쓴이는 2번째 메뉴에 있는 JSTL 1.1 버전으로 다운받았다. - 다운로드 메뉴를 클릭하고 들어오면 메인 상단에 3개의 메뉴가 있다. binaries/ 폴더를 클릭하자. - Last m..
RESTFUL 기반 웹 서비스 - SOAP 기반 웹 서비스의 문제점인 오버헤드발생, 메시지의 인코딩/디코딩의 어려움을 보완할 수 있는 REST(Representational State Transfer)기반의 웹 서비스로서, HTTP의 기본 기능만으로 원격 정보에 접근할 수 있다. - 상호 연동을 위한 서비스를 등록하기 위한 저장소가 필요하지 않으며, 단순히 서버와 클라이언트로만 분리되어 있다. 따라서 리소스 접근을 위해 단순 URI로 표현하며, HTTP의 요청방식인 GET, POST, PUT, DELETE만으로 접근 할 수 있다. 컨테이너 - 서블릿과 JSP와 같은 웹서버 애플리케이션들은 동적 콘텐츠를 생성하는 웹 컴포넌트이다. 이러한 컴포넌트를 저장하는 저장소 역할, 메모리 로딩, 객체 생성 및 초기화..