Python

1. 몽고db - 스프링 스프링에서 mongodb atlas 연결 1. mongodb atlas 에서 connect my application에서 java와 버전 선택후 url 가져오기 2. mongodb atlas 에서 해당 클러스터 db connection, network connection에서 권한과 ip주소 잘 설정하기 3. 스프링 application.properties 잘 설정 후 나의 경우에는 깃헙 secrets에 잘 업데이트 하고 배포하기 코드 // build.gradle // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mongodb implementation group: 'org...
1. Spring 스프링 info level log 달기 @Slf4j log.info("게시물 이 삭제되었습니다.", post.getTitle()); 저번주 JPA 연관관계 정리 @Column에 name 속성을 따로 지정하지 않으면 그 필드명으로 자동 지정 @JoinColumn 외래키 매핑할 때 사용하는 어노테이션 1:N 관계인 경우 보통 N쪽에 외래키를 두므로 연관관계의 주인이 되며 해당 어노테이션을 붙힌다 연관관계의 주인 = 외래키 관리(등록, 수정, 삭제) 양방향인 경우 주인이 아닌 1쪽에 mappedBy를 사용하여 주인이 아님을 알려준다 // 댓글이 연관관계의 주인 // 게시글에서 댓글 객체를 불러와 사용 가능 @OneToMany(mappedBy = "article") private List co..
언젠가부터 너무 적당히만 공부하는 것 같다. Git 공부, TDD, 코테 문제 등 할게 많은데도 사리면서 하는게 많이 느껴지는데, 좀 반전시키고자 오늘은 코테문제 하나 풀고 마무리하려고한다 ㅎ.. 또 다른 분위기 반전으로 김영한님의 JPA 기본 강의를 구매해서 다음주부터 들을 예정이기 때문에 또 열심히 달리게 되는 계기가 되지 않을까 싶다. 1. Spring 과제에 스케줄러를 구현해보았다 매일 오전 1시에 댓글 갯수가 0개인 게시글을 모두 삭제해주는 로직을 만들어야 했다 먼저 애플리케이션에 @EnableScheduling으로 인식하게 해주고 @EnableScheduling @EnableJpaAuditing @SpringBootApplication public class IntermediateApplica..
1. Spring 코드를 개선하고 재배포할때 계속 8080포트가 이미 사용중이라는 에러가 떠서 git bash에서 제거해준 뒤 다시 배포하는데 성공했다 맨위 id에 해당하는 프로세스 종료했다 ps -ef | grep java kill -9 [process_id] 스프링 MVC의 내부 동작에 대해 좀 더 깊게 알게 되었고, 이는 17일차 TIL에 한꺼번에 작성해놓았다 테스트코드도 연습삼아 짜봤는데, 스프링 데이터 JPA를 사용하면서 단위테스트는 잘 되지 않아서 일단 통합 테스트로 진행해보았다. 서비스 계층의 게시글 등록에 대한 테스트 딱 한개만 진행했고, 단위 테스트로도 할 수 있는지 좀 더 공부해야 할 것 같다 17일차 TIL에 설명했던 것 중 Enum 사용과 ExceptionDto 요소 확장은 오늘 진..
1. JAVA 과제의 요구사항에 맞게 나름대로 필드와 메소드를 구성해서 완성했다 상속을 사용했었는데, 애초에 설계한대로 자식 클래스별로 같은 필드라도 디폴트 값이 달라 각각 새롭게 정의하여 진행했을 때는 상속의 의미가 크지 않은 것으로 결론냈다 중복 필드 매번 재정의 getter/setter 메소드 쓸데없이 중복 changeGas 메소드 쓸데없이 중복 이후에 슈퍼클래스를 추상화하면서 공통 기능에 대한 처리를 해보고, 최종적으로 인스턴스 생성할 때 디폴트 값(요금, 최대 승객 수, 속도)를 입력하게 했을 때 상속의 효과가 가장 큰 것으로 보였다 원래 대략 알고있던 인터페이스와 추상클래스의 용도나 차이에 대해 더 알게 되었다 추상클래스: 미완성 설계도, 다중상속 불가 -> 자식에 공통기능 전파 인터페이스: ..
1. JAVA 오늘은 모든 시간을 spring 과제에 쏟았다 대중교통이라는 부모 클래스를 생성하고, 이를 상속받는 버스와 택시 클래스는 만드는 과제였는데, 필드를 오버라이딩 하는 것과 관련해서 뭔가 잘 풀리지 않는 느낌이었다 과제의 요구사항은 충분히 맞출 수 있을 것 같은데, 바람직하게 코드를 구성해서 완성해가고 있는 것인지에 대한 의문이 든다 나의 판단으로는 객체 생성할 때 사용자가 필드에 해당하는 값들을 지정해서 넣는 형태가 아니고 상당 수의 필드값의 디폴트 값이 자식 클래스끼리 차이가 있다보니, 일단 자식 클래스에서 그냥 새롭게 필드를 정의해서 덮어쓰는 식으로 진행했다 그 과정에서 배운 것: 자식 클래스에서 덮어쓴 필드의 getter setter 메소드는 오버라이딩 해야 원하는 결과가 나온다 부모 ..
1. JAVA 정렬 관련 compareTo 사용 (내 기준을 만들어서 정렬하는 방법) String.charAt(index) 정규표현식 String + int -> String (int가 문자열로 변환) 예) "a" + 1 -> "a1" char + int -> int (char이 해당하는 아스키코드의 숫자형으로 변환) 예) 'a' + 1 -> 98 배열과 문자열 조작 관련해서 조금씩 익숙해져가고 있긴한데, 이게 과연 스프링을 사용하는데 유용할지 의문이다 멘토님이 이번주 과제를 다하면, 더 크게 확장하여 객체지향적으로 개발해보면 언어에 대한 이해가 매우 좋아질 것이라고 조언 주셨다 또한 이후 주특기 주차, 프로젝트 주차가 진행되어도 꾸준하게 알고리즘을 놓지 않고 하루 한 문제 씩이라도 풀어보라고 해주셨다 ..
자바에 처음보단 익숙해져서 불편한 느낌은 덜한데, 그래도 코테용으로는 확실히 아닌 것 같다 출발이 늦으신 분들도 이제 슬슬 맞춰서 같이 갈 수 있을 것 같아 다행이다 아직은 프로그래머스 레벨 1 수준의 문제들이라 무리 없이 소화하고 있다 stream이나 string buffer 같은 것들을 잘 사용해야 할 것 같다 파이썬 DFS 복습 46번 class Solution: def permute(self, nums: List[int]) -> List[List[int]]: result = [] # nums에서 하나 빠져서 prev_nums에 추가 -> 반복, 재귀 -> 순열 def dfs(nums, prev_nums): if not nums: result.append(prev_nums[:]) return for..
1. JAVA 우려하던 대로 파이썬에 너무 익숙해져 있어서 코테 문제 푸는데는 너무 별로인 것 같다 자료형이 너무 세분화 되어있고, 당연히 그에 따른 메소드도 많은데, 기능은 훨씬 적은듯 싶다 그래도 자바에 더 익숙해지는 것에는 도움이 되지 않을까 싶고, 코테는 따로 파이썬으로 공부하려 한다 타의 반으로 달리기반에 들어오신 분들이 두 분 계셔서 좀 얼탔는데, 앞으로 방법을 잘 생각해봐야겠다 내 풀이 코드 설명하는 것을 좀 더 듣는 입장에서 이해가 잘 가도록 하고 싶다 2. IntelliJ 깃헙과 연동하는 방법 다시 한번 복습 share project on github -> 프로젝트 폴더 우클릭 후 깃 선택한 후 commit directory 프로젝트 시작 세팅 복습: JDK 연결 -> src 안에 클래스..
https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 내 풀이: from collections import defaultdict def make_table(str): table = defaultdict(int) for i in range(len(str) - 1): if str[i:i + 2].isalpha(): table[str[i:i + 2].lower()] += 1 return table ..
hjkim0502
'Python' 태그의 글 목록