본문 바로가기

분류 전체보기

(104)
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-..
Java 1.8 method reference (메소드 레퍼런스) Method Referece - 자바 1.8부터 도입된 문법으로 특정 람다 표현식을 축약한 것 - 가독성을 높일 수 있다 간단하게는 람다 표현식을 특수한 상황에서 좀 더 보기 편하게 작성하는 방식이라고 이해할 수 있습니다. //람다식 (args) -> ClassName.staticMethod(args) //메소드 참조 ClassName::staticMethod //람다식 (arg0, rest) -> arg0.instanceMethod(rest) //메소드 참조 ClassName::instanceMethod //람다식 (args) -> expr.instanceMethod(args) //메소드 참조 expr::instanceMethod //모던자바인액션 참조 예시를 들어보자면 저는 주로 stream과 함께 ..
Java 1.8 Lambda Expression (람다 표현식) Lambda Expression (람다 표현식) - 자바 1.8 부터 도입된 함수 지향적 표현 방식이다. - 간단하게 식별자없이 실행 가능한 함수표현이다. - 병렬처리, 이벤트 지향적 프로그래밍에 적합하다. 사용방법 (매개변수, ...) -> { 실행문 ... } //람다식 x interface Phone{ String getName(String series, String version); } class Main { public void mainExample() { Person person = new Person(); person.buyPhone(new Phone() { public String getName(String series, String version) { return series + vers..
Java 각 버전의 특징들 (~JAVA21) Java 1.8이 나온지는 벌써 6년정도 되었습니다. 그동안 java 1.8을 꾸준히 사용해오고 jdk 11뿐만 아니라 최근에는 jdk 17까지 나온 상황입니다. 이 시점에서 다시 한번 정리하면 좋을 것 같아서 Java 1.8 부터 정리해보려고 합니다. 물론 다양한 특징들이 있겠지만 특징적인 일부만 나열하도록 하겠습니다 Java 1.8 특징 (2014.03 release) Lambda Expression (람다표현식) Method Reference (메소드 참조) Stream (스트림) Default Method Optional Joda Time Java 9 특징 (2017.09 release) Jingsaw 기반 런타임 모듈화 Jshell Private Interface Method Immutable ..