본문 바로가기

분류 전체보기

(107)
[MySQL] Insert 후 PK값 얻어오기 (MyBatis 사용) 임시로 만든 City라는 테이블을 살펴보겠습니다. CITY_ID 가 PK 이면서 AI(auto increment)로 사용하는 입장에서는 다음 id를 쉽게 유추할 수 없습니다. 이 PK 값을 바로 가져와서 insert에 활용하는 등 여러가지 상황이 있을 수 있으니 얻어와보도록 하겠습니다. 이번 예제에서는 MyBatis의 SelectKey를 사용해서 쿼리를 작성합니다. 쿼리 /*keyProperty는 결과값을 넣을 model의 변수명*/ /*order(BEFORE, AFTER)를 통해 Insert 쿼리를 실행 후 가져올지 그 전에 가져올지 정할 수 있다*/ SELECT LAST_INSERT_ID() INSERT INTO USER_INFO ( CITY , COUNTRY_ID , LAST_UPDATE ) VAL..
[Flutter] naver_map_plugin 사용기 Flutter를 사용한 토이 프로젝트를 진행중 네이버 지도를 사용해보고 싶었는데 마침 플러그인이 있어서 소개겸 사용한 방법을 포스팅합니다. 플러그인 pub.dev : pub.dev/packages/naver_map_plugin 1. 사용방법 1. 네이버 클라우드 플랫폼에 가입하고 앱 등록 클라우드 플랫폼 : www.ncloud.com NAVER CLOUD PLATFORM cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification www.ncloud.com 가입 후 Console 메뉴로 들어갑니다. 콘솔 메뉴에서 application을 등록합니다. 어플리케..
[프로그래머스] 방문 길이 (Java) 카테고리 배열 나만의 카테고리 로직 짜기 문제 링크 programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 요점 배열 활용 길은 양쪽에서 지나가는 경우를 모두 확인해야한다 참고 지식 String.length() - Java 풀이 (Java) class Solution { public boolean[][][][] visitedPoint = new boolean[11][11][11][11]; public int[] moveX = {-1, 1, 0, 0}; public int[] moveY = {0, 0, 1, -1}; public int solution(String dirs) { int answer = 0; int..
TDD와 BDD 이프 카카오에서 Session 중 TDD, BDD 관련된 세션의 내용 중 TDD, BDD 내용을 정리했습니다. TDD 와 BDD TDD란 (Test-Driven Development) 테스트 주도로 개발을 진행하는 개발 방식 테스트를 작성하고 테스트를 하고 실패한 코드들을 수정한 후 다시 테스트하는것을 반복하여 진행합니다. TDD의 장점 Testable한 코드를 유지할 수 있다 Testable한 코드 : 테스트하기 쉽게 만들어진 코드, 테스트를 쉽게 하기 위해서는 테스트를 할 모듈의 역할이 명확해야하는데 이를 위해서는 모듈의 역할을 단순화해야합니다. Testable한 코드는 모듈의 크기를 줄일 수 있도록 유도하고 모듈또는 계층간 Coupling도 적게 만들어 유지보수와 확장이 가능하게 합니다. TDD의 ..
[Flutter] SafeArea SafeArea는 위의 그림과 같이 StatusBar 혹은 TabView에서 TabLayout 영역을 피해서 위젯을 표시하고 싶을 때 사용합니다. 각 영역에 padding을 넣는 방식으로 작동하는데 좌우상하 부분 옵션으로 넣을 수 있습니다. 각 기기에서 앱 레이아웃을 제작할 때 기기마다 다르게 표시되는 경우에도 SafeArea로 감싸서 제작하면 해결되는 경우가 많습니다. SafeArea({ Key key, this.left = true, this.top = true, this.right = true, this.bottom = true, this.minimum = EdgeInsets.zero, this.maintainBottomViewPadding = false, @required this.child, }..
[프로그래머스] 거스름돈 (C++, Java) 카테고리 동적계획법 (dynamic programming) 나만의 카테고리 동적계획법, 기억해둘만한 문제 문제 링크 programmers.co.kr/learn/courses/30/lessons/12907 코딩테스트 연습 - 거스름돈 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5 programmers.co.kr 요점 DFS와 헷갈릴 수 있지만 잘 기억해놓고 DP로 풀자 표를 그려서 참고 지식 Arrays.sort() - Java 풀이 (C++) #include #include #include using namespace std; int solution(in..
[Flutter] http 이용해서 이미지 파일 post로 보내기 개발 환경 - Flutter - Spring boot - kotlin 방법 1. Dependency 추가 //pubspec.yaml dependencies : http: ^0.12.1 //버전은 아무거나 2. 이미지 저장 코드 //밑에 코드를 참고하셔서 더 좋은 코드를 짜서 사용해주세요 //imageFileList에 보내고 싶은 이미지 파일들을 넣어주세요 List imageFileList = List(); var request = new http.MultipartRequest("POST", Uri.parse(imageApiUrl)); request.fields['parameter'] = '보내고 싶은 파라미터'; request.fields['parameter2'] = '보내고 싶은 파라미터2'; for ..
[Kafka] Kafka 옵션 정리 필수 옵션 옵션 설명 broker.id 브로커 ID, 클러스터 내에 유일한 값이어야 함 zookeeper.connect 주키퍼 접속정보 listeners 리스너 목록 (프로토콜://호스트명:포트) 토픽 옵션 옵션 설명 기본값 추천값 auto.create.topics.enable 토픽 자동 생성여부 true false delete.topic.enable 토픽 삭제 가능 여부 true true num.partitions 토픽당 기본 파티션 수 1 1 성능 옵션 옵션 설명 기본값 추천값 background.threads 백그라운드 처리에 사용할 스레드 수 10 compression.type 압축 유형('gzip', 'snappy', 'lz4', 'zstd') producer (producer가 설정한 압축 코..
[프로그래머스] 불량 사용자 (Java) 카테고리 DFS 나만의 카테고리 DFS, SET 문제 링크 programmers.co.kr/learn/courses/30/lessons/64064 요점 Set 사용 방법과 특징에 대해 알아야 좋다 DFS 방식에 대해 알아야한다 꼭 정규식을 사용하지 않아도 되지만 유용하다 참고 지식 Set 메서드 정규식 풀이 (Java) import java.util.regex.Pattern; import java.util.*; class Solution { private int bannedIdSize; private HashSet result = new HashSet(); public int solution(String[] user_id, String[] banned_id) { bannedIdSize = banned_i..
Java 1.8 Stream 정리 Java Stream 자바 1.8 버전에서는 Stream 기능이 추가 되었습니다. 기존에는 for, foreach를 사용하여 컬렉션과 배열을 반복하며 인자들을 가공해왔을텐데 이 부분을 Stream으로 대체할 수 있게 되었습니다. 이로 인해 코드의 양은 줄어들고 가독성은 좋아지게 되었습니다. 장점으로는 코드량이 줄어든다는 점과 가독성 외에도 멀티 쓰레딩(multi threading)이 가능하다는 것입니다. 하지만 단점도 있겠죠 많은 양의 데이터를 처리하는데 foreach를 대체하려고 Stream을 사용하면 속도면에서 조금 느리게 됩니다. 따라서 많은 양을 처리하고 효율성이 중요한 부분이라면 foreach를 사용하는 편이 낫습니다. (참고. madplay.github.io/post/mistakes-when-..