디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

파이썬, 자바, 코틀린 같은 기능 하는 좀 긴 코드 일이 비교앱에서 작성

발명도둑잡기(118.216) 2025.07.06 19:23:21
조회 108 추천 0 댓글 0

좋습니다!
이번에는 Python, Java, Kotlin 세 언어에서 같은 기능을 구현한 긴 코드 예제를 비교해볼게요.

✅ 예제 기능 (실무급 기능)

학생 목록 JSON 파일을 불러옴
평균 점수 계산
60점 이상인 학생만 이름/점수 출력
합격자 목록을 새 JSON 파일로 저장

1. Python (표준 라이브러리 사용)

import json # JSON 불러오기 with open('students.json', 'r') as f: students = json.load(f) # 평균 계산 total = sum(s['score'] for s in students) avg = total / len(students) print(f"Average: {avg:.2f}") # 합격자 추출 및 출력 passed = [s for s in students if s['score'] >= 60] for s in sorted(passed, key=lambda x: x['score'], reverse=True): print(f"{s['name']}: {s['score']}") # JSON 저장 with open('passed.json', 'w') as f: json.dump(passed, f, indent=2)

20줄 미만
✅ 가장 간결하고 빠르게 작성 가능
✅ json, with, list comprehension 등 파이썬 고수준 문법의 힘

2. Java ( + Stream API)

import java.io.*; import java.nio.file.*; import java.util.*; import com.google.gson.*; import com.google.gson.reflect.TypeToken; class Student { String name; int score; } public class Main { public static void main(String[] args) throws IOException { Gson gson = new Gson(); Reader reader = Files.newBufferedReader(Paths.get("students.json")); List<Student> students = gson.fromJson(reader, new TypeToken<List<Student>>(){}.getType()); reader.close(); double avg = students.stream().mapToInt(s -> s.score).average().orElse(0); System.out.printf("Average: %.2f\n", avg); List<Student> passed = students.stream() .filter(s -> s.score >= 60) .sorted((a, b) -> b.score - a.score) .toList(); for (Student s : passed) System.out.println(s.name + ": " + s.score); Writer writer = Files.newBufferedWriter(Paths.get("passed.json")); gson.toJson(passed, writer); writer.close(); } }

30~35줄 이상 + import 필요
❗ 클래스 정의 + 파일 처리 + JSON 파싱 = 매우 장황
❗ 외부 라이브러리 (Gson 등) 필요

3. Kotlin (자바보다 간결한 JVM 언어)

import com.google.gson.Gson import com.google.gson.reflect.TypeToken import java.io.File data class Student(val name: String, val score: Int) fun main() { val gson = Gson() val json = File("students.json").readText() val type = : TypeToken<List<Student>>() {}.type val students: List<Student> = gson.fromJson(json, type) val avg = students.map { it.score }.average() println("Average: %.2f".format(avg)) val passed = students.filter { it.score >= 60 }.sortedByDescending { it.score } passed.forEach { println("${it.name}: ${it.score}") } File("passed.json").writeText(gson.toJson(passed)) }

20줄 정도
✅ Java보다 훨씬 간결
✅ 함수형 스타일 + 타입추론 + data class의 힘
❗ Gson 등은 여전히 필요

요약 비교

항목PythonJavaKotlin총 줄 수약 15~18줄약 35줄약 20줄JSON 파싱표준 jsonGson (외부)Gson (외부)데이터 구조dictclassdata class컬렉션 처리list comprehensionStream APIcollection 함수 (map, filter)가독성⭐ 최고❌ 장황⭐ 좋음실행 환경CPython만 있으면 됨JVM + 의존JVM + 의존

✅ 결론

기준추천 언어가장 짧은 코드Python가독성과 실용성 균형Kotlin정석적인 산업 스타일Java (but 길다)

참고

입력 JSON 예시 (students.json):

[ {"name": "Alice", "score": 80}, {"name": "Bob", "score": 55}, {"name": "Charlie", "score": 90} ]

원하시면 입력 GUI 추가, SQLite 저장, REST API로 바꾸기, 비동기 버전 등으로 비교 확장도 가능합니다.
다음 단계로 어떤 걸 보고 싶으세요?


"도둑은 집을 떠나며 주인을 욕한다" - 러시아 속담
송대관-해뜰날
https://youtu.be/DUsVXmywSCk

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 며느리, 사위되면 시댁, 처가에 잘할 것 같은 스타 운영자 25/10/13 - -
AD 프로게이머가 될테야!! 운영자 25/10/01 - -
공지 프로그래밍 갤러리 이용 안내 [96] 운영자 20.09.28 47907 65
2896140 애플이 저지른 '돌이킬 수 없는 실수' (애플 편) 발명도둑잡기(118.216) 07:09 5 0
2896139 그런데 프갤에서 인정받으면 현실에서 뭐가 달라지냐? 프갤러(124.48) 06:59 29 2
2896137 아침 발명도둑잡기(118.216) 06:20 10 0
2896136 강남 인기장소사이트 인기사이트(118.235) 04:20 23 0
2896135 동네 어느나무에 핀 버섯 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 02:41 19 0
2896134 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 02:39 27 0
2896133 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 02:39 34 0
2896132 전자공학과 자퇴하고 국비로 IT업계 취업 노리는거 어떰..? 프갤러(121.144) 02:33 44 0
2896131 복분자주 마셔본사람 ㅇㅅㅇ?? 술집에서 얼마에파냐 ㅇㅇ(223.38) 02:13 22 0
2896130 한때 사직동 하숙할 때 주인할매가 그러던데 프갤러(49.165) 02:09 27 0
2896123 홈랩은 왜 하는거임?? 타이밍뒷.통수한방(1.213) 01:10 26 0
2896122 컴공 전공지식이라고 배우는것들은 다 저수준인데 [1] ㅆㅇㅆ(124.216) 00:47 65 0
2896121 전공지식이 도움되려면 비전공 병신들이 엄두도 못내는데 가야 [4] 프갤러(110.8) 00:41 63 1
2896119 결국 오늘도 차단당했구나 ㅇㅇ(124.48) 00:23 38 2
2896117 학생때 배운거 써본적 거의 없는듯 [4] 루도그담당(58.239) 00:09 77 0
2896114 갤 분위기 초상났네 [6] 루도그담당(58.239) 00:02 90 0
2896113 진짜 진심으로 안타까운데, 저새끼 계속 내 글마다 댓글달려서 알람울리는게 [3] ㅆㅇㅆ(124.216) 10.13 71 0
2896112 취직했다는 놈이 당장 뭐 말하는 개념마다 빈틈 털려서 딴새끼한테 [1] ㅆㅇㅆ(124.216) 10.13 63 0
2896110 여기서 남 욕한다고 니 인생이 바뀌는게 전혀 아님 124.48아 ㅇㅇ [1] ㅆㅇㅆ(124.216) 10.13 43 0
2896108 진심 이해가 안가는게 그거임. 내가 저새끼 나이때는 대학원가볼라고 [1] ㅆㅇㅆ(124.216) 10.13 53 0
2896106 자존감이 단단한 사람일수록 자길 내세우지 않는거임 [2] ㅇㅇ(218.149) 10.13 59 0
2896104 쟤 이해가 안 감. 보통 자기가 백수면 노력하지 않나? [3] ㅆㅇㅆ(124.216) 10.13 43 0
2896103 염병하지말고 현실에서 착실하게 살아라.. 좆병신새끼야 [1] ㅇㅇ(218.149) 10.13 35 0
2896102 저새끼는 자존감 채우는 방식 자체가 미숙함 [1] ㅇㅇ(218.149) 10.13 41 1
2896100 앱 웹 개발자는 개인정보 [3] ㅇㅇ(211.187) 10.13 47 0
2896099 '최신' 리액트 쓴다는놈이 Next.js 안써봤다 [1] ㅆㅇㅆ(124.216) 10.13 49 0
2896098 해결법을 다오. [3] 루도그담당(58.239) 10.13 42 0
2896097 웹상에서 자존감 채우려고 하니까 그따위 허영부리며 사는거야 [2] ㅇㅇ(218.149) 10.13 35 0
2896095 딱봐도 실력없어서 과제대행으로 용돈벌이나 하는 사회 최하층민새끼가 [5] ㅇㅇ(218.149) 10.13 39 0
2896093 개인사업자면 홈텍스를 인증해라.. [2] ㅇㅇ(218.149) 10.13 54 0
2896089 진짜 신기하지 않냐? 124.48 점마는 지가 말할수록 백수라는게 드러남 [1] ㅆㅇㅆ(124.216) 10.13 40 0
2896087 124.48 쟤는 거짓말이 너무 티가남. 그게 문제임 [3] ㅆㅇㅆ(124.216) 10.13 52 0
2896086 암만봐도 타임라인 진짜 씹쓰레기 같네 [4] 루도그담당(58.239) 10.13 61 0
2896082 전공에서 배운거 실무에서 얼마나 써먹는중? [6] ㅇㅇ갤로그로 이동합니다. 10.13 71 0
2896081 네트워크는 ㅈㅈ쳤다 ㅈㄴ노잼에어렵네 프갤러(14.43) 10.13 25 0
2896080 너네 아직도 그러고 사냐? 프갤러(59.16) 10.13 27 0
2896078 혹시 치킨한마리 나눔해주실분 계십니까. ㅇㅇ(223.39) 10.13 16 0
2896077 마이크로소프트10년동안 발전보다버그투성이가됬누 타이밍뒷통수한방(1.213) 10.13 16 0
2896075 나 오랜마네 바카라 사이트 들어가서 3번 찍었는데 다맞음 ㅇㅅㅇ ㅇㅇ(223.39) 10.13 13 0
2896074 님들아 백준 알고리즘 풀때 유튜브 영상틀어놓거나 노래들으면서 풀음? 프갤러(123.212) 10.13 20 0
2896073 북괴 김정은 한국에 홍수 일으켜 인명살상 노렸나 충격 ♥덩냥이♥갤로그로 이동합니다. 10.13 20 0
2896071 한우물 진득하고 꾸준하게 팔 수 있는거도 재능인거 같다 [6] chironpractor갤로그로 이동합니다. 10.13 50 0
2896070 야애니 ♥덩냥이♥갤로그로 이동합니다. 10.13 28 0
2896069 [단독] 서울시, 첫 민간인 ‘핵 벙커’ 만든다 발명도둑잡기(118.216) 10.13 22 0
2896068 신문고로 불법주차 신고하는 놈들 중 정상인은 없다는게 팩트임 [11] 야옹아저씨갤로그로 이동합니다. 10.13 52 5
2896067 엔지) 프갤러(211.243) 10.13 24 0
2896065 ‘근무시간 노래방’ 판사, “2차는 애기 보러가자”는 변호사에 “좋죠 형 발명도둑잡기(118.216) 10.13 17 0
2896063 특전사 前단장 "케이블타이 체포용 아냐…끌어내라 지시 못들어" 발명도둑잡기(118.216) 10.13 23 0
2896062 어제 쓰던글 이어서 쓰려다가 피궁해서 못쓰겟당 ♥덩냥이♥갤로그로 이동합니다. 10.13 44 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2