목록분류 전체보기 (142)
Developer_Neo
1. 비즈니스 요구사항을 정리 2. 회원 도메인 객체를 저장하고 불러올 수 있는 리포지토리 객체인 저장소 객체를 만들자 3. 회원 리포지토리가 정상 동작하는지 테스트 케이스 작성 4. 실제 비즈니스 로직에 있는 회원 서비스를 만들자 5. 위의 서비스가 정상 동작하는지 테스트를 만들자 비즈니스 요구사항 데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 ex) 중복 아이디 검색, 로그인... 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 데이터베이스에 저장하고 관리됨 우선 DB를 사용하는 것이 아닌 메모리로써 만들어보자. 도메인 리포지토리 위의 리..
프로젝트 폴더 안의 static폴더와 templates 폴더 프로젝트를 생성하고, 위의 폴더로 들어가보면 resources/static과 resources/templates에 해당하는 폴더가 각각 존재하게 된다 static폴더에는 정적인 콘텐츠가 들어간다. 즉, 정적인 콘텐츠로 HTML자체를 브라우저에게 준다 templates에는 View로써 동적으로? Controller에 의해 불려지는 것들이 들어가게 된다. 즉, 동적인 컨텐츠로 우리가 코드로 적은 Data값들이 가공되어 들어간다음 이 가공된 HTML을 브라우저에게 준다.(SSR인 서버 사이드 랜더링이라고 할 수 있다.) 눈으로 보이는 차이점은 URI를 입력할 때 보인다. templates에 있는 것은 URI 입력 시 http://localhost:8..
먼저 애플리케이션이 무엇인지 알아보자 Application이란? Application software의 준말으로 운영체제를 제외한 나머지 소프트웨어/프로그램을 말한다. 즉, 응용프로그램이라는 의미를 가진다. 예를 들어 바탕화면에 보이는 바로가기들을 다 응용프로그램이라고 부르며, 애플리케이션이라고 부를 수 있다. 하지만, 일반적으로 앱이라는 것은 스마트폰 내에서 응용되어 사용되는 응용프로그램을 말합니다. 예를 들어 카카오톡, 인스타그램과 같은 것 입니다. 애플리케이션은 여러가지로 나뉠 수 있습니다. 네이티브 애플리케이션, 웹 애플리케이션, 하이브리드 앱으로 나뉘어 집니다. 네이티브 App Apple의 Ios , Google의 Android와 같은 OS에 종속되는 것입니다. 앱 개발을 진행할 때 IOS개발자..
https://start.spring.io/ 위의 링크가 스프링 부트 스타터 사이트이다. 이것은 스프링 부트 기반으로 스프링 관련 프로젝트를 만들어주는 사이트이다. Maven과 Gradle - 둘다 대표적인 빌드 관리 툴이다. 빌드 관리 툴이란? - 프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드해주는 도구 - 빌드 자동화를 수행해 실행가능한 프로그램으로 바꿔주는 도구 즉, 코드를 컴파일해서 binary code로 만들고, 패키징하고 코드를 테스트하여 실행가능한 프로그램이 나오기 까지의 과정(빌드)을 자동화하는 것을 수행하여 실행가능한 프로그램으로 바꾸어 준다는 것이다. 옛날에 라이브러리를 사용하기 위해서는 수동으로 다운받아서 해야했다고 한다. 빌드 관리 도구를 ..
입력받기 1. sys.stdin.readline() -> 이게 더 좋다. import sys data = sys.stdin.readline() #----------------------------------------------------------- data_list = list(map(int, sys.stdin.readline().split())) # 여러개 공백을 기준으로 입력 받기 #------------------------------------------------------------ data_list = list(map(int, sys.stdin.readline().rstrip())) #공백없이 입력받아 list만들기 ''' rstrip이 쓰이는 이유는 readline()은 한줄씩 읽어오는..
Stack(스택) 중요 개념 : LIFO구조로 가장 나중에 들어간 데이터를 가장 먼저 빼내는 구조. 중요 연산 : pop(), push() 주요 사용 사례 : 웹 브라우저 방문기록(뒤로가기, 앞으로 가기), 실행 취소, 역순 문자열 만들기, 후위 표기법 계산, 재귀알고리즘 장/단점: 데이터저장, 읽기 속도가 빠르다/ 데이터 개수에 영향을 받는다.(스택의 공간) 구현 : 파이썬 – list / 자바 – Stack클래스 or List들 or 배열 파이썬의 경우 재귀함수는 1000번까지만 호출가능 웹 브라우저 방문기록(뒤로가기, 앞으로 가기) prev, next 스택을 가짐 처음 크롬화면으로 들어갔다. 네이버에 들어갔다. 이때 prev에 크롬 첫 화면이 들어간다. 네이버 뉴스에 들어갔다. 이때 prev에 네이..
fork를 해와서 로컬 저장소로 clone을 한후 인텔리제이에서 run을 돌려보았으나 unmappable character (0xEC) for encoding x-windows-949 ~~~~~~~~~~~~~~~~~~ unmappable character (0xEC) for encoding x-windows-949 ~~~~~~~~~~~~~~~~~~ unmappable character (0xEC) for encoding x-windows-949 ~~~~~~~~~~~~~~~~~ 와 같은 오류들이 뜨게 되었다. 접근법 -> encoding오류라서 구글링을 통해 알아보았다 해결방안 인텔리제이의 메뉴 중 Help -> Edit Custom VM Options 로 들어간다. -Dfile.encoding=UTF-8..
오늘 나의 학습 목표는 무엇인가요? - 스레드가 무엇인지 설명하고 상태를 이해해 동기화와 실행, 제어를 해보자 - JVM의 내부 구조를 살펴보자 Thread(쓰레드) [운영체제적 측면] Thread가 나오게 된 배경 1. process를 많이 사용하면 할수록 시스템이 무거워진다 2. process 사용 시 시스템상 성능저하가 생길 수 있다 2번의 원인 1. process 생성시간이 오래걸린다. why? process는 thread가 나오기 전에 code data heap stack영역에 해당하는 것 이외의 것들인 많은 용량을 차지하는 것들을 가지고 있어야했다. 즉, 똑같은 프로그램을 돌리게 되는 경우에도 code를 똑같이 복사해서 각각 가지고 있어야하기 때문이다. 2. Context Switching O..