전체 글

전체 글

    데이터 모델링

    데이터 모델링

    1. 모델링이란? 모델링이란, 현실세계를 일정한 표기법에 의해 표현하는 기법입니다. 그냥 표현하는건 아니고, 추상화, 단순화, 명확화 해야합니다. 추상화 : 일정한 형식에 맞춰 표현 단순화 : 약속된 표기법이나 언어로 표현 명확화 : 현상을 이해하기 쉽고 정확하게 기술 2. 모델링 관점 데이터 모델링은 업무를 분석하고 설계하는데 이용되며, 변경 및 관리목적으로도 사용합니다. 따라서 데이터와 프로세스, 데이터와 프로세스의 관점에서 행위와 대상들의 관점에서 바라보게 됩니다. 3. 단계별 구분 모델링은 크게 3단계로 구분할 수 있습니다. 개념 데이터 모델 : 추상화 수준이 높고 업무중심적입니다. 전체적으로 포괄적인 모델링을 수행합니다. 논리적 데이터 모델링 : 이전모델을 엄무중심의 데이터 모델을 구체적으로 작..

    Storyboard 사용해보기

    Storyboard 사용해보기

    이번 개인프로젝트를 위해 간~단한 토이프로젝트를 진행해 보았습니다. ios 개발은 처음이기 때문에 접근성이 좋은 Storyboard를 사용하려고 합니다. android studio, java window builder, unity등을 써봤습니다만.. 이렇게 낯설지는 상상도 못했네요🥲 제 삽질이 다른 어떤 누군가에겐 도움이 되길 바라며, 포스팅 시작해보겠습니다. new project부터 시작해 보겠습니다! 다른 포스팅들 보면 버젼이 달라서 new project의 구성부터 다르더군요. iOS 개발을 할것이니 iOS탭에서 App을 클릭해 줍니다. 그리고 next! 그럼 이런 화면이 뜰텐데요, 보통 다른 프로그램들은 딱히 설정할 필요가 없겠지만... 현재 ios applicationd의 개발방식은 Storybo..

    ios Stroyboard란?

    ios Stroyboard란?

    nib, xib를 이어 ios SDK5부터 도입된 개념입니다. 시각적 표현에 강력한 장점을 지니고 있습니다. 실행흐름을 제어할 수 있고 뷰를 표현하는데 있어서는 코드를 잘 몰라도 쉽게 작성할 수 있습니다. 그리고 뷰를 작성하는데 있어서 긴 시간을 들이지 않습니다. 하지만 한계와 단점또한 명확합니다. 어플리케이션의 구조가 거대해지면 스토리보드의 로딩시간이 지나치게 길어지게 되고, 가독성이 떨어지게 됩니다. 그리고 단순 코딩으로는 뷰에 아이템을 연결할 수 없기 때문에 아이템들 하나마다 일일이 Identifer를 연결해주어야 해 재사용성이 떨어지고 번거롭습니다. 마지막으로, 충돌이 빈번하고 병합이 까다로워 협업하기가 용이하지 않습니다. 2019년도에 xib와 스토리보드의 장점을 합쳐 코딩을 통해 UI를 개발하..

    AI로 웹툰 저작권을 지키는 레진

    AI로 웹툰 저작권을 지키는 레진

    www.bloter.net/newsView/blt202103190007 AI로 '웹툰 저작권 침해 위조상품' 찾는다 인공지능(AI) 기업 마크비전이 웹툰 플랫폼 레진코믹스 콘텐츠와 관련된 900억원 상당의 위조상품을 적발 및 제거했다. 19일 마크비전과 레진엔터테인먼 www.bloter.net 이전 블로그를 운영할때에도 기사로 작성했던 기억이 납니다. 그때는 이제 계약해서 저작권을 지키겠다~~ 라는 내용이였는데, 이제 실질적인 성과가 보이네요. 아마 불법 굿즈상품을 잡아내는것 같습니다. 불법 웹툰 공유사이트를 잡아내는건 AI의 학습만으로 힘드니까요. 전부터 어디선가 바 왔던 캐릭터들이 모자에, 가방에, 티셔츠에 그려져있던걸 보면서 '이건 정품...인가?' 싶었던 적이 많았었거든요. 만약 이런쪽으로 기술이..

    [(가제)강습스케쥴러] application preview

    [(가제)강습스케쥴러] application preview

    서론 어머님께서 인라인 스케이트 강습을 하시며 수기로 회원관리가 너무 고단하다고, 제가 개발을 의뢰하셨습니다. ios쪽 진로를 희망하며 집중하고있는데, 어머님이 노트20인지라 어쩔수없이 안드로이드 개발을 하게 되겠네요. 기간은 넉넉히 5월까지로 잡고 개발을 시작합니다. 개요 어머님과 상의하 어머님 스타일에 맞춰 관리 어플리케이션을 설계하였습니다. 주요 기능은 간편한 수강생 등록 및 관리, 보기쉽게 여러 방법으로 데이터를 출력해주는 뷰 입니다. DB서버는 호스팅 서버로 쓰면 서버를 여는 시간이 불규칙해 서비스가 어렵다 판단, application 내부에서 SQLite를 사용합니다. 어머님의 스마트폰 단말기 분실 가능성을 고려해 지속적으로 데이터를 외부로 백업하는 방법을 고려중입니다. 화면구성 1. 첫 화면..

    [기상알리미] application preview

    [기상알리미] application preview

    서론 iOS앱 개발 수준을 끌어올리려 개인프로젝트를 진행하려고 합니다. Android를 작업하던 수준과 동일하게 끌어올리려 기술적용 위주의 프로젝트가 될 것 같습니다. 주제도 너무나 식상한 주제이지만... 기술적용이 우선되게 방향을 설정하다 보니 어쩔 수 없었던것 같습니다. 개발기간은 다음주 일요일인 4월 24일 완성을 목표로 합니다. 개요 data server에 회원의 정보를 저장해서 가입되있다면 저장된 지역의 기상을 손쉽게 볼 수 있습니다. DB서버는 사설 호스팅 서버의 MySQL 5.0.11을 사용합니다. 클라이언트-DB간 통신은 Spring boot으로 서버를 제작해 중계합니다. 클라이언트는 alamofire API를 사용해 Http communication을 POST 방식으로 통신할 것입니다. ..

    apple, 다음 WWDC엔 VR 기기 발표하나?

    apple, 다음 WWDC엔 VR 기기 발표하나?

    www.bloter.net/newsView/blt202104090025 전기차에 가려진 애플의 '메타버스' 역량, AR의 잠재력은?[IT흥신소] ‘흥신소’는 돈을 받고 남의 뒤를 밟는 일을 합니다. ‘블로터 IT흥신소’는 독자 여러분의 질문을 받고, 궁금한 점을 대신 알아봐 드 www.bloter.net 깔끔하고 재밋는 기사를 봐서 포스팅 하겠습니다. AR은 현재진행형이니 VR얘기만 해보자면, 애플처럼 단일 생태계를 갖춘 경쟁사가 전무하기 때문에 애플이 잘만 뽑아낸다면 압도적으로 유리해 보이는데요. 구글이나 페이스북, 마이크로 소프트가 VR기기를 이미 만들어서 시장에 내놨다곤 하지만 vr기기는 페북 오큘러스로. 콘텐츠는 스팀에서. 구동은 제조사가 다 섞여있는 조립형 데스크탑으로. 콘텐츠를 소비할 플랫폼도..

    애플, iOS 업데이트로 구형 단말기 성능을 저하시키다

    애플, iOS 업데이트로 구형 단말기 성능을 저하시키다

    애플이 ios업데이트를 통해 고의로 구형 단말기의 성능을 저하시켰음이 밝혀졌습니다. 구형 단말기가 숨을 헐덕거리면서 새 기술을 실행하는게 아니라, 애초에 성능이 떨어지도록 프로그래밍을 했다는 건데요; 이게 문제는 한곳에서도 승리하면 다른곳에서 승리하게 되니까 줄줄이 배상하게 되겠네요. 어떤 의도를 가지고 이런 일을 자행했는지는 모르겠습니다만...; 소송전에서 패배할정도면 스마트폰 교체주기를 당기려고 일부러 설계했다는게 무게가 실리겠네요. 아래에 해당 기사링크 남기겠습니다. greensky0026.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F TISTORY 나를 표현하는 블로그를 만들어보세요. www.tistory.com

    구글vs오라클 10년 분쟁의 결과 : 공정이용이다!

    구글vs오라클 10년 분쟁의 결과 : 공정이용이다!

    길고 길었던 법정 분쟁이 끝났습니다. 원래 앞선 판결은 오라클에 유리하게 흘러갔었는데, 이게 마지막에 반전이 ㄷㄷ 판결하면서 'API는 본질적으로 새로운 창조적 표현의 결과로 만들어진 저작권법이 없는 아이디어'라고 덧붙였습니다. 그리고 API의 가치는 사용자들의 투자에서 기인한다고까지 덧붙였습니다. 사실 법적분쟁이 일어난 이유가 java api구조를 복제했으니 저작권 침해라고 오라클이 소송을 걸었었는데... 근데 API에 저작권을 부여하는 게 옳은 일인가에 대해서는 저도 부정적이였었는데 잘 된 결과입니다 ㅠㅠ API마다 저작권이 부여된다면 라이센스비용이 아까워 직접 개발하게 되고, 개발한게 또 구조가 비슷하다고 소송전이 벌어지고... 굉장히 소모적인 싸움이 될 것 같아 보였거든요. 다들 API걱정없이 맘..

    iOS 앱의 생명주기 (Application Lifecycle)

    iOS 앱의 생명주기 (Application Lifecycle)

    0. 서론 안드로이드보다 ios의 생명주기가 단순했던 이유는 ios가 멀티테스킹이 불가능했기 때문이였습니다. ios13이후 ios도 멀티테스킹이 가능해지면서 SceneDelegate라는 새 위임객체가 등장했습니다. 이후 AppDelegate가 관장한 생명주기 관리의 대다수가 SceneDelegate로 옮겨지게 되면서 AppDelegate는 앱의 초기 구동 및 전체에 관련된 이벤트의 처리정도를 담당하게 되며 기능이 축소됬습니다. 단, Scene 기능은 명시적으로 사용(opt-in)해야하기 때문에 info.plist에 키를 추가해주지 않으면 SceneDelegate은 사용할 수 없고 ios13이전처럼 AppDelegate이 생명주기를 관장하게 됩니다. 그러므로, 우리는 둘 다 공부해야 합니다 ^-^....흑..

    iOS 특징

    iOS 특징

    간단하게 서술해보도록 하겠습니다. 우선 ios는 object-c / Swift언어 기반으로 작성됩니다. delegate작업을 안드로이드는 adapter, ios는 delegate로 처리합니다. 앱 화면 개발은 UIViewController, StroyBoard을 통해서 진행되구요 특정 카테고리에 모여있는 환경설정 및 엑세스 권한이 모여있습니다. 훌륭한 애니메이션 품질과 뒤로가기 버튼이나 기능이 따로 없어 앱에 구현을 해주어야 한다는 점, 애플스토어의 철저한 앱 검수로 일단 검수가 길고 리젝이 자주 이루어지지만, 대신에 사용자들은 악성 어플리케이션으로부터 비교적 안전할 수 있다는 점도 있겠네요. 마지막으로 폐쇄성과 폐쇄성으로 기인한 보안성이 있겠습니다. 안드로이드는 공유저장소가 있어 모든 앱이 접근할 수 ..

    LG 휴대폰 사업 철수 확정

    LG 휴대폰 사업 철수 확정

    www.bloter.net/newsView/blt202104050012 [LG전자 구조조정]이변은 없었다…휴대폰 사업 결국 철수 LG전자가 CES 2021에서 선보인 롤러블폰 콘셉트 이미지 (사진=LG전자) LG전자가 휴대폰 사업 포기를 공식화했다. LG전자는 5일 이사회 의결을 통해 휴대폰 www.bloter.net 결국 철수했습니다... LG G pro는 정말 잘 썻었는데 그것도 벌써 몇년전인가요...ㄷㄷ 개인적으로는 경쟁자가 너무 쟁쟁해서가 아니라 스스로 무너져버린것 같아 더 아쉽네요. 국내 내수시장 규모가 크지 않은것도 아쉽군요... 국내 인구가 억단위만 넘었어도 어느정도 체력은 있었을텐데..ㅎ 근데 최근 LG 스마트폰 보면 그랬어도 생명호흡기를 단것 뿐이기도 하고.. 잘가요 LG...

    [Swift] 고차함수 Map, Filter, Reduce

    [Swift] 고차함수 Map, Filter, Reduce

    기본적인 라이브러리를 공부하고 해야지 해야지 하다가 놓친게 있었는데 코딩테스트를 하다가 계속 반복해서 찾게 되어서 별도로 포스팅 해보았습니다. 0. 고차함수란? 다른 함수의 전달인자를 함수로 받거나, 함수실행의 결과를 함수로 반환하는 함수입니다. 1. Map 배열 원소의 변형에 매우 효과적입니다. var arr: [String] = ["Apple", "Banana", "Mango"] let lowwer = arr.map{ $0.lowwercased() } //lowwer = ["apple", "banana", "mango"] var chars: [Characters] = ["1", "2", "3", "4", "5"] let toInt = chars.map{ $0.isWholeNumber! } //toIn..

    [Spring boot] No serializer found for class and no properties discovered to create BeanSerializer

    [Spring boot] No serializer found for class and no properties discovered to create BeanSerializer

    모델의 프로퍼티 접근 제어자 private로 설정해 파싱을 못해서 생긴 오류였던듯. ObjectMapper 에서 모든 field 를 접근 가능하게 옵션을 설정하거나, 모델의 프로퍼티 접근 제어자를 public 으로 변경해서 해결할 수 있다. public class UserDTO { private int id; private String name; private String email; } 에서 public class UserDTO { public int id; public String name; public String email; } 로 변경후 문제없이 구동

    [Spring boot] spring Invalid bound statement (not found)

    [Spring boot] spring Invalid bound statement (not found)

    mapper.xml에 namespace있던 오탈자 수정해 해결

    [Springboot][debug] java.sql.SQLException: No timezonemapping entry for 'UTC"

    [Springboot][debug] java.sql.SQLException: No timezonemapping entry for 'UTC"

    https://stackoverflow.com/questions/53993181/how-to-set-correct-mysql-jdbc-timezone-in-spring-boot-configuration How to set correct MySQL JDBC timezone in Spring Boot configuration DB: $ mysql --version mysql Ver 14.14 Distrib 5.6.27, for osx10.10 (x86_64) using EditLine wrapper Spring Boot: 2.1.1.RELEASE The error: 2019-01-01 15:56:25.849 ERROR 39957 --- [ restartedMa... stackoverflow.com 프로퍼티에..

    [Spring boot] Cannot load driver class: com.mysql.jdbc.Driver (2)

    [Spring boot] Cannot load driver class: com.mysql.jdbc.Driver (2)

    어제 잘 됬는데 또 오늘 하니까 안되는 진부한 상황. 이제 됬다고 생각하고 이것저것 빌드해보다가 또 잘못 건드린듯 하다. 원인 php-mysql 연결시 같은 mysql 버전이지만 com.mysql.cj.jdbc.Driver를 사용했었다. 하지만, spring boot 에서는 mysql connector 8.0 이상은 application.properties에 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 를 사용하지만 나는 mysql 버젼이 5.0.11 이기 때문에 mysql connector 5.1.48를 사용하므로 spring.datasource.driver-class-name=com.mysql.jdbc.Driver 를 사용해야 한다. 해..

    [Spring Boot] 호스팅 서버의 mysql 계정 접근 실패

    [Spring Boot] 호스팅 서버의 mysql 계정 접근 실패

    호스팅서버 내에서 돌리던 코드를 참고해 작성하다가 난 에러. mysql사용자중 local아닌 사용자가 없었다. 전에 얼마나 덤벙대면서 한걸까.. 원인 사용한 mysql 계정의 접근이 local로 잡혀있었음 해결 사용자 정보의 호스트를 local에서 %(아무데서나)로 변경

    [Spring boot] Cannot load driver class: com.mysql.jdbc.Driver

    [Spring boot] Cannot load driver class: com.mysql.jdbc.Driver

    평소 php로 mysql과 프로젝트를 통신시키다가 스프링으로 세팅하다가 발생하였다 에러명 그대로 자바 jdbc드라이버가 로드가 되지 않았다. 원인 3년전에 호스팅한 서버를 아직 그대로 사용해서 Mysql 버전이 5.0.11이였지만 mysql connector 버전은 8.0.3버젼이였음 해결 build.gradle에 dependencies에 입력한 compile 'mysql:mysql-connector-java'를 compile 'mysql:mysql-connector-java:5.1.48'로 입력해 오버라이딩함. 참고 intellipaat.com/community/63392/cannot-load-driver-class-com-mysql-jdbc-driver-spring Cannot load driver ..

    Mac에서 android개발환경 구축하기

    Mac에서 android개발환경 구축하기

    1. java jdk 설치여부 확인 먼저 java jdk가 설치되어 있아야 합니다. 잘 모르시겠다면, 터미널에 java -version을 입력합니다. 아래와 같이 정상적으로 버전이 출력됬다면 설치를 하신거죠 위 사진은 환경변수가 설정이 안된 화면입니다. 환병변수 설정 꼭!!! 해주셔야 합니다. 환경변수 설정 바로가기 2. android 다운로드 아래 공식 사이트로 들어가서 다운을 받습니다. developer.android.com/studio/