씨샵3 추상적으로 프로그래밍 하세요. 철수와 영희가 컴퓨터를 조립하는 코드를 작성했습니다. 철수 컴퓨터 = CPU + RAM + SDD + VGA 영희 데스크탑 = 인텔 i9 10900k + 삼성 DDR4 8GB PC4-21300 * 2 + 삼성 860EVO-250G + 지포스 RTX3090 누가 더 코드를 잘 짰나요? 철수는 대충대충 코딩한거 같은데 영희는 정말 심혈을 다해서 작성한거 같아요! 그러니 영희의 코드가 더 좋을까요? 데스크탑은 컴퓨터입니다. 인텔 i9 10900k는 CPU이고요. 삼성 DDR4 8GB PC4-21300은 RAM입니다. 즉, 철수의 코드에 영희의 코드를 대입해도 아무런 문제가 생기지 않습니다. 반면 반대는 어떤가요? 컴퓨터는 데스크탑일까요? CPU는 인텔 i9 10900k라고 할 수 있나요? .. 2020. 11. 11. static 사용에 주의하세요. Java와 C#에서 static 키워드를 사용하면 변수나 메소드가 프로그램 실행 시 바로 메모리에 올라갑니다. 객체를 생성하지 않아도 말이죠. 그렇기에 무분별한 static 남발은 비효율적인 메모리 구조를 낳게 됩니다. 그런데 이보다 더 무서운 사실이 있습니다. static 변수는 하나만 생성됩니다. 그렇기에 이 변수를 수정하게 되면 모든 곳에 반영됩니다. eat() 함수가 static String food = 'pork'를 사용한다고 생각해봅시다. 잘 사용하고 있는데 다른 개발자가 실수로 혹은 악의적으로 food = 'stone'이라고 수정한다면? 아마 프로그램은 각종 오류를 뿜게 될 것입니다. 그렇기에 static 변수를 사용할 시에는 final이나 const 등을 사용하여 값이 변하지 않게 .. 2020. 11. 10. public보다는 private을 사용합시다. Java나 C#에서 class, field, method 등에 접근 제한자를 사용할 수 있습니다. 이 때 습관적으로 public을 사용하는 분들이 있는데요. 이는 매우 위험한 행동이므로 고칩시다! public의 의미는 '누구나 어디서든' 사용할 수 있다는 뜻입니다. 즉, 만든 사람은 여러분이지만 사용하는 사람은 여러명일 수 있기에 함부로 코드를 수정할 수 없습니다. 여러분이 10을 반환하는 함수를 public으로 작성하여 10이 필요한 다른 개발자가 이 함수를 사용한다고 가정합시다. 여러분이 이 함수를 만든 이유는 같은 class에서 이 값을 이용하여 20을 만들기 위해서였죠. 그런데 필요한 값이 30으로 변경되어 10을 반환하는 함수도 15를 반환하게 만들게 되면 어떻게 될까요? 이 함수를 가져다 .. 2020. 11. 10. 이전 1 다음