개요 아래 요구사항에 맞게 1:N M:1로 구성한 CourseUser 오브젝트입니다. JPA에서 @ManyToMany가 있지만 실제 상황에서는 쓰기 어렵기 때문에 1:N M:1로 구현 합니다. 테이블은 Course, User, CourseUser 총 3개가 만들어집니다. 요구사항 코스(Course)에는 학생이 들어갑니다. 한명의 학생은 여러개의 코스를 수강할 수 있습니다. 한개의 코스에는 여러명의 수강생이 Assign될 수 있습니다. Course CourseUserEntity와 관계를 맺습니다. @Entity public class CourseEntity extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private ..
별찍기에서 가장 어려운 난이도인 다이아몬드(마름모) 출력하는 로직 입니다. 핵심로직1 공백개수 n개만큼 출력, * 개수 m개만큼 출력 하기 여기에서 맨 앞에 있는 파라메터 i는 디버깅용입니다. private String getCharLine(int i, int spaceCnt, int charCnt) { return (mode ? i : "") + " ".repeat(spaceCnt) + "*".repeat(charCnt); } 핵심로직2 i n / 2 인 경우 System.out.println(printDiamond.getCharLine(i, i - (n/2), 2 * (n - i) - 1)); https://github.com/Areum120/java_study/blob/main/Ch4/src/pra..
Java에서 각종 정렬을 지원하는 Collection은 정렬 순서를 커스터마이징 할 수 있습니다. 기본값은 오름차순 정렬입니다. PriorityQueue는 우선순위큐로써 큐에 특정 값을 넣으면 지정한 로직에 따라 정렬을 해줍니다. 기본값은 꺼낼 때(.poll) 작은 숫자부터 나오게 됩니다. public static void main(String[] args) { Queue pq = new PriorityQueue(); pq.add(10); pq.add(9); pq.add(3); pq.add(12); while(!pq.isEmpty()) System.out.println(pq.poll()); } 결과 3 9 10 12 위 처럼 생략하면 기본값으로 들어갑니다. 기본값은 앞에 숫자에서 뒤에 숫자를 빼서 음수가..
아래와 같이 provider.environment:에 넣을 수 있습니다. provider: name: aws runtime: python3.8 lambdaHashingVersion: 20201221 stage: dev region: ap-northeast-2 environment: TELEGRAM_ACCESS_TOKEN: 'AAE7h61H' MYSQL_HOST: '' MYSQL_USERNAME: '' MYSQL_PASSWORD: '1234' 사용방법은 os.getenv()를 사용해서 값을 넣을 수 있습니다. import json, requests, os from urllib import parse def call_telegram(event:dict, context): r = '' status_code =..
드디어(22.1.19) 제가 쓴 알고리즘책이 발매 되었습니다. (Yes24구매 링크 http://www.yes24.com/Product/Goods/106373453) 2018년 저는 이직을 준비하면서 '코딩테스트'라는게 있다는 것을 처음 알게 되었습니다. 그때가 5년차 개발자였는데요 그 때는 코딩테스트에 대해 잘 몰랐습니다. 모를수도 있지요 누구나 태어날때부터 알고 태어나지는 않지 않습니까. 코딩테스트는 앱을 만든다던지 어플리케이션을 개발하는 것도 있었지만 대체로 알고리즘 문제를 푸는 테스트였습니다. 그런데 저는 알고리즘 공부를 많이 해본적은 없습니다. 기껏해야 정보처리기사 준비 할때 간단한 정렬이나 탐색 알고리즘을 구현해본 정도 였습니다. 그런데 코딩테스트 문제를 받아보니 2단계 문제부터는 어렵고 3단..
파일 직접 읽기 .readString() ./(현재 디렉토리)의 파일 목록 출력 @Test void fileList(){ File dir = new File("./"); File files[] = dir.listFiles(); for (File file : files) { System.out.println(file); } } 결과 ./gradle ./gradlew ./build.gradle ./.gradle ./build ./gradlew.bat ./settings.gradle ./.idea ./src 파일 생성하기 ./ 의 파일 목록을 보았으니 ./에 numbers.txt 파일을 생성 해보겠습니다. @Test void createANewFile() throws IOException { File file..
props로 넘어온 데이터 사용 가능한 시점 앞에서 loop로 값을 넘긴 경우 created()에서 사용 가능합니다. fetch()는 created()에서 fetch()를 하고 나서 데이터를 바인딩 하면 updated()가 실행 됩니다. 그러면 컴포넌트가 다시 그려집니다. 그래서 데이터가 없을때는 컴포넌트가 안그려지게 하려면 created()에서 fetch()를 합니다. fetch()를 callback처리 created()에서 method에 있는 function을 call해서 데이터를 처리 하고 싶을 때 callback을 이용합니다. callback함수의 스쿱(scope)은 created() 안쪽이고 fetch()는 methods에 있는 call_api에서 실행되기 때문에 fetch()에서 온 respo..
파이썬에서 함수의 파라메터 앞에 *또는 **이 붙어 있는 경우가 있습니다. 다른 언어에는 잘 없는 형태라서 파이썬을 처음 하시거나 익숙하지 않으신 분들은 이게 뭔가 싶을때가 있습니다. * 파라메터 *는 쉽게 말하면 파라메터로 넘어오는 각 값들을 list형태로 받겠다는 뜻입니다. def make_coffee(*matreials): 이렇게 *로 받아서 for item in matreials: 이렇게 이터레이터가 됩니다. 코드를 보겠습니다. def make_coffee(*matreials): mixed = '' for item in matreials: mixed += item print(mixed) make_coffee('water', 'espresso') 결과 waterespresso 스타벅스에서 커피를 주..
개요 Python개발을 하다보면 venv를 잘 구분해서 써야 할 때가 생깁니다. 예를들면 project는 여러개인데 각 프로젝트 별로 requirements.txt를 구분해서 써야 하는 경우라던지 말이죠. 그래서 venv를 구성하고 지우는 방법을 찾아보았습니다. 저는 Mac을 쓰고 있고 작업 환경은 윈도우라서 두가지를 찾아 보았습니다. Mac venv만들기 python3 -m venv venv source venv/bin/activate 결과 현재 설치된 package목록 보기 pip freeze 현재 설치된 package들을 requirements.txt로 저장하기 pip freeze > requirements.txt requirements.txt에 있는 package설치 하기 pip install -..
- Total
- Today
- Yesterday
- docker container case
- vim
- shellscript
- Linux
- 도커컨테이너
- docker container tissue box
- 2017 티스토리 결산
- 이직
- 개발자
- docker container whale
- 도커티슈박스
- 싱가폴
- docker container
- 도커각티슈박스
- 도커각티슈케이스
- Sh
- 도커티슈케이스
- docker container tissue
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |