1122cc
506
2020-05-11 16:29:32
5
270

자바 여러가지 경로 값을 저장할때 배열보단 리스트가 좋나요?


질문 자체가 모호해서 죄송합니다만,

코딩시에 여러가지 경로 값이 담긴 문자열들을 저장하여 활용할 때

또는 보편적으로 여러 값들을 다뤄야할 때

배열 보단 ArrayList를 주로 사용하는 습관을 들여놓는것이 좋은가요?


언제 배열을 사용하고, 언제 List를 사용해야 좋은(?) 코딩이라고 판단할 수 있을까요?

항상 이런 여러 값을 사용할 때마다(주로 하드코딩식으로 경로 값을 담을 때) 배열로 담을지

List로 담을지 고민만하다 아무것도 못한채 시간이 흘러버리곤해서 자책을 합니다..

도움 좀 부탁드립니다 ^^..



p.s 개인적으로 어떻게 코드를 짜야 쉽고 효과적이고 가독성이 좋은 코드가 될지

   코드를 치기 전에 고민하는 시간이 너무 길어서

  ( 예를들면 어떤 구분값이 있는 데이터를 다룰 경우, 각 값에 따라 분기해주는 메소드를 한번 거쳐서

   코드를 만들지, 아니면 한 메소드 내에서 If문으로 각 값에 따라 코드를 만들지 라던가

   본문의 내용처럼 배열로 다룰지 List로 다룰지 이런 고민들만 하는 시간이 너무나 길어지네요 )

막상 코드치는 단계가 계속 미뤄지는 경우가 많은데

  안좋은 습관일까요? ㅜㅜ


0
  • 답변 5

  • 으어어어어
    729
    2020-05-11 17:08:30

    상황에 맞게 사용하는게 좋습니다.


    예를들어서 여러가지 데이터를 저장하고 저장한 데이터에 수정이나 삭제등 데이터가 유동적으로 변화 한다면 List가 좋겠지만 고정된 갯수의 데이터를 가지고 유동적으로 데이터가 변화하지 않는 데이터는 편하게 배열을 사용하는게 좋겠죠


    그리고 코딩하면서 고민하는건 좋은 습관이라 생각합니다. 너무 오래 고민하는것은 안좋겠지만 일에 지장이 없거나 개인 프로젝트면 상관 없다 생각합니다. 저도 일에 지장이 가지 않으면 코드 한줄 떄문에 하루 종일 고민하기도 합니다. 저도 초보라서 오래 고민하는거겠지만요


    좀 더 실력이 늘어나고 아는 것이 많아진다면 고민하는 시간도 줄어들지 않을까요?

  • 바람종
    1k
    2020-05-11 17:11:09

    자바에서 List라는것은 인터페이스 입니다.

    즉 구현 되어있게 아닌 껍데기.. 즉 사용법 같은것이라는거죠

    일반적으로 그냥 배열 보다는 List 인터페이스 쪽이 사용하기 편합니다.

    그렇다면 성능은 어떨까요?

    자바에서 리스트의 구현체들을 보면 위에서 언급하신

    ArrayList와 LinkedList가 대표적입니다.

    ArrayList는 내부적으로 배열을 쓰기 때문에 배열과 퍼포먼스가 거의 비슷합니다.

    반면에 Linked는 말 그대로 링크드 리스트 구조기 동작마다 빠른부분이 있고 더 느린 부분이 있습니다.

    결론적으로 List는 인터페이스기 때문에 퍼포먼스랑은 무관하고

    일반적으로 배열보다 쓰기 편하다.

    배열을 쓸까 리스트를 쓸까는 사실 아마

    배열이 좋은가 링크드 리스트가 맞는가의 문제의 고민이실 텐데

    이건 ArrayList vs LinkedList를 구글에서 검색해서 차이점을 보시고

    무얼 사용할지 정하시는게 좋겠네요.

  • 1122cc
    506
    2020-05-11 17:11:52

    으어어어어


    그렇겠지요? 감사합니다.

    배열과 리스트에 대한 질문을 이어가자면 말씀해주신대로

    가변적인 데이터는 List로 관리하고 (메모리 할당 자체가 가변적이니)

    폴더 경로나, 정해진 문자열 등을 하드코딩하여 정해진 갯수만큼 관리할때는

    배열이 좋겠다는 말씀이신 것이죠?


    보통 코딩하실 때 이것저것 코드를 만들어보고 아니다 싶으면 거기서 살을 붙이던

    수정하던 하시는 스타일 이신가요

    아니면 저 처럼 아예 처음부터 완벽하게 짜고싶어서 고민만 엄청하시는 스타일이신가요?

    다른 분들의 스타일이 궁금하네요. (물론 어느정도 머릿속이나 실제 문서화를 통해 정리는 해놓고 시작하

    겠지만.)

  • 으어어어어
    729
    2020-05-11 17:33:30

    1122cc


    저도 처음부터 잘 짜볼려고 엄청 고민하는 스타일입니다.

    하지만 일이됬든 개인프로젝트가 됬든 항상 변경 사항이 생기고 그거에 맞춰서 수정을 하다 보면 처음에 고민했던것도 다시 설계해야 되는 상황도 일어납니다.


    그래서 제 생각에는 큰 틀을 고민하며 설계를 하고 안에 세세한 내용은 테스트 코드를 짜가며 그때그때 리펙토링 하는 것도 좋을거라 생각합니다.


    근데 이게 또 큰 틀을 고민하느라 하루를 다 버리는;;

  • 1122cc
    506
    2020-05-12 09:56:05

    으어어어어


    ㅋㅋ 다들 그런거였군요..

    답변 감사드리고 아무쪼록 화이팅 입니다 ^^

  • 로그인을 하시면 답변 을 등록할 수 있습니다.