본문 바로가기

Dev45

추상 메소드, 추상 클래스, 인터페이스 C# 에서 추상 메소드를 선언하려면 해당 클래스 또한 추상 클래스 여야 한다. 추상 클래스, 메소드 선언using UnityEngine;public abstract class Animal{ public abstract void Fly();} 추상 클래스를 상속 받으면 추상 메소드를 반드시 오버라이딩 해주어야 한다.using UnityEngine;public class Bird : Animal{ public override void Fly() { Debug.Log("it a bird"); }}   인터페이스는 다음과 같이 선언한다.using UnityEngine;public interface ITurnOnable{ public void TrunOn(); publ.. 2024. 12. 12.
상속, 오버라이딩 C# 에서는 다음과 같이 클래스를 상속 받는다.public class test1 : MonoBehaviour{...}// public class 클래스명 : 상속받을부모클래스명 상속받은 부모의 메소드를 오버라이딩 하려면 오버라이딩 하려는 부모 메소드가 virtual 키워드로 선언되어 있어야 한다. 부모클래스using UnityEngine;public class Box{ public virtual void Dump(string obj) { Debug.Log(obj + " 버립니다..."); } public void Dump(string who, string obj) { Debug.Log(who + "is throw " + obj); }}  자식클래스usin.. 2024. 12. 12.
C# 기초 - enum, 구조체 struct # enum상수와 같이 다음처럼 원하는 문자등을 선언한다. enum Weapon { Sword, Gun, Bat } 내부적으로는 0, 1, 2, ... 로 저장된다.즉, 위 Weapon.Sword 는 0, Weapon.Gun 은 1 이 내부적으로 사용된다. 그래서 다음과 같이 int 로 캐스팅하면 숫자로 정상 출력되는 것을 확인 할 수 있다. enum Weapon { Sword, Gun, Bat } void Start() { Weapon myWeapon = Weapon.Sword; Debug.Log(myWeapon); // Sword .. 2024. 12. 12.
[Mac] Unity 엔진 설치 ( mac 에서 관리자 권한으로 실행하기 ) 유니티 허브 클라이언트 다운로드유니티 공식 페이지 에서 Unity Hub 다운로드.라이센스는 학생 및 아마추어 또는 개인 버전으로 설치. 허브를 실행 후 유니티 버전을 다운로드 할 수 있다.버전은 LTS 버전이 안정화 되어있는 버전이기 때문에 최신 기술을 사용하거나 오래된 버전이 필요한 경우가 아니라면LTS 버전으로 다운로드 하자. Mac validation 오류 해결* mac 에서 유니티 허브 실행 후 유니티 버전을 설치 했을때 validation 오류 발생 시 해결 방법 mac 에서 유니티 설치 시 관리자 권한이 필요함.따라서 유니티를 설치하는 유니티 허브를 관리자 권한으로 실행하여 유니티를 설치 관리자 권한 실행 방법mac 에서 관리자 권한으로 설치하는 방법은 터미널을 실행하고 sudo 명령어로 유.. 2024. 12. 11.
[spring boot] tomcat 에러 페이지 설정 ( 외장 톰캣을 사용하는 경우 ) 프로젝트 진행중 모의 해킹 테스트때 발생한 이슈이다.요청 경로나 파라미터에 특수문자 등을 넣어서 요청했을 경우 내가 설정한 예외 처리 가 나와야 한다. 예외처리는 spring boot 에서 다음처럼 처리하였다.@RequiredArgsConstructor@RestControllerAdvicepublic class GlobalExceptionHandler {... 하지만 url 의 파라미터에 특문을 넣고 요청했을때 톰캣의 400 에러 페이지가 응답하면서 서버의 정보가 노출되었다나는 원인을 파악하기 위해 동일하게 요청을 해보았지만 톰캣 에러페이지가 아닌 validation 예외 처리를 반환한다. 로컬에서는 해당 상황이 재현되지 않았고 개발서버, 검수서버 와 같이 배포 했을때 해당문제가 발생했다.이것때문에 좀 .. 2024. 11. 18.
[java/spring boot/transaction] 트랜젝션 수동 제어 시 주의사항 프로젝트 에서 고객의 요청으로 테이블 특성별로 나눠 DB를 두개의 스키마로 나눠 사용하게 되었다.서비스에서 A스키마에 있는 테이블만 사용한다면 어노테이션으로 간단히 트랜젝션을 제어하면 되지만당연히 두개의 스키마를 사용하게 되는 로직이 있었다. 이때는 수동으로 제어하는 다음과 같은 방법을 사용했다.private final PlatformTransactionManager manager1;private final PlatformTransactionManager manager2;...TransactionStatus Aschm = manager1.getTransaction(new DefaultTransactionDefinition());try {...DAO.스키마A 사용 로직...manager1.commit(As.. 2024. 11. 6.