프로젝트 목적

우리 대학교는 예전부터 꾸준히 학우들 사이에서 교내에서의 길 찾기가 매우 어렵다는 의견들이 나오고 있다. 때문에 기존의 길 찾기 API나 알고리즘을 보완하여 건물 내부에서도 경로 탐색을 지원하고 AR기술을 활용해 좀 더 직접적으로 길 안내를 도와줄 수 있도록 하는 안드로이드 애플리케이션 서비스를 구현하고자한다.

 

 

프로젝트 내용

길찾숙 애플리케이션을 통해 사용자는 교내에서 출발지와 목적지를 설정할 수 있다.

길안내를 시작하면 3D 화살표를 화면에 띄워 사용자에게 방향을 알려준다.

목적지에 도착하면 핀이 나타나고 길안내가 종료된다. 

그 외에 부가적 기능으로 사용자는 특정 장소를 즐겨찾기 할 수 있고, 즐겨찾기 목록에서 해당 장소를 출발지 혹은 목적지로 설정할 수 있다. 

 

 

개발 언어 및 환경

개발 환경 - Unity3D, Visual Studio 2015, Android Studio

개발언어 - C#, Java

운영체제 - Android, Windows10

 

 

시연 영상

 

 

 

첫 번째. var, let 그리고 const

 

  • var 만 사용하든지, let  const 만 사용한다(추천)
    function letConstOnly() {
      const num = 1;
      const str = 'school';
      let bool = true;
    }

 

  • var  let, const 모두를 섞어 쓰지 말자
    function mixUse() {
      const min = Infinity;
      var max = -Infinity;
      var sheIs = 'Jane';
      const heIs = 'John';
    }

 

 

 

두 번째. 세미콜론(;)

 

  • 세미콜론을 항상 사용하자. 정 내 스타일이 아니다 싶으면 하나도 사용하지 말 것을 권장한다.
    function useSemicolons() {
      const myName = 'Jackie';
      
      console.log(`Hi, my name is ${myName}`);
    }

 

  • 썼다가 안 썼다가는 금물
    function mixUsageSemicolons() {
      const students = ['James', 'Jane', 'Mike'];
      
      for (let i = 0; i < students.length; i += 1) {
        if (students[i] === 'Jane') {
          console.log('I found Jane!')
        } else {
          console.log(`It's ${students[i]}, not Jane`);
        }
      }
      
      console.log('Printed all students name')
    }

 

 

 

세 번째. 일치 연산자

이 부분 역시 항상 === 을 사용하는 것이 현재 2019년 기준 국룰이다. 

그 이유는 == 을 사용했을 경우 예기치 못한 경우에서 true, false 가 결과로 반환될 수 있기 때문이다. 

해서, 정말 특별하게 반드시 == 을 사용해야하는 경우가 아니라면, === 을 사용하는 것이 바람직하다.

 

  • 항상 === 을 사용하고 == 은 사용하지 말자.
    function strictComparison(names) {
      for (let i = 0; i < names.length; i += 1) {
        if (names[i] === 'Jane') {
          console.log('I found Jane!');
        }
      }
    }

 

 

 

네 번째. 불변성

외부 스코프에 대한 영향력을 줄여 사이드 이펙트를 방지하고 원본 객체의 상태를 온전히 보존한다는, 객체의 원본 보존성, 즉 불변성이다.

함수에서 개발자가 지켜야 할 제일 첫 번째는 바로 인자로 들어온 값을 수정하지 않는 것이다.

수정하는 순간, 그 함수는 종료가 되는 그 시점까지 절대로 순수함수가 될 수 없다.

 

실제 코드에서 방금 언급한 규칙이 지켜져야 함에도 불구하고 지켜지지 않는 곳이 있는데,

대표적으로 자바스크립트 내장 메소드인 sort 다.

 

  • 새 객체에 깊은 복사로 값을 복사해서 사용하자.
    function sortByAges(array) {
      const _array = array.slice();
      _array.sort((a, b) => a.age - b.age);
      return _array;
    }

 

  • 인자는 무슨 일이 있어도 변경하지 말자. 사이드 이펙트를 야기할 가능성이 높다.

 

 

 

마지막. 삼항 연산자

 

  • 깔끔하게 처리할 수 있을 때 삼항 연산자를 사용하자.

 

  • 단순히 if 를 사용하기 싫어서 삼항 연산자를 사용하는 것이라면, 정말 삼항 연산자가 필요한 순간에 사용했었는지 고민해보자.

 

 

 

 

↓출처 사이트

https://medium.com/%EC%98%A4%EB%8A%98%EC%9D%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%BD%94%EB%94%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%97%90%EC%84%9C-%EA%B0%80%EC%9E%A5-%EB%A7%8E%EC%9D%B4%ED%95%98%EB%8A%94-%EC%8B%A4%EC%88%98%EB%93%A4-a10df2c884c

 

 

'Coding > Reference' 카테고리의 다른 글

Visual Studio Code에서 C# 실행  (0) 2021.09.27
Visual Studio Code에서 JavaScript 실행  (0) 2021.09.10
[JavaScript] 입출력  (0) 2021.09.10

 

사용자와 상호작용하는 대화상자 3가지

1.      alert() – 알려주는 용도 ex) 비밀번호가 틀렸습니다.

2.      prompt() – 입력 받는 용도 ex) 암호를 입력해주세요.

3.      confirm() – 확인받는 용도 ex) 정말 삭제하시겠습니까?

 

 

const name = prompt(“이름을 입력하세요.”);

alert(`안녕하세요, ${name}님`);

먼저 이름을 입력하라는 prompt가 뜨고, 이름을 입력해서 확인버튼을 누르면 name에 입력한 이름이 들어간 alert가 뜬다.

 

prompt에서 취소를 누르면 null을 반환

 

prompt에는 2개의 인수가 들어갈 수 있는데, 첫 번째 값은 메시지고 두 번째는 입력 받을 default 값이다.

const phone = prompt(“전화번호를 입력하세요.”, “010-0000-0000”);

 

 

alertconfirm의 차이점은 alert는 확인 버튼만 존재하지만 confirm은 확인과 취소 버튼이 함께 있다.

확인을 누르면 true, 취소를 누르고 false가 들어간다.

const isAdult = confirm(“당신은 성인 입니까?”);

 

 

이렇게 기본적으로 제공되는 창들은 간단하게 사용할 수 있지만 단점도 존재

1.      창이 떠있는 동안 스크립트 일시 정지

2.      스타일링이 불가능

 

 

 

↓[코딩앙마] 자바스크립트 기초 강좌 링크

https://www.youtube.com/watch?v=4YK78dT4UUU 

 

'Study > JavaScript' 카테고리의 다른 글

[JavaScript] 기초 #5 - 기본 연산자  (0) 2021.08.30
[JavaScript] 기초 #4 - 형변환  (0) 2021.08.30
[JavaScript] 기초 #2 - 자료형  (0) 2021.08.23
[JavaScript] 기초 #1 - 변수  (0) 2021.08.23
[JavaScript] splice()  (0) 2020.12.21

+ Recent posts